Não consigo fazer uma ANOVA com arquivo com 1e+06 registros.

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

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.

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@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.

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 <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> <mailto: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 <mailto: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 <mailto: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.

É 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 <eliaskrainski@yahoo.com.br> 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 <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> <mailto: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 <mailto: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 <mailto: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.
_______________________________________________ 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.

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 <eliaskrainski@yahoo.com.br> 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 <eliaskrainski@yahoo.com.br <mailto: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> <mailto:luizroberto.uesc@gmail.com <mailto:luizroberto.uesc@gmail.com>> <mailto:luizroberto.uesc@gmail.com <mailto:luizroberto.uesc@gmail.com> <mailto: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 <mailto:R-br@listas.c3sl.ufpr.br> <mailto:R-br@listas.c3sl.ufpr.br <mailto: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 <mailto:R-br@listas.c3sl.ufpr.br> <mailto:R-br@listas.c3sl.ufpr.br <mailto: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 <mailto: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 <mailto: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.

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@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831 Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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.
_______________________________________________ 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.

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@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@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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.
_______________________________________________ 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.

Ola Benilton, Não experimentei estas opções... sou completamente ignorante em R... quase analfabeto... 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 19:17, Benilton Carvalho < beniltoncarvalho@gmail.com> escreveu:
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@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@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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.
_______________________________________________ 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.
_______________________________________________ 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.

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 <beniltoncarvalho@gmail.com>
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@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@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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.
_______________________________________________ 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.
_______________________________________________ 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.

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 luizroberto.uesc@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831 Em 23 de outubro de 2013 19:24, Rogério Barbosa <antrologos@gmail.com>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 <beniltoncarvalho@gmail.com>
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@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@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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.
_______________________________________________ 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.
_______________________________________________ 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.

desculpe, foi um erro. A linha correta é: form = y ~ factor(Treat) + factor(block) 2013/10/23 Luiz Roberto Martins Pinto <luizroberto.uesc@gmail.com>
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
luizroberto.uesc@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 19:24, Rogério Barbosa <antrologos@gmail.com>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 <beniltoncarvalho@gmail.com>
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@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@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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.
_______________________________________________ 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.
_______________________________________________ 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.
_______________________________________________ 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.

Agora deu o seguinte erro... Erro em is.data.frame(data) : objeto 'firis' não encontrado 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 19:56, Rogério Barbosa <antrologos@gmail.com>escreveu:
desculpe, foi um erro. A linha correta é:
form = y ~ factor(Treat) + factor(block)
2013/10/23 Luiz Roberto Martins Pinto <luizroberto.uesc@gmail.com>
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
luizroberto.uesc@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 19:24, Rogério Barbosa <antrologos@gmail.com>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 <beniltoncarvalho@gmail.com>
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@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@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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.
_______________________________________________ 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.
_______________________________________________ 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.
_______________________________________________ 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.

O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase. Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito... ##################################### 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, dados.ff[i,,drop=FALSE]) } } summary(biglmfit) 2013/10/23 Luiz Roberto Martins Pinto <luizroberto.uesc@gmail.com>
Agora deu o seguinte erro...
Erro em is.data.frame(data) : objeto 'firis' não encontrado
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 19:56, Rogério Barbosa <antrologos@gmail.com>escreveu:
desculpe, foi um erro. A linha correta é:
form = y ~ factor(Treat) + factor(block)
2013/10/23 Luiz Roberto Martins Pinto <luizroberto.uesc@gmail.com>
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
luizroberto.uesc@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 19:24, Rogério Barbosa <antrologos@gmail.com>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 <beniltoncarvalho@gmail.com>
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@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@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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. > > > > _______________________________________________ > 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.
_______________________________________________ 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.
_______________________________________________ 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.
_______________________________________________ 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.

Rogério, Agradeço a sua generosidade. 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 21:29, Rogério Barbosa <antrologos@gmail.com>escreveu:
O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase.
Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito...
#####################################
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, dados.ff[i,,drop=FALSE]) } }
summary(biglmfit)
2013/10/23 Luiz Roberto Martins Pinto <luizroberto.uesc@gmail.com>
Agora deu o seguinte erro...
Erro em is.data.frame(data) : objeto 'firis' não encontrado
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 19:56, Rogério Barbosa <antrologos@gmail.com>escreveu:
desculpe, foi um erro. A linha correta é:
form = y ~ factor(Treat) + factor(block)
2013/10/23 Luiz Roberto Martins Pinto <luizroberto.uesc@gmail.com>
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
luizroberto.uesc@gmail.com skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 19:24, Rogério Barbosa <antrologos@gmail.com>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 <beniltoncarvalho@gmail.com>
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@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@gmail.com > skype: lrmpinto > http://lattes.cnpq.br/2732314327604831 > > > > > Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@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@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. >> >> >> >> _______________________________________________ >> 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. >
_______________________________________________ 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.
_______________________________________________ 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.
_______________________________________________ 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.

