[R-br] Diferença de resultados entre 64 e 32 bits

Benilton Carvalho beniltoncarvalho em gmail.com
Quinta Julho 19 10:50:05 BRT 2012


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


Mais detalhes sobre a lista de discussão R-br