2016-10-30 2 views
0

glmerの機能がlme4から別のマシンで異なる結果を生ずる理由はありますか?マシン内のハードウェアは実質的に異なりますが、すべて同じOS、R、およびパッケージのバージョンを実行しています(これは実際には当てはまりません)異なるマシンで異なった結果が得られる(非決定論的)

この式には、グループ化された2項応答変数と22個の連続した固定効果があり、それらはすべて同じスケールであり、いくつかのランダムな効果があり、文字列であり、logitリンク機能を使用しています。クロスバリデーション抜かす1に設定し、電車やテストデータを使用している場合

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

、私は非常に同様の結果を得ます。しかし、1台のマシンでは、警告なしで一貫してクリーンな出力が得られます。別のテストでは、テストごとにコンバージェンスの警告が表示されます。

N.B. sessionInfo()

マシン1(これはいい結果を出して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(されていないを追加:電車/テスト・セットは、マシン間

EDIT同一であり、とても良い結果)

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++コード)が異なる結果をもたらすケースを確かに確認します。これらの違いが許容範囲テストのどちらかの側にある場合、警告が表示されます。私は、の推定値が警告を受け取ったかどうかとは別のプラットフォーム上にどれくらい離れているかより懸念しています。

可能な限り同様にすべてをやっていることを確かめるために、狭い範囲に絞っています(たとえあなたがまだ異なったバージョンのRを使用していて、指摘したように異なるマシンにMatrixの異なるバージョン... )

+0

"と同じバージョンのパッケージ(同じRとC++コード)は異なるコンパイラでコンパイルしたときに異なる結果を出します "これが私が探していたものです。ありがとう。 – RockJake28