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@gmail.com
skype: lrmpinto
http://lattes.cnpq.br/2732314327604831




Em 23 de outubro de 2013 07:35, Elias T Krainski <eliaskrainski@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@gmail.com <mailto:luizroberto.uesc@gmail.com>
skype: lrmpinto
http://lattes.cnpq.br/2732314327604831




_______________________________________________
R-br mailing list
R-br@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@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.