Eu não consegui abirir o arquivo de dados que colocou no datafilehost. Poderia me enviar anexado? Ou colocar no Mega Upload para baixar? O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase. Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito... ##################################### 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, dados.ff[i,,drop=FALSE]) } } summary(biglmfit) produzível.

Mauro, apos fazer download do arquivo vc carrega ele no R com load("RCBD_Data.Rdata") mas lembre-se que para isso funcionar o resultado de getwd() deve ser o diretorio onde o arquivo se encontra. On 10/24/2013 04:13 AM, Mauro Sznelwar wrote:
Eu não consegui abirir o arquivo de dados que colocou no datafilehost. Poderia me enviar anexado? Ou colocar no Mega Upload para baixar?
O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase.
Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito...
#####################################
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, dados.ff[i,,drop=FALSE]) } }
summary(biglmfit)
produzí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.

Muito obrigado pelo retorno. Que tipo de arquivo é este R.data? Como eu vsualizo o conteúdo? E por que é salvado deste jeito, e não nos modos txt ou csv como de costume? Mauro, apos fazer download do arquivo vc carrega ele no R com load("RCBD_Data.Rdata") mas lembre-se que para isso funcionar o resultado de getwd() deve ser o diretorio onde o arquivo se encontra. On 10/24/2013 04:13 AM, Mauro Sznelwar wrote:
Eu não consegui abirir o arquivo de dados que colocou no datafilehost. Poderia me enviar anexado? Ou colocar no Mega Upload para baixar?
O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase.
Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito...
#####################################
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, dados.ff[i,,drop=FALSE]) } }
summary(biglmfit)
produzí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.
_______________________________________________ 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.

Esse e' o formato binario do R Ocupa menos espaco em disco que .txt Tem a vantagem de preservar as classes das colunas Visualizar como? Grafico? Depende do que voce quer plotar Planilha? Nao sei a utilidade disso em se tratando de muitas linhas... Mas e' possivel salvar em planilha apos ler no R On 10/28/2013 04:01 AM, Mauro Sznelwar wrote:
Muito obrigado pelo retorno. Que tipo de arquivo é este R.data? Como eu vsualizo o conteúdo? E por que é salvado deste jeito, e não nos modos txt ou csv como de costume?
Mauro, apos fazer download do arquivo vc carrega ele no R com load("RCBD_Data.Rdata") mas lembre-se que para isso funcionar o resultado de getwd() deve ser o diretorio onde o arquivo se encontra.
On 10/24/2013 04:13 AM, Mauro Sznelwar wrote:
Eu não consegui abirir o arquivo de dados que colocou no datafilehost. Poderia me enviar anexado? Ou colocar no Mega Upload para baixar?
O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase.
Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito...
#####################################
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, dados.ff[i,,drop=FALSE]) } }
summary(biglmfit)
produzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto: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 <mailto: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.

Obrigado pelo retorno, mas como faz para salvar em planilha? Esse e' o formato binario do R Ocupa menos espaco em disco que .txt Tem a vantagem de preservar as classes das colunas Visualizar como? Grafico? Depende do que voce quer plotar Planilha? Nao sei a utilidade disso em se tratando de muitas linhas... Mas e' possivel salvar em planilha apos ler no R On 10/28/2013 04:01 AM, Mauro Sznelwar wrote:
Muito obrigado pelo retorno. Que tipo de arquivo é este R.data? Como eu vsualizo o conteúdo? E por que é salvado deste jeito, e não nos modos txt ou csv como de costume?
Mauro, apos fazer download do arquivo vc carrega ele no R com load("RCBD_Data.Rdata") mas lembre-se que para isso funcionar o resultado de getwd() deve ser o diretorio onde o arquivo se encontra.
On 10/24/2013 04:13 AM, Mauro Sznelwar wrote:
Eu não consegui abirir o arquivo de dados que colocou no datafilehost. Poderia me enviar anexado? Ou colocar no Mega Upload para baixar?
O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase.
Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito...
#####################################
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, dados.ff[i,,drop=FALSE]) } }
summary(biglmfit)
produzível.

Obrigado pelo retorno, mas como faz para salvar em planilha?
Ha' varias formas... veja: http://cran.r-project.org/doc/manuals/r-release/R-data.html mas, siceramente, nao vejo utilidade em visualizar tantos dados numa planilha...

