Diferença de resultados entre 64 e 32 bits

Caros, programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar? Código: require(copula) require(MASS) set.seed(31415) normCop <- function(param,data) { n <- nrow(data) if (length(param) != n) { param <- rep(param,nrow(data)) } cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) datalist <- apply(data,1,list) for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) if (out == Inf) { out = exp(100) } return(out) } a <- matrix(0,20,2) n <- 100 Sigma <- matrix(c(10,3,3,2),2,2) for (j in 1:20) { data <- mvrnorm(n=n, rep(0, 2), Sigma) data <- apply(data,2,rank)/(n+1) fitNormCop <- function(data) { optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B") } a[j,1] <- fitNormCop(data)$par # Meu a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # Pacote copula } E aqui um gráfico de dispersão comparando todos: http://img411.imageshack.us/img411/7527/92588280.png []'s

Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao? Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou. https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda Experimente o comando a seguir ao carregar o arquivo: all.equal(a32, a64) A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar o R e qq outro acessorio utilizado nao tiver dado certo. b 2012/7/17 Rodrigo Coster <rcoster@gmail.com>:
Caros,
programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar?
Código: require(copula) require(MASS) set.seed(31415)
normCop <- function(param,data) { n <- nrow(data) if (length(param) != n) { param <- rep(param,nrow(data)) } cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) datalist <- apply(data,1,list) for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) if (out == Inf) { out = exp(100) } return(out) } a <- matrix(0,20,2) n <- 100 Sigma <- matrix(c(10,3,3,2),2,2) for (j in 1:20) { data <- mvrnorm(n=n, rep(0, 2), Sigma) data <- apply(data,2,rank)/(n+1)
fitNormCop <- function(data) { optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B") } a[j,1] <- fitNormCop(data)$par # Meu a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # Pacote copula }
E aqui um gráfico de dispersão comparando todos: http://img411.imageshack.us/img411/7527/92588280.png
[]'s
_______________________________________________ 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.

Benilton, olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7). Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais. []'s 2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com>
Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao?
Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou.
https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda
Experimente o comando a seguir ao carregar o arquivo:
all.equal(a32, a64)
A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar o R e qq outro acessorio utilizado nao tiver dado certo.
b
2012/7/17 Rodrigo Coster <rcoster@gmail.com>:
Caros,
programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar?
Código: require(copula) require(MASS) set.seed(31415)
normCop <- function(param,data) { n <- nrow(data) if (length(param) != n) { param <- rep(param,nrow(data)) } cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) datalist <- apply(data,1,list) for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) if (out == Inf) { out = exp(100) } return(out) } a <- matrix(0,20,2) n <- 100 Sigma <- matrix(c(10,3,3,2),2,2) for (j in 1:20) { data <- mvrnorm(n=n, rep(0, 2), Sigma) data <- apply(data,2,rank)/(n+1)
fitNormCop <- function(data) { optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B") } a[j,1] <- fitNormCop(data)$par # Meu a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # Pacote copula }
E aqui um gráfico de dispersão comparando todos: http://img411.imageshack.us/img411/7527/92588280.png
[]'s
_______________________________________________ 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.

E os resultados q eu obtive conferem com algum q vc tenha obtido? Com a igualdade dos 2 objetos, fica entao que o R32 e R64 nao geraram resultados diferentes no meu computador. Se vc estiver usando o R a partir dos binarios disponibilizados no CRAN, entao confirmaria que "resultados antigos" nao estejam sendo usados e q vc tbm nao esteja utilizando nada em termos de BLAS/ATLAS alternativos.... b 2012/7/17 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com>
Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao?
Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou.
https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda
Experimente o comando a seguir ao carregar o arquivo:
all.equal(a32, a64)
A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar o R e qq outro acessorio utilizado nao tiver dado certo.
b
2012/7/17 Rodrigo Coster <rcoster@gmail.com>:
Caros,
programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar?
Código: require(copula) require(MASS) set.seed(31415)
normCop <- function(param,data) { n <- nrow(data) if (length(param) != n) { param <- rep(param,nrow(data)) } cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) datalist <- apply(data,1,list) for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) if (out == Inf) { out = exp(100) } return(out) } a <- matrix(0,20,2) n <- 100 Sigma <- matrix(c(10,3,3,2),2,2) for (j in 1:20) { data <- mvrnorm(n=n, rep(0, 2), Sigma) data <- apply(data,2,rank)/(n+1)
fitNormCop <- function(data) { optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B") } a[j,1] <- fitNormCop(data)$par # Meu a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # Pacote copula }
E aqui um gráfico de dispersão comparando todos: http://img411.imageshack.us/img411/7527/92588280.png
[]'s
_______________________________________________ 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 aqui tenho linux, rodei uma vm windows pra simular o 32 bits e comparei com o meu linux (64 bits) deu que os resultados não diferem Seria bom apresentar maiores detalhes, como versões do R, do pacote, máquina, etc []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 17/07/2012 12:18, Rodrigo Coster escreveu:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com <mailto:beniltoncarvalho@gmail.com>>
Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao?
Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou.
https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda
Experimente o comando a seguir ao carregar o arquivo:
all.equal(a32, a64)
A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar o R e qq outro acessorio utilizado nao tiver dado certo.
b
2012/7/17 Rodrigo Coster <rcoster@gmail.com <mailto:rcoster@gmail.com>>: > Caros, > > programei uma rotina para estimar por máxima verossimilhança os parâmetros > de uma cópula e para ver se estava certo comparei os resultados com o > comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em > diante, que considerei como sendo por causa do método numérico utilizado. Só > que, ao fazer a mesma comparação num computador 64 bits os resultados são > bastante divergentes (o meu código muda o valor estimado, enquanto o pacote > copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a > correlação, então a 2a casa decimal é bem importante). Dai me bateu a > seguinte dúvida: em qual confiar? > > Código: > require(copula) > require(MASS) > set.seed(31415) > > normCop <- function(param,data) { > n <- nrow(data) > if (length(param) != n) { param <- rep(param,nrow(data)) } > cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) > datalist <- apply(data,1,list) > for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } > out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) > if (out == Inf) { out = exp(100) } > return(out) > } > a <- matrix(0,20,2) > n <- 100 > Sigma <- matrix(c(10,3,3,2),2,2) > for (j in 1:20) { > data <- mvrnorm(n=n, rep(0, 2), Sigma) > data <- apply(data,2,rank)/(n+1) > > fitNormCop <- function(data) { > optim(cor(data)[2],normCop,data=data, lower = 0, upper = > .9999,method="L-BFGS-B") > } > a[j,1] <- fitNormCop(data)$par # Meu > a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # > Pacote copula > } > > E aqui um gráfico de dispersão comparando todos: > http://img411.imageshack.us/img411/7527/92588280.png > > > > > > > []'s > > _______________________________________________ > 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.

Benilton, os teus resultados são iguais aos meus no R 64 bits. Por resultado antigo tu diz carregar alguma área de trabalho? Se sim, isso não esta acontecendo. Leonard, É um i5 3450 com windows 7, R 2.15.1 e os pacotes são as versões mais recentes. A outra maquina (que é só 32 bits) eu sei que é um Core 2 Quad com WinXP, R e pacotes desatualizados []'s 2012/7/17 Leonard de Assis <assis.leonard@gmail.com>
Eu aqui tenho linux, rodei uma vm windows pra simular o 32 bits e comparei com o meu linux (64 bits) deu que os resultados não diferem
Seria bom apresentar maiores detalhes, como versões do R, do pacote, máquina, etc
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 17/07/2012 12:18, Rodrigo Coster escreveu:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com>
Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao?
Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou.
https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda
Experimente o comando a seguir ao carregar o arquivo:
all.equal(a32, a64)
A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar o R e qq outro acessorio utilizado nao tiver dado certo.
b
2012/7/17 Rodrigo Coster <rcoster@gmail.com>:
Caros,
programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar?
Código: require(copula) require(MASS) set.seed(31415)
normCop <- function(param,data) { n <- nrow(data) if (length(param) != n) { param <- rep(param,nrow(data)) } cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) datalist <- apply(data,1,list) for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) if (out == Inf) { out = exp(100) } return(out) } a <- matrix(0,20,2) n <- 100 Sigma <- matrix(c(10,3,3,2),2,2) for (j in 1:20) { data <- mvrnorm(n=n, rep(0, 2), Sigma) data <- apply(data,2,rank)/(n+1)
fitNormCop <- function(data) { optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B") } a[j,1] <- fitNormCop(data)$par # Meu a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # Pacote copula }
E aqui um gráfico de dispersão comparando todos: http://img411.imageshack.us/img411/7527/92588280.png
[]'s
_______________________________________________ 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 listR-br@listas.c3sl.ufpr.brhttps://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 comecaria por garantir que as versoes do R e dos demais pacotes sejam as mesmas nos diferentes ambientes. Em teoria, a maquina que tem o R 64 bits tambem tem o 32 bits (algum usuario de windows pode te ajudar melhor q eu nesse caso), vc poderia tentar executar o R32 na mesma maquina... b 2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
os teus resultados são iguais aos meus no R 64 bits. Por resultado antigo tu diz carregar alguma área de trabalho? Se sim, isso não esta acontecendo.
Leonard,
É um i5 3450 com windows 7, R 2.15.1 e os pacotes são as versões mais recentes. A outra maquina (que é só 32 bits) eu sei que é um Core 2 Quad com WinXP, R e pacotes desatualizados
[]'s
2012/7/17 Leonard de Assis <assis.leonard@gmail.com>
Eu aqui tenho linux, rodei uma vm windows pra simular o 32 bits e comparei com o meu linux (64 bits) deu que os resultados não diferem
Seria bom apresentar maiores detalhes, como versões do R, do pacote, máquina, etc
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 17/07/2012 12:18, Rodrigo Coster escreveu:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com>
Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao?
Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou.
https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda
Experimente o comando a seguir ao carregar o arquivo:
all.equal(a32, a64)
A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar o R e qq outro acessorio utilizado nao tiver dado certo.
b
2012/7/17 Rodrigo Coster <rcoster@gmail.com>:
Caros,
programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar?
Código: require(copula) require(MASS) set.seed(31415)
normCop <- function(param,data) { n <- nrow(data) if (length(param) != n) { param <- rep(param,nrow(data)) } cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) datalist <- apply(data,1,list) for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) if (out == Inf) { out = exp(100) } return(out) } a <- matrix(0,20,2) n <- 100 Sigma <- matrix(c(10,3,3,2),2,2) for (j in 1:20) { data <- mvrnorm(n=n, rep(0, 2), Sigma) data <- apply(data,2,rank)/(n+1)
fitNormCop <- function(data) { optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B") } a[j,1] <- fitNormCop(data)$par # Meu a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # Pacote copula }
E aqui um gráfico de dispersão comparando todos: http://img411.imageshack.us/img411/7527/92588280.png
[]'s
_______________________________________________ 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.

Benilton, rodando na mesma maquina o resultado do R32 e R64 é diferente, foi com base nisso (R's da mesma maquina) que eu fiz o gráfico que mandei... tentei desinstalar o R e reinstalar, mas não resolveu []'s 2012/7/18 Benilton Carvalho <beniltoncarvalho@gmail.com>
Eu comecaria por garantir que as versoes do R e dos demais pacotes sejam as mesmas nos diferentes ambientes.
Em teoria, a maquina que tem o R 64 bits tambem tem o 32 bits (algum usuario de windows pode te ajudar melhor q eu nesse caso), vc poderia tentar executar o R32 na mesma maquina...
b
2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
os teus resultados são iguais aos meus no R 64 bits. Por resultado antigo tu diz carregar alguma área de trabalho? Se sim, isso não esta acontecendo.
Leonard,
É um i5 3450 com windows 7, R 2.15.1 e os pacotes são as versões mais recentes. A outra maquina (que é só 32 bits) eu sei que é um Core 2 Quad com WinXP, R e pacotes desatualizados
[]'s
2012/7/17 Leonard de Assis <assis.leonard@gmail.com>
Eu aqui tenho linux, rodei uma vm windows pra simular o 32 bits e
comparei
com o meu linux (64 bits) deu que os resultados não diferem
Seria bom apresentar maiores detalhes, como versões do R, do pacote, máquina, etc
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 17/07/2012 12:18, Rodrigo Coster escreveu:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com>
Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao?
Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou.
https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda
Experimente o comando a seguir ao carregar o arquivo:
all.equal(a32, a64)
A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar o R e qq outro acessorio utilizado nao tiver dado certo.
b
2012/7/17 Rodrigo Coster <rcoster@gmail.com>:
Caros,
programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar?
Código: require(copula) require(MASS) set.seed(31415)
normCop <- function(param,data) { n <- nrow(data) if (length(param) != n) { param <- rep(param,nrow(data)) } cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) datalist <- apply(data,1,list) for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) if (out == Inf) { out = exp(100) } return(out) } a <- matrix(0,20,2) n <- 100 Sigma <- matrix(c(10,3,3,2),2,2) for (j in 1:20) { data <- mvrnorm(n=n, rep(0, 2), Sigma) data <- apply(data,2,rank)/(n+1)
fitNormCop <- function(data) { optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B") } a[j,1] <- fitNormCop(data)$par # Meu a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate
#
Pacote copula }
E aqui um gráfico de dispersão comparando todos: http://img411.imageshack.us/img411/7527/92588280.png
[]'s
_______________________________________________ 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.

Voce consegue executar o R passando argumentos adicionais? (imagino q vc tenha q fucar na linha de comando dentro do atalho usado pelo Windows)... Se vc estivesse num Linux/Mac, eu recomendaria executar o R como segue: R --arch i386 --vanilla e R --arch x86_64 --vanilla E tentar mais uma ultima vez a comparacao entre ambos... (Evite qualquer firula como RStudio tbm). b 2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
rodando na mesma maquina o resultado do R32 e R64 é diferente, foi com base nisso (R's da mesma maquina) que eu fiz o gráfico que mandei... tentei desinstalar o R e reinstalar, mas não resolveu
[]'s
2012/7/18 Benilton Carvalho <beniltoncarvalho@gmail.com>
Eu comecaria por garantir que as versoes do R e dos demais pacotes sejam as mesmas nos diferentes ambientes.
Em teoria, a maquina que tem o R 64 bits tambem tem o 32 bits (algum usuario de windows pode te ajudar melhor q eu nesse caso), vc poderia tentar executar o R32 na mesma maquina...
b
2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
os teus resultados são iguais aos meus no R 64 bits. Por resultado antigo tu diz carregar alguma área de trabalho? Se sim, isso não esta acontecendo.
Leonard,
É um i5 3450 com windows 7, R 2.15.1 e os pacotes são as versões mais recentes. A outra maquina (que é só 32 bits) eu sei que é um Core 2 Quad com WinXP, R e pacotes desatualizados
[]'s
2012/7/17 Leonard de Assis <assis.leonard@gmail.com>
Eu aqui tenho linux, rodei uma vm windows pra simular o 32 bits e comparei com o meu linux (64 bits) deu que os resultados não diferem
Seria bom apresentar maiores detalhes, como versões do R, do pacote, máquina, etc
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 17/07/2012 12:18, Rodrigo Coster escreveu:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com>
Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao?
Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou.
https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda
Experimente o comando a seguir ao carregar o arquivo:
all.equal(a32, a64)
A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar o R e qq outro acessorio utilizado nao tiver dado certo.
b
2012/7/17 Rodrigo Coster <rcoster@gmail.com>:
Caros,
programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar?
Código: require(copula) require(MASS) set.seed(31415)
normCop <- function(param,data) { n <- nrow(data) if (length(param) != n) { param <- rep(param,nrow(data)) } cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) datalist <- apply(data,1,list) for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) if (out == Inf) { out = exp(100) } return(out) } a <- matrix(0,20,2) n <- 100 Sigma <- matrix(c(10,3,3,2),2,2) for (j in 1:20) { data <- mvrnorm(n=n, rep(0, 2), Sigma) data <- apply(data,2,rank)/(n+1)
fitNormCop <- function(data) { optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B") } a[j,1] <- fitNormCop(data)$par # Meu a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # Pacote copula }
E aqui um gráfico de dispersão comparando todos: http://img411.imageshack.us/img411/7527/92588280.png
[]'s
_______________________________________________ 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.

Benilton, mesmo com --vanilla deu resultados diferentes.
sessionInfo() R version 2.15.1 (2012-06-22) Platform: x86_64-pc-mingw32/x64 (64-bit)
locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] MASS_7.3-19 copula_0.99-4 pspline_1.0-14 loaded via a namespace (and not attached): [1] ADGofTest_0.3 gsl_1.9-9 mvtnorm_0.9-9992 stabledist_0.6-4 stats4_2.15.1
a [,1] [,2] [1,] 0.6533333 0.6673587 [2,] 0.6956496 0.7000601 [3,] 0.5554635 0.6169322 [4,] 0.4895890 0.5405670 [5,] 0.6038044 0.6422919 [6,] 0.7295427 0.7295427 [7,] 0.6548815 0.7080392 [8,] 0.5468827 0.6015380 [9,] 0.6630423 0.6955567 [10,] 0.7214445 0.7214441 [11,] 0.6681827 0.6681817 [12,] 0.6429204 0.6429205 [13,] 0.5678848 0.5918048 [14,] 0.6829043 0.6985720 [15,] 0.7653632 0.7653638 [16,] 0.6215542 0.6570017 [17,] 0.7085038 0.7085053 [18,] 0.6620582 0.6958966 [19,] 0.6829283 0.6912327 [20,] 0.6416442 0.6904770
sessionInfo() R version 2.15.1 (2012-06-22) Platform: i386-pc-mingw32/i386 (32-bit)
locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] MASS_7.3-19 copula_0.99-4 pspline_1.0-14 loaded via a namespace (and not attached): [1] ADGofTest_0.3 gsl_1.9-9 mvtnorm_0.9-9992 stabledist_0.6-4 stats4_2.15.1
a [,1] [,2] [1,] 0.6673587 0.6673587 [2,] 0.7000619 0.7000601 [3,] 0.6169316 0.6169322 [4,] 0.5405662 0.5405670 [5,] 0.6423069 0.6422919 [6,] 0.7295427 0.7295427 [7,] 0.7080409 0.7080392 [8,] 0.6015378 0.6015380 [9,] 0.6955575 0.6955567 [10,] 0.7214445 0.7214441 [11,] 0.6681827 0.6681817 [12,] 0.6429204 0.6429205 [13,] 0.5918050 0.5918048 [14,] 0.6985704 0.6985720 [15,] 0.7653632 0.7653638 [16,] 0.6569979 0.6570017 [17,] 0.7085038 0.7085053 [18,] 0.6958953 0.6958966 [19,] 0.6912321 0.6912327 [20,] 0.6904751 0.6904770
2012/7/18 Benilton Carvalho <beniltoncarvalho@gmail.com>
Voce consegue executar o R passando argumentos adicionais? (imagino q vc tenha q fucar na linha de comando dentro do atalho usado pelo Windows)...
Se vc estivesse num Linux/Mac, eu recomendaria executar o R como segue:
R --arch i386 --vanilla
e
R --arch x86_64 --vanilla
E tentar mais uma ultima vez a comparacao entre ambos... (Evite qualquer firula como RStudio tbm).
b
2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
rodando na mesma maquina o resultado do R32 e R64 é diferente, foi com base nisso (R's da mesma maquina) que eu fiz o gráfico que mandei... tentei desinstalar o R e reinstalar, mas não resolveu
[]'s
2012/7/18 Benilton Carvalho <beniltoncarvalho@gmail.com>
Eu comecaria por garantir que as versoes do R e dos demais pacotes sejam as mesmas nos diferentes ambientes.
Em teoria, a maquina que tem o R 64 bits tambem tem o 32 bits (algum usuario de windows pode te ajudar melhor q eu nesse caso), vc poderia tentar executar o R32 na mesma maquina...
b
2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
os teus resultados são iguais aos meus no R 64 bits. Por resultado antigo tu diz carregar alguma área de trabalho? Se sim, isso não esta
acontecendo.
Leonard,
É um i5 3450 com windows 7, R 2.15.1 e os pacotes são as versões mais recentes. A outra maquina (que é só 32 bits) eu sei que é um Core 2
Quad
com WinXP, R e pacotes desatualizados
[]'s
2012/7/17 Leonard de Assis <assis.leonard@gmail.com>
Eu aqui tenho linux, rodei uma vm windows pra simular o 32 bits e comparei com o meu linux (64 bits) deu que os resultados não diferem
Seria bom apresentar maiores detalhes, como versões do R, do pacote, máquina, etc
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 17/07/2012 12:18, Rodrigo Coster escreveu:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos
são
iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com>
Alguma chance de algum dos computadores q vc tenha usado estar utilizando alguma "compilacao propria" do R ou algum esquema de otimizacao?
Executei o seu codigo no meu computador e tudo parece OK (ie., o objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir possui 2 elements: a32 e a64, resultantes do codigo q vc enviou.
https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda
Experimente o comando a seguir ao carregar o arquivo:
all.equal(a32, a64)
A unica coisa q consigo imaginar e' se alguma "otimizacao" ao
compilar
o R e qq outro acessorio utilizado nao tiver dado certo.
b
2012/7/17 Rodrigo Coster <rcoster@gmail.com>: > Caros, > > programei uma rotina para estimar por máxima verossimilhança os > parâmetros > de uma cópula e para ver se estava certo comparei os resultados com > o > comando do pacote copula. Encontrei diferenças apenas na 5a casa > decimal em > diante, que considerei como sendo por causa do método numérico > utilizado. Só > que, ao fazer a mesma comparação num computador 64 bits os > resultados > são > bastante divergentes (o meu código muda o valor estimado, enquanto o > pacote > copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a > correlação, então a 2a casa decimal é bem importante). Dai me bateu > a > seguinte dúvida: em qual confiar? > > Código: > require(copula) > require(MASS) > set.seed(31415) > > normCop <- function(param,data) { > n <- nrow(data) > if (length(param) != n) { param <- rep(param,nrow(data)) } > cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) > datalist <- apply(data,1,list) > for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } > out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) > if (out == Inf) { out = exp(100) } > return(out) > } > a <- matrix(0,20,2) > n <- 100 > Sigma <- matrix(c(10,3,3,2),2,2) > for (j in 1:20) { > data <- mvrnorm(n=n, rep(0, 2), Sigma) > data <- apply(data,2,rank)/(n+1) > > fitNormCop <- function(data) { > optim(cor(data)[2],normCop,data=data, lower = 0, upper = > .9999,method="L-BFGS-B") > } > a[j,1] <- fitNormCop(data)$par # Meu > a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate > # > Pacote copula > } > > E aqui um gráfico de dispersão comparando todos: > http://img411.imageshack.us/img411/7527/92588280.png > > > > > > > []'s > > _______________________________________________ > 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.

Rodrigo, vc tera' que executar sua funcao passo-a-passo e salvar cada um destes passos... E, assim, comparar entre 32 e 64 bits... basicamente, se vc adicionar um save() depois de cada linha, vc tera q comparar cada um desses objectos para entender a origem da diferenca. b 2012/7/19 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
mesmo com --vanilla deu resultados diferentes.
sessionInfo() R version 2.15.1 (2012-06-22) Platform: x86_64-pc-mingw32/x64 (64-bit)
locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252
attached base packages: [1] stats graphics grDevices utils datasets methods base
other attached packages: [1] MASS_7.3-19 copula_0.99-4 pspline_1.0-14
loaded via a namespace (and not attached): [1] ADGofTest_0.3 gsl_1.9-9 mvtnorm_0.9-9992 stabledist_0.6-4 stats4_2.15.1
a [,1] [,2] [1,] 0.6533333 0.6673587 [2,] 0.6956496 0.7000601 [3,] 0.5554635 0.6169322 [4,] 0.4895890 0.5405670 [5,] 0.6038044 0.6422919 [6,] 0.7295427 0.7295427 [7,] 0.6548815 0.7080392 [8,] 0.5468827 0.6015380 [9,] 0.6630423 0.6955567 [10,] 0.7214445 0.7214441 [11,] 0.6681827 0.6681817 [12,] 0.6429204 0.6429205 [13,] 0.5678848 0.5918048 [14,] 0.6829043 0.6985720 [15,] 0.7653632 0.7653638 [16,] 0.6215542 0.6570017 [17,] 0.7085038 0.7085053 [18,] 0.6620582 0.6958966 [19,] 0.6829283 0.6912327 [20,] 0.6416442 0.6904770
sessionInfo() R version 2.15.1 (2012-06-22) Platform: i386-pc-mingw32/i386 (32-bit)
locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252
attached base packages: [1] stats graphics grDevices utils datasets methods base
other attached packages: [1] MASS_7.3-19 copula_0.99-4 pspline_1.0-14
loaded via a namespace (and not attached): [1] ADGofTest_0.3 gsl_1.9-9 mvtnorm_0.9-9992 stabledist_0.6-4 stats4_2.15.1
a [,1] [,2] [1,] 0.6673587 0.6673587 [2,] 0.7000619 0.7000601 [3,] 0.6169316 0.6169322 [4,] 0.5405662 0.5405670 [5,] 0.6423069 0.6422919 [6,] 0.7295427 0.7295427 [7,] 0.7080409 0.7080392 [8,] 0.6015378 0.6015380 [9,] 0.6955575 0.6955567 [10,] 0.7214445 0.7214441 [11,] 0.6681827 0.6681817 [12,] 0.6429204 0.6429205 [13,] 0.5918050 0.5918048 [14,] 0.6985704 0.6985720 [15,] 0.7653632 0.7653638 [16,] 0.6569979 0.6570017 [17,] 0.7085038 0.7085053 [18,] 0.6958953 0.6958966 [19,] 0.6912321 0.6912327 [20,] 0.6904751 0.6904770
2012/7/18 Benilton Carvalho <beniltoncarvalho@gmail.com>
Voce consegue executar o R passando argumentos adicionais? (imagino q vc tenha q fucar na linha de comando dentro do atalho usado pelo Windows)...
Se vc estivesse num Linux/Mac, eu recomendaria executar o R como segue:
R --arch i386 --vanilla
e
R --arch x86_64 --vanilla
E tentar mais uma ultima vez a comparacao entre ambos... (Evite qualquer firula como RStudio tbm).
b
2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
rodando na mesma maquina o resultado do R32 e R64 é diferente, foi com base nisso (R's da mesma maquina) que eu fiz o gráfico que mandei... tentei desinstalar o R e reinstalar, mas não resolveu
[]'s
2012/7/18 Benilton Carvalho <beniltoncarvalho@gmail.com>
Eu comecaria por garantir que as versoes do R e dos demais pacotes sejam as mesmas nos diferentes ambientes.
Em teoria, a maquina que tem o R 64 bits tambem tem o 32 bits (algum usuario de windows pode te ajudar melhor q eu nesse caso), vc poderia tentar executar o R32 na mesma maquina...
b
2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
os teus resultados são iguais aos meus no R 64 bits. Por resultado antigo tu diz carregar alguma área de trabalho? Se sim, isso não esta acontecendo.
Leonard,
É um i5 3450 com windows 7, R 2.15.1 e os pacotes são as versões mais recentes. A outra maquina (que é só 32 bits) eu sei que é um Core 2 Quad com WinXP, R e pacotes desatualizados
[]'s
2012/7/17 Leonard de Assis <assis.leonard@gmail.com>
Eu aqui tenho linux, rodei uma vm windows pra simular o 32 bits e comparei com o meu linux (64 bits) deu que os resultados não diferem
Seria bom apresentar maiores detalhes, como versões do R, do pacote, máquina, etc
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 17/07/2012 12:18, Rodrigo Coster escreveu:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com> > > Alguma chance de algum dos computadores q vc tenha usado estar > utilizando alguma "compilacao propria" do R ou algum esquema de > otimizacao? > > Executei o seu codigo no meu computador e tudo parece OK (ie., o > objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir > possui 2 elements: a32 e a64, resultantes do codigo q vc enviou. > > https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda > > Experimente o comando a seguir ao carregar o arquivo: > > all.equal(a32, a64) > > A unica coisa q consigo imaginar e' se alguma "otimizacao" ao > compilar > o R e qq outro acessorio utilizado nao tiver dado certo. > > > b > > > 2012/7/17 Rodrigo Coster <rcoster@gmail.com>: > > Caros, > > > > programei uma rotina para estimar por máxima verossimilhança os > > parâmetros > > de uma cópula e para ver se estava certo comparei os resultados > > com > > o > > comando do pacote copula. Encontrei diferenças apenas na 5a casa > > decimal em > > diante, que considerei como sendo por causa do método numérico > > utilizado. Só > > que, ao fazer a mesma comparação num computador 64 bits os > > resultados > > são > > bastante divergentes (o meu código muda o valor estimado, > > enquanto o > > pacote > > copula mantem), mudando na 2a casa decimal (no caso o parâmetro é > > a > > correlação, então a 2a casa decimal é bem importante). Dai me > > bateu > > a > > seguinte dúvida: em qual confiar? > > > > Código: > > require(copula) > > require(MASS) > > set.seed(31415) > > > > normCop <- function(param,data) { > > n <- nrow(data) > > if (length(param) != n) { param <- rep(param,nrow(data)) } > > cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) > > datalist <- apply(data,1,list) > > for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } > > out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) > > if (out == Inf) { out = exp(100) } > > return(out) > > } > > a <- matrix(0,20,2) > > n <- 100 > > Sigma <- matrix(c(10,3,3,2),2,2) > > for (j in 1:20) { > > data <- mvrnorm(n=n, rep(0, 2), Sigma) > > data <- apply(data,2,rank)/(n+1) > > > > fitNormCop <- function(data) { > > optim(cor(data)[2],normCop,data=data, lower = 0, upper = > > .9999,method="L-BFGS-B") > > } > > a[j,1] <- fitNormCop(data)$par # Meu > > a[j,2] <- fitCopula(normalCopula(.2,2), data, > > method="ml")@estimate > > # > > Pacote copula > > } > > > > E aqui um gráfico de dispersão comparando todos: > > http://img411.imageshack.us/img411/7527/92588280.png > > > > > > > > > > > > > > []'s > > > > _______________________________________________ > > 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.

Olá Rodrigo, O resultado é diferente apenas na sua implementação, não na implementação do pacote copula. Na sua função normCop() vc retorna exp(100), caso out seja 'igual' Inf. Ocorre que .Machine é diferente entre 32 e 64 Bits, pois este tem maior capacidade/precisão numérica. Fazendo retornar out 1e10 já é suficiente para você obter o mesmo resultado em ambas as arquiteturas. Att. Elias T. Krainski
________________________________ De: Rodrigo Coster <rcoster@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Quinta-feira, 19 de Julho de 2012 10:24 Assunto: Re: [R-br] Diferença de resultados entre 64 e 32 bits
Benilton,
mesmo com --vanilla deu resultados diferentes.
sessionInfo() R version 2.15.1 (2012-06-22) Platform: x86_64-pc-mingw32/x64 (64-bit)
locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252
attached base packages: [1] stats graphics grDevices utils datasets methods base
other attached packages: [1] MASS_7.3-19 copula_0.99-4 pspline_1.0-14
loaded via a namespace (and not attached): [1] ADGofTest_0.3 gsl_1.9-9 mvtnorm_0.9-9992 stabledist_0.6-4 stats4_2.15.1
a [,1] [,2] [1,] 0.6533333 0.6673587 [2,] 0.6956496 0.7000601 [3,] 0.5554635 0.6169322 [4,] 0.4895890 0.5405670 [5,] 0.6038044 0.6422919 [6,] 0.7295427 0.7295427 [7,] 0.6548815 0.7080392 [8,] 0.5468827 0.6015380 [9,] 0.6630423 0.6955567 [10,] 0.7214445 0.7214441 [11,] 0.6681827 0.6681817 [12,] 0.6429204 0.6429205 [13,] 0.5678848 0.5918048 [14,] 0.6829043 0.6985720 [15,] 0.7653632 0.7653638 [16,] 0.6215542 0.6570017 [17,] 0.7085038 0.7085053 [18,] 0.6620582 0.6958966 [19,] 0.6829283 0.6912327 [20,] 0.6416442 0.6904770
sessionInfo() R version 2.15.1 (2012-06-22) Platform: i386-pc-mingw32/i386 (32-bit)
locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252
attached base packages: [1] stats graphics grDevices utils datasets methods base
other attached packages: [1] MASS_7.3-19 copula_0.99-4 pspline_1.0-14
loaded via a namespace (and not attached): [1] ADGofTest_0.3 gsl_1.9-9 mvtnorm_0.9-9992 stabledist_0.6-4 stats4_2.15.1
a [,1] [,2] [1,] 0.6673587 0.6673587 [2,] 0.7000619 0.7000601 [3,] 0.6169316 0.6169322 [4,] 0.5405662 0.5405670 [5,] 0.6423069 0.6422919 [6,] 0.7295427 0.7295427 [7,] 0.7080409 0.7080392 [8,] 0.6015378 0.6015380 [9,] 0.6955575 0.6955567 [10,] 0.7214445 0.7214441 [11,] 0.6681827 0.6681817 [12,] 0.6429204 0.6429205 [13,] 0.5918050 0.5918048 [14,] 0.6985704 0.6985720 [15,] 0.7653632 0.7653638 [16,] 0.6569979 0.6570017 [17,] 0.7085038 0.7085053 [18,] 0.6958953 0.6958966 [19,] 0.6912321 0.6912327 [20,] 0.6904751 0.6904770
2012/7/18 Benilton Carvalho <beniltoncarvalho@gmail.com>
Voce consegue executar o R passando argumentos adicionais? (imagino q
vc tenha q fucar na linha de comando dentro do atalho usado pelo Windows)...
Se vc estivesse num Linux/Mac, eu recomendaria executar o R como segue:
R --arch i386 --vanilla
e
R --arch x86_64 --vanilla
E tentar mais uma ultima vez a comparacao entre ambos... (Evite qualquer firula como RStudio tbm).
b
2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
rodando na mesma maquina o resultado do R32 e R64 é diferente, foi com base nisso (R's da mesma maquina) que eu fiz o gráfico que mandei... tentei desinstalar o R e reinstalar, mas não resolveu
[]'s
2012/7/18 Benilton Carvalho <beniltoncarvalho@gmail.com>
Eu comecaria por garantir que as versoes do R e dos demais pacotes sejam as mesmas nos diferentes ambientes.
Em teoria, a maquina que tem o R 64 bits tambem tem o 32 bits (algum usuario de windows pode te ajudar melhor q eu nesse caso), vc poderia tentar executar o R32 na mesma maquina...
b
2012/7/18 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
os teus resultados são iguais aos meus no R 64 bits. Por resultado antigo tu diz carregar alguma área de trabalho? Se sim, isso não esta acontecendo.
Leonard,
É um i5 3450 com windows 7, R 2.15.1 e os pacotes são as versões mais recentes. A outra maquina (que é só 32 bits) eu sei que é um Core 2 Quad com WinXP, R e pacotes desatualizados
[]'s
2012/7/17 Leonard de Assis <assis.leonard@gmail.com>
Eu aqui tenho linux, rodei uma vm windows pra simular o 32 bits e comparei com o meu linux (64 bits) deu que os resultados não diferem
Seria bom apresentar maiores detalhes, como versões do R, do pacote, máquina, etc
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 17/07/2012 12:18, Rodrigo Coster escreveu:
Benilton,
olha, acho muito pouco provável (até pq os 2 são windows, então acho que nem existe essa opção). No computador aqui de casa os 2 R divergem no resultado (o gráfico que eu mandei foi rodando no R 32 e 64 bits no mesmo computador, Windows 7).
Abri a imagem que tu mandou e rodei o comando, deu que os 2 objetos são iguais.
[]'s
2012/7/17 Benilton Carvalho <beniltoncarvalho@gmail.com> > > Alguma chance de algum dos computadores q vc tenha usado estar > utilizando alguma "compilacao propria" do R ou algum esquema de > otimizacao? > > Executei o seu codigo no meu computador e tudo parece OK (ie., o > objeto 'a' eh identico entre arquiteturas)... O arquivo a seguir > possui 2 elements: a32 e a64, resultantes do codigo q vc enviou. > > https://www.dropbox.com/s/srn0bhtmen4fd6u/R64x32.Rda > > Experimente o comando a seguir ao carregar o arquivo: > > all.equal(a32, a64) > > A unica coisa q consigo imaginar e' se alguma "otimizacao" ao compilar > o R e qq outro acessorio utilizado nao tiver dado certo. > > > b > > > 2012/7/17 Rodrigo Coster <rcoster@gmail.com>: > > Caros, > > > > programei uma rotina para estimar por máxima verossimilhança os > > parâmetros > > de uma cópula e para ver se estava certo comparei os resultados com > > o > > comando do pacote copula. Encontrei diferenças apenas na 5a casa > > decimal em > > diante, que considerei como sendo por causa do método numérico > > utilizado. Só > > que, ao fazer a mesma comparação num computador 64 bits os > > resultados > > são > > bastante divergentes (o meu código muda o valor estimado, enquanto o > > pacote > > copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a > > correlação, então a 2a casa decimal é bem importante). Dai me bateu > > a > > seguinte dúvida: em qual confiar? > > > > Código: > > require(copula) > > require(MASS) > > set.seed(31415) > > > > normCop <- function(param,data) { > > n <- nrow(data) > > if (length(param) != n) { param <- rep(param,nrow(data)) } > > cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2)) > > datalist <- apply(data,1,list) > > for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] } > > out <- -sum(log(mapply(dcopula,copula=cop,u=datalist))) > > if (out == Inf) { out = exp(100) } > > return(out) > > } > > a <- matrix(0,20,2) > > n <- 100 > > Sigma <- matrix(c(10,3,3,2),2,2) > > for (j in 1:20) { > > data <- mvrnorm(n=n, rep(0, 2), Sigma) > > data <- apply(data,2,rank)/(n+1) > > > > fitNormCop <- function(data) { > > optim(cor(data)[2],normCop,data=data, lower = 0, upper = > > .9999,method="L-BFGS-B") > > } > > a[j,1] <- fitNormCop(data)$par # Meu > > a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate > > # > > Pacote copula > > } > > > > E aqui um gráfico de dispersão comparando todos: > > http://img411.imageshack.us/img411/7527/92588280.png > > > > > > > > > > > > > > []'s > > > > _______________________________________________ > > 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.
participantes (4)
-
Benilton Carvalho
-
Elias T. Krainski
-
Leonard de Assis
-
Rodrigo Coster