Um fator 'e armazenado em memoria como um 'integer' com classes. o fato de ter 1000 classes cada fator aumenta apenas 1000 'character' em memoria (em relacao ao vetor de 'integer's).

Nos dados em questao, a resposta ocupa mais memoria (por ser 'numeric')

> sapply(Data, object.size)/1024
   block    Treat        y
3961.328 3961.328 7812.539

O grande numero de classes impacta diretamente na analise pretendida (ANOVA) se usar funcoes como aov() ou lm().

Abs,
Elias.

On 10/23/2013 03:19 PM, Edson Lira wrote:
É verdade Elias. Por outro lado são muitos níveis para um fator, você
não acha?

Talvez uma revisão nos dados melhorasse na execução da rotina.
[  ]'s
Edson Lira
Estatístico
Manaus-Amazonas


Em Quarta-feira, 23 de Outubro de 2013 9:08, Elias T Krainski
<[email protected]> escreveu:
isso so' ajuda na leitura (mais rapido por exemplo). mas o conjunto de
dados nao e' tao grande e o problema e' outro: anova.

On 10/23/2013 03:02 PM, Edson Lira wrote:
 > 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] <mailto:[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]>
<mailto:[email protected] <mailto:[email protected]>>
 > <mailto:[email protected]
<mailto:[email protected]> <mailto:[email protected]
<mailto:[email protected]>>>
 >  > skype: lrmpinto
 >  > http://lattes.cnpq.br/2732314327604831
 >  >
 >  >
 >  >
 >  >
 >  > _______________________________________________
 >  > R-br mailing list
 >  > [email protected] <mailto:[email protected]>
<mailto:[email protected] <mailto:[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] <mailto:[email protected]>
<mailto:[email protected] <mailto:[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] <mailto:[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] <mailto:[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.

Responder a