[R-br] Não consigo fazer uma ANOVA com arquivo com 1e+06 registros.

Benilton Carvalho beniltoncarvalho em gmail.com
Quarta Outubro 23 19:17:49 BRST 2013


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" <
luizroberto.uesc em gmail.com> 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
>
> luizroberto.uesc em gmail.com
> skype: lrmpinto
> http://lattes.cnpq.br/2732314327604831
>
>
>
>
> Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat em yahoo.com.br>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 <
>> eliaskrainski em yahoo.com.br> 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
>> >
>> > luizroberto.uesc em gmail.com <mailto:luizroberto.uesc em gmail.com>
>> > skype: lrmpinto
>> > http://lattes.cnpq.br/2732314327604831
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > R-br mailing list
>> > R-br em listas.c3sl.ufpr.br
>> > 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
>> R-br em listas.c3sl.ufpr.br
>> 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
>> R-br em listas.c3sl.ufpr.br
>> 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
> R-br em listas.c3sl.ufpr.br
> 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20131023/fff0bac4/attachment.html>


Mais detalhes sobre a lista de discussão R-br