2016-10-30 19 views
0

Есть ли причина, почему функция glmer от lme4 произвела бы разные результаты на разных машинах? Аппаратное обеспечение в машинах существенно отличается, хотя все они работают с теми же ОС, R и версиями пакетов (оказывается, это на самом деле не так).R-glmer различные результаты на разных машинах (недетерминированные)

Формула имеет сгруппированную переменную биномиального отклика и 22 непрерывных фиксированных эффекта, которые находятся в одном масштабе и несколько случайных эффектов, которые являются строками, и я использую функцию связи logit.

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

Когда используя данные поезда и испытаний, установленные для отпуска одного из перекрестной проверки, я получаю самые аналогичные результаты. Однако на одной машине я получаю неизменно чистый вывод без предупреждений; на другой я получаю предупреждения о сходимости на каждой сцене теста.

N.B. Поезд/тестовые наборы идентичны между машинами

EDIT: добавление 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++) дает разные результаты при компиляции с разными компиляторами в разных операционных системах. Если эти различия находятся по обе стороны от теста допуска, тогда вы получите предупреждения в одном случае, а не в другом. Меня больше беспокоит то, насколько далеки друг от друга оценки находятся на разных платформах, чем в том, получаете ли вы предупреждения или нет.

Это, безусловно, сузило бы все, чтобы вы делали все как можно ближе (например, вы все еще используете разные версии R и, как вы указали, разные версии Matrix, на разных машинах ...)

+0

" ту же версию пакета (тот же R и код C++) дает разные результаты при компиляции с разными компиляторами «это то, что я искал. Благодарю. – RockJake28

 Смежные вопросы

  • Нет связанных вопросов^_^