
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.