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

Luiz Roberto Martins Pinto luizroberto.uesc em gmail.com
Quarta Outubro 23 12:23:10 BRST 2013


*Elias,*
*
*
*Agradeço muitíssimo seus 2 e-mails.*
*
*
*Vou rodar e te darei retorno.*
*
*
*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 07: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<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@**gmail.com<luizroberto.uesc em gmail.com>
>> >
>> skype: lrmpinto
>> http://lattes.cnpq.br/**2732314327604831<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<https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br>
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-**guia<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<https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br>
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-**guia<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/54fa39f1/attachment.html>


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