2016-10-30 17 views
0

glmer의 기능이 lme4 인 경우 다른 컴퓨터에서 다른 결과가 발생하는 이유가 있습니까? 머신의 하드웨어는 실질적으로 다르지만 모두 동일한 OS, R 및 패키지 버전 을 실행하고 있습니다 (실제로는 사실이 아닙니다).다른 컴퓨터에서 다른 결과가 더 많음 (비 결정적)

이 수식에는 그룹화 된 이항 응답 변수와 22 개의 연속 고정 효과가 있습니다.이 고정 효과는 모두 동일한 배율과 몇 개의 임의 효과로 구성되며 문자열이며 logit 링크 기능을 사용합니다.

cbind(ill, not_ill) ~ 0 + fix1 + fix2 + ... + fix22 + (1|id/region/country) + 
(1|season) 

교차 검증을 생략 한 설정 기차 및 테스트 데이터를 사용하여

, 나는 매우 유사한 결과를 얻을 수 있습니다. 그러나 한 대의 컴퓨터에서 경고없이 지속적으로 깨끗한 출력을 얻을 수 있습니다. 다른 테스트에서는 테스트 할 때마다 컨버전스 경고가 표시됩니다.

N.B. (추가 sessionInfo()

기계 1 (이 끄는 사람이다 좋은 결과

R version 3.3.1 (2016-06-21) 
Platform: x86_64-pc-linux-gnu (64-bit) 
Running under: Ubuntu 16.04.1 LTS 

locale: 
[1] LC_CTYPE=en_GB.UTF-8  LC_NUMERIC=C 
[3] LC_TIME=en_GB.UTF-8  LC_COLLATE=en_GB.UTF-8 
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 
[7] LC_PAPER=en_GB.UTF-8  LC_NAME=C 
[9] LC_ADDRESS=C    LC_TELEPHONE=C 
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base 

other attached packages: 
[1] blmeco_1.1  arm_1.9-1  MASS_7.3-45 lme4_1.1-12 Matrix_1.2-7.1 

loaded via a namespace (and not attached): 
[1] minqa_1.2.4  coda_0.18-1  abind_1.4-5  Rcpp_0.12.7 
[5] MuMIn_1.15.6 splines_3.3.1 nlme_3.1-128 grid_3.3.1 
[9] nloptr_1.0.4 stats4_3.3.1 lattice_0.20-34 

기계 2되지 않음 : 기차/테스트 세트는 기계

편집에서 동일 너무 좋은 결과)

R version 3.2.3 (2015-12-10) 
Platform: x86_64-pc-linux-gnu (64-bit) 
Running under: Ubuntu 16.04.1 LTS 

locale: 
[1] LC_CTYPE=en_GB.UTF-8  LC_NUMERIC=C 
[3] LC_TIME=en_GB.UTF-8  LC_COLLATE=en_GB.UTF-8 
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 
[7] LC_PAPER=en_GB.UTF-8  LC_NAME=C 
[9] LC_ADDRESS=C    LC_TELEPHONE=C 
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base 

other attached packages: 
[1] blmeco_1.1 arm_1.9-1 MASS_7.3-45 lme4_1.1-12 Matrix_1.2-3 

loaded via a namespace (and not attached): 
[1] minqa_1.2.4  coda_0.18-1  abind_1.4-5  Rcpp_0.12.7 
[5] MuMIn_1.15.6 splines_3.2.3 nlme_3.1-124 grid_3.2.3 
[9] nloptr_1.0.4 stats4_3.2.3 lattice_0.20-33 

분명히 내가 놓친 몇 가지 차이점이 있으므로 출력을 수정하고 출력이 변경되는지 확인합니다. 존재하는 차이점 중 Matrix은 (내가 생각하기에) lme4의 종속성으로 문제를 일으킬 가능성이 가장 큰 것입니다. 여기에 나를 이끌어 주신 의견에 감사드립니다.

+0

재현 가능한 예제를 제공하십시오 http://stackoverflow.com/help/mcve 두 컴퓨터 모두에서 동일한 시드 값을 설정했다고 했지요? –

+0

이것은 기밀로 인해 제공 할 수있는 가장 많은 정보입니다. 나는 내 문제에 대한 해결책을 찾고 있지 않다. 내가 본 것이 아니라고 묘사 한 것에 비 결정적인 구성 요소가 있는지를 이해하려고/알아 내려고 노력하고있다.나는 이것이 진정한 투표를 보증하지 않는다고 생각한다. – RockJake28

+2

그건 실제로 작동하지 않습니다. 일자리를 가진 사람은 누구나 기밀 데이터를 가지고 있으며 여기에는 99.9 %의 사람들이 있습니다. 실제 데이터 일 필요없이 문제를 반영 할 수 있도록 공개, 자체 작성 또는 숨은 데이터를 사용하여 ** 재현 가능한 예제 **를 만드는 데 시간과 노력을 기울여야 할 부담이 있습니다. 나는 재현 할 수없는 예제를 포함하지 않기 때문에이 질문을 주제에서 끝내기로했다. –

답변

2

여기서 "비 결정적"이란 의미가 확실하지 않습니다. 나는 보통 동일한 코드 을 같은 머신에서 연속적으로 실행하면이 다른 결과를 나타낼 수 있다는 것을 의미합니다.

크고 불안정한 문제의 경우 동일한 운영 체제에서 서로 다른 하드웨어 플랫폼에서 다른 결과를 얻는 것이 놀랍지 만 불가능하지는 않습니다. 패키지의 동일한 버전 (동일한 R 및 C++ 코드)이 다른 운영 체제에서 다른 컴파일러로 컴파일 될 때 다른 결과를 제공하는 경우를 확실히 볼 수 있습니다. 이러한 차이점이 허용 오차 테스트의 어느 한쪽에 있다면, 한 경우에는 경고하고 다른 한쪽에는 경고하지 않습니다. 나는 견적이 경고를 받는지 아닌지 다른 플랫폼에 얼마나 멀리 떨어져 있는지에 더 관심이 있습니다.

가능한 한 비슷하게 모든 작업을 수행 할 수 있도록 확실히 좁힐 수 있습니다 (예 : 다른 컴퓨터에서 다른 버전의 Matrix을 계속 사용하고 있습니다.)

+0

"같은 패키지 버전 (동일한 R 및 C++ 코드) 다른 컴파일러로 컴파일 할 때 다른 결과를 제공합니다. "이것이 내가 찾고 있었던 것입니다. 감사. – RockJake28