Rogério, Agradeço a sua generosidade.
Abraços, Luiz Roberto Luiz Roberto Martins Pinto Prof. Pleno/DCET/UESC Laboratório de Estatística Computacional Universidade Estadual de Santa Cruz Ilhéus-Bahia [email protected] skype: lrmpinto http://lattes.cnpq.br/2732314327604831 Em 23 de outubro de 2013 21:29, Rogério Barbosa <[email protected]>escreveu: > O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase. > > Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para > o e-mail, houve erros... Acho que agora está certo. > Mas ressalto, isso é só uma regressão linear. Não sei como calcular o > two-way anova a partir disso.. somente uma anova comum. Mas estou certo de > que tem jeito... > > > ##################################### > > require(ff) > require(ffbase) > require(biglm) > > load("RCBD_Data.Rdata") > > dados.ff = as.ffdf(Data) > rm(Data) > gc() > > form = y ~ factor(Treat) + factor(block) > > for (i in chunk(dados.ff, by=25000)){ > if (i[1]==1){ > message("first chunk is: ", i[[1]],":",i[[2]]) > biglmfit <- biglm(form, data=dados.ff[i,,drop=FALSE]) > }else{ > message("next chunk is: ", i[[1]],":",i[[2]]) > biglmfit <- update(biglmfit, dados.ff[i,,drop=FALSE]) > } > } > > summary(biglmfit) > > > 2013/10/23 Luiz Roberto Martins Pinto <[email protected]> > >> Agora deu o seguinte erro... >> >> Erro em is.data.frame(data) : objeto 'firis' não encontrado >> >> >> Luiz Roberto Martins Pinto >> Prof. Pleno/DCET/UESC >> Laboratório de Estatística Computacional >> Universidade Estadual de Santa Cruz >> Ilhéus-Bahia >> >> [email protected] >> skype: lrmpinto >> http://lattes.cnpq.br/2732314327604831 >> >> >> >> >> Em 23 de outubro de 2013 19:56, Rogério Barbosa >> <[email protected]>escreveu: >> >> desculpe, foi um erro. A linha correta é: >>> >>> form = y ~ factor(Treat) + factor(block) >>> >>> >>> 2013/10/23 Luiz Roberto Martins Pinto <[email protected]> >>> >>>> Rogério, >>>> >>>> Agradeço sua colaboração, e o script enviado. >>>> >>>> O comando form(y ~ factor(Treat) + factor(block)) não foi aceito. >>>> >>>> >>>> >>>> >>>> Luiz Roberto Martins Pinto >>>> Prof. Pleno/DCET/UESC >>>> Laboratório de Estatística Computacional >>>> Universidade Estadual de Santa Cruz >>>> Ilhéus-Bahia >>>> >>>> [email protected] >>>> skype: lrmpinto >>>> http://lattes.cnpq.br/2732314327604831 >>>> >>>> >>>> >>>> >>>> Em 23 de outubro de 2013 19:24, Rogério Barbosa >>>> <[email protected]>escreveu: >>>> >>>> O biglm funciona bem. Apliquei nos dados do Luiz Roberto e deu certo. >>>>> Mas é bem lento (a função rxLinMod do pacote RevoScalerR, do RevolutionR é >>>>> bemmm mais rápida). Mas se o negócio é continuar usando o R convencional, >>>>> então funciona bem. >>>>> >>>>> Segue abaixo o código. >>>>> >>>>> Mas a função "aov" não funciona em cima do objeto gerado pelo biglm (e >>>>> funciona em cima do lm...) >>>>> >>>>> Eu não sei como calcular um two-way anova a partir desses >>>>> resultados... mas creio que tem jeito. Aliás... gostaria muito mesmo de >>>>> saber como fazê-lo. >>>>> >>>>> Ma se o objetivo não envolve diferenciar os quadrados de regressão >>>>> entre as variáveis "Treat" e "block", então um anova simples é facil de >>>>> calcular -- a partir dos valores preditos e resíduos. >>>>> >>>>> >>>>> abraços, >>>>> Rogério >>>>> >>>>> ##################################### >>>>> >>>>> require(ff) >>>>> require(ffbase) >>>>> require(biglm) >>>>> >>>>> load("RCBD_Data.Rdata") >>>>> >>>>> dados.ff = as.ffdf(Data) >>>>> rm(Data) >>>>> gc() >>>>> >>>>> form(y ~ factor(Treat) + factor(block)) >>>>> >>>>> >>>>> for (i in chunk(dados.ff, by=25000)){ >>>>> if (i[1]==1){ >>>>> message("first chunk is: ", i[[1]],":",i[[2]]) >>>>> biglmfit <- biglm(form, data=dados.ff[i,,drop=FALSE]) >>>>> }else{ >>>>> message("next chunk is: ", i[[1]],":",i[[2]]) >>>>> biglmfit <- update(biglmfit, firis[i,,drop=FALSE]) >>>>> } >>>>> } >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 2013/10/23 Benilton Carvalho <[email protected]> >>>>> >>>>>> Sugestão completamente sem checar dados: biglm ou mesmo o >>>>>> biganalytics (sugestão por esse último, já que o usuário não parece ter >>>>>> RAM >>>>>> suficiente) foram tentados? >>>>>> On Oct 23, 2013 12:24 PM, "Luiz Roberto Martins Pinto" < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Edson, >>>>>>> >>>>>>> Agradeço a sugestão. >>>>>>> Vou experimentar. >>>>>>> Abraços, >>>>>>> Luiz Roberto >>>>>>> >>>>>>> Luiz Roberto Martins Pinto >>>>>>> Prof. Pleno/DCET/UESC >>>>>>> Laboratório de Estatística Computacional >>>>>>> Universidade Estadual de Santa Cruz >>>>>>> Ilhéus-Bahia >>>>>>> >>>>>>> [email protected] >>>>>>> skype: lrmpinto >>>>>>> http://lattes.cnpq.br/2732314327604831 >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Em 23 de outubro de 2013 11:02, Edson Lira <[email protected] >>>>>>> > escreveu: >>>>>>> >>>>>>>> Tem um pacote chamado ff que executa a leitura de arquivos grandes. >>>>>>>> >>>>>>>> Transforme seus dados para um arquivo .csv (caso não seja) e tente >>>>>>>> a leitura com este pacote. >>>>>>>> >>>>>>>> >>>>>>>> [ ]'s. >>>>>>>> Edson Lira >>>>>>>> Estatístico >>>>>>>> Manaus-Amazonas >>>>>>>> >>>>>>>> >>>>>>>> Em Quarta-feira, 23 de Outubro de 2013 5:35, Elias T Krainski < >>>>>>>> [email protected]> escreveu: >>>>>>>> Oi Luiz, >>>>>>>> >>>>>>>> O problema e' que vc tem 1000 niveis em cada um de dois fatores. >>>>>>>> Como a >>>>>>>> funcao aov() usa a funcao lm(), esta monta a matriz de >>>>>>>> delineamento, ne >>>>>>>> neste caso tem dimensao de um milhao por 1999. Para armazenar essa >>>>>>>> matriz vc precisa de 14.9Gb >>>>>>>> >>>>>>>> print(object.size(double(1999))*1e6, unit='Gb') >>>>>>>> >>>>>>>> Se seu computador tivesse 16Gb de memoria vc conseguiria fazer >>>>>>>> calculando as estatistica suficientes X'X e X'y. Foi o que eu fiz e >>>>>>>> enviei X'X e X'y no seu e-mail. Mas isso ainda nao 'e a melhor >>>>>>>> solucao >>>>>>>> nesse caso particular. >>>>>>>> >>>>>>>> Como vc nao tem fator continuo, e' muito barato computacionalmente >>>>>>>> fazer >>>>>>>> o quadro de anova calculando as expressoes de soma de quadrados. >>>>>>>> Dessa forma vc consegue montar um quadro de anova facilmente num >>>>>>>> computador com pouca memoria. Note que seu dado consiste em apenas >>>>>>>> dois >>>>>>>> fatores e uma resposta continua, cada um com 1 milhao de registros. >>>>>>>> Isso >>>>>>>> ocupa apenas 19.2Mb em memoria >>>>>>>> >>>>>>>> print(object.size(Data), un='Mb') >>>>>>>> >>>>>>>> Veja como montar o quadro de anova: >>>>>>>> >>>>>>>> attach(Data) >>>>>>>> n <- length(y) >>>>>>>> ntr <- c(length(levels(block)), length(levels(Treat))) >>>>>>>> gltot <- n-1 >>>>>>>> gltra <- ntr - 1 >>>>>>>> glres <- n - sum(ntr) >>>>>>>> >>>>>>>> correcao <- (sum(y)^2)/n >>>>>>>> sqtot <- sum(y^2)-correcao >>>>>>>> bltot <- tapply(y, block, sum) >>>>>>>> trtot <- tapply(y, Treat, sum) >>>>>>>> >>>>>>>> sqbl <- sum(bltot^2)/ntr[2] - correcao >>>>>>>> sqtr <- sum(trtot^2)/ntr[1] - correcao >>>>>>>> sqres <- sqtot - sqbl - sqtr >>>>>>>> >>>>>>>> qmbl <- sqbl/gltra[1] >>>>>>>> qmtr <- sqtr/gltra[2] >>>>>>>> qmres <- sqres/glres >>>>>>>> >>>>>>>> fval <- c(qmbl, qmtr)/qmres >>>>>>>> pval <- pf(fval, gltra, glres, lower.tail=FALSE) >>>>>>>> >>>>>>>> data.frame(gl=c(gltra, glres, gltot), >>>>>>>> sqt=c(sqbl, sqtr, sqres, sqtot), >>>>>>>> qm=c(qmbl, qmtr, qmres, NA), >>>>>>>> fval=c(fval, NA, NA), >>>>>>>> pval=c(pval, NA, NA)) >>>>>>>> >>>>>>>> >>>>>>>> On 10/22/2013 08:13 PM, Luiz Roberto Martins Pinto wrote: >>>>>>>> > Caros companheiros da R-BR. >>>>>>>> > >>>>>>>> > Não consigo fazer uma ANOVA com arquivo com 1e+06 registros. >>>>>>>> > Então... preciso de ajuda!!! >>>>>>>> > >>>>>>>> > Dados: >>>>>>>> > >>>>>>>> > http://www1.datafilehost.com/d/c0d31775 >>>>>>>> > >>>>>>>> > Meu pc >>>>>>>> > R for windows 2.15.1(x64) >>>>>>>> > 8 Gb de Memo >>>>>>>> > >>>>>>>> > load('RCBD_Data.Rdata') # Arquivo com 1e+06 registros >>>>>>>> > >>>>>>>> > m=aov(y~Treat+block,data=Data) >>>>>>>> > summary(m) >>>>>>>> > >>>>>>>> > Mensagem de erro: >>>>>>>> > >>>>>>>> > Erro: não é possível alocar vetor de tamanho 14.9 Gb >>>>>>>> > Além disso: Mensagens de aviso perdidas: >>>>>>>> > 1: In model.matrix.default(mt, mf, contrasts) : >>>>>>>> > Reached total allocation of 8086Mb: see help(memory.size) >>>>>>>> > 2: In model.matrix.default(mt, mf, contrasts) : >>>>>>>> > Reached total allocation of 8086Mb: see help(memory.size) >>>>>>>> > 3: In model.matrix.default(mt, mf, contrasts) : >>>>>>>> > Reached total allocation of 8086Mb: see help(memory.size) >>>>>>>> > 4: In model.matrix.default(mt, mf, contrasts) : >>>>>>>> > Reached total allocation of 8086Mb: see help(memory.size) >>>>>>>> > >>>>>>>> > >>>>>>>> > Luiz Roberto Martins Pinto >>>>>>>> > Prof. Pleno/DCET/UESC >>>>>>>> > Laboratório de Estatística Computacional >>>>>>>> > Universidade Estadual de Santa Cruz >>>>>>>> > Ilhéus-Bahia >>>>>>>> > >>>>>>>> > [email protected] <mailto:[email protected]> >>>>>>>> > skype: lrmpinto >>>>>>>> > http://lattes.cnpq.br/2732314327604831 >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > _______________________________________________ >>>>>>>> > R-br mailing list >>>>>>>> > [email protected] >>>>>>>> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>>>>>> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e >>>>>>>> forneça código mínimo reproduzível. >>>>>>>> >>>>>>>> > >>>>>>>> _______________________________________________ >>>>>>>> R-br mailing list >>>>>>>> [email protected] >>>>>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>>>>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e >>>>>>>> forneça código mínimo reproduzível. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> R-br mailing list >>>>>>>> [email protected] >>>>>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>>>>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e >>>>>>>> forneça código mínimo reproduzível. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> R-br mailing list >>>>>>> [email protected] >>>>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>>>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e >>>>>>> forneça código mínimo reproduzível. >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> R-br mailing list >>>>>> [email protected] >>>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >>>>>> código mínimo reproduzível. >>>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> R-br mailing list >>>>> [email protected] >>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >>>>> código mínimo reproduzível. >>>>> >>>> >>>> >>>> _______________________________________________ >>>> R-br mailing list >>>> [email protected] >>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >>>> código mínimo reproduzível. >>>> >>> >>> >>> _______________________________________________ >>> R-br mailing list >>> [email protected] >>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >>> código mínimo reproduzível. >>> >> >> >> _______________________________________________ >> R-br mailing list >> [email protected] >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > > _______________________________________________ > R-br mailing list > [email protected] > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >
_______________________________________________ R-br mailing list [email protected] https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
