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.