Ok. Vou enviar por meio do seu e-mail particular. 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 24 de outubro de 2013 00:13, Mauro Sznelwar <sznelwar@uol.com.br>escreveu:
** Eu não consegui abirir o arquivo de dados que colocou no datafilehost. Poderia me enviar anexado? Ou colocar no Mega Upload para baixar?
O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase.
Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito...
#####################################
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, dados.ff[i,,drop=FALSE]) } }
summary(biglmfit)
produzí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.

Pessoal, gostaria de ressaltar algumas coisas... Ha pelo menos duas formas de obter o quadro de uma anova quando temos apenas covariaveis to tipo fator. 1) aplicar formulas de somas de quadrados 2) usar regressao linear Com a primeira forma, basta-se aplicar algumas formulas e em segundos e sem gastar memoria temos o quadro da anova. Com a segunda forma, precisamos obter a matrix de delineamento, X, que tem muitas colunas simplesmente nao cabe na memoria de muitos computadores. Talvez poderia aproveitar-se da esparcidade dessa matrix... mas ha solucoes como biglm ou a solucao por partes implementada no speedglm 'biglm' sozinho nao resolve esse problema num computador com pouca memoria :)
a <- biglm(form, data=dados.ff) Error: cannot allocate vector of size 14.9 Gb
A estrategia postada pelo Rogerio (usando biglm), que e' a mesma implementada no pacote 'speedglm'. Basicamente o que se faz e' calcular a matrizes X'X e X'y como somas de dessas matrizes obtidas com partes dos dados. Assim, evita-se construir a matrix X toda de uma vez. Ainda resta um problema nessa solucao... sorry:
anova(biglmfit) Error in UseMethod("anova") : no applicable method for 'anova' applied to an object of class "biglm" e, se o objetivo e' ter o resumo das coisas num quadro de anova, precisamos ainda de mais alguns calculos...
Resumindo: 1) usar formulas de somas de quadrados tomam poucos segundos e nao usa muita memoria. 2) speedglm ou biglm step by step demoram minutos e ainda usa muita memoria. Abs, Elias On 10/24/2013 01:29 AM, Rogério Barbosa wrote:
O código abaixo toma partes de scripts do PDF dos pacotes ff e ffbase.
Eu testei com seus dados e deu certo. Mas na hora de copiar e colar para o e-mail, houve erros... Acho que agora está certo. Mas ressalto, isso é só uma regressão linear. Não sei como calcular o two-way anova a partir disso.. somente uma anova comum. Mas estou certo de que tem jeito...
#####################################
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, dados.ff[i,,drop=FALSE]) } }
summary(biglmfit)
2013/10/23 Luiz Roberto Martins Pinto <luizroberto.uesc@gmail.com <mailto:luizroberto.uesc@gmail.com>>
Agora deu o seguinte erro...
Erro em is.data.frame(data) : objeto 'firis' não encontrado
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
Em 23 de outubro de 2013 19:56, Rogério Barbosa <antrologos@gmail.com <mailto:antrologos@gmail.com>> escreveu:
desculpe, foi um erro. A linha correta é:
form = y ~ factor(Treat) + factor(block)
2013/10/23 Luiz Roberto Martins Pinto <luizroberto.uesc@gmail.com <mailto:luizroberto.uesc@gmail.com>>
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
luizroberto.uesc@gmail.com <mailto:luizroberto.uesc@gmail.com> skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 19:24, Rogério Barbosa <antrologos@gmail.com <mailto:antrologos@gmail.com>> 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 <beniltoncarvalho@gmail.com <mailto:beniltoncarvalho@gmail.com>>
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@gmail.com <mailto:luizroberto.uesc@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@gmail.com <mailto:luizroberto.uesc@gmail.com> skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@yahoo.com.br <mailto:edinhoestat@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@yahoo.com.br <mailto: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> <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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.

O problema com biglm() e' essa linha: mm <- model.matrix(tt, mf) sorry :) biganalytics eu nao conheco... faz swap? On 10/23/2013 11:17 PM, Benilton Carvalho wrote:
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@gmail.com <mailto:luizroberto.uesc@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@gmail.com <mailto:luizroberto.uesc@gmail.com> skype: lrmpinto http://lattes.cnpq.br/2732314327604831
Em 23 de outubro de 2013 11:02, Edson Lira <edinhoestat@yahoo.com.br <mailto:edinhoestat@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@yahoo.com.br <mailto: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> <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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.

*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<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<luizroberto.uesc@gmail.com>
skype: lrmpinto http://lattes.cnpq.br/**2732314327604831<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<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@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.
participantes (6)
-
Benilton Carvalho
-
Edson Lira
-
Elias T Krainski
-
Luiz Roberto Martins Pinto
-
Mauro Sznelwar
-
Rogério Barbosa