Как мне обновить скрипты с OpenMx 1 до OpenMx 2?
У меня есть пример скрипта OpenMx, написанного несколько лет назад для двойного моделирования.
Он был написан для OpenMx версии 1.0 (скрипт приведен здесь)
Когда я запускаю его, появляются некоторые предупреждения об обновлении подходящих функций и целей. Как мне обновить его, чтобы использовать вызовы функций OpenMx 2.0?
1 ответ
Есть небольшое количество изменений от OpenMx 1.0 до 2.0 и выше. Почти все сценарии будут работать нормально, но некоторые до 2012 года или будут иметь преимущества в функциях, если вы обновите OpenMx 2.x
Пример приведен здесь
У пользователя были проблемы с:
1. Нет пути к вспомогательным функциям
Это более общая проблема надежности, например, кода R: лучше включать веб-ссылки, а не пути к файлам на диске.
source("http://www.vipbg.vcu.edu/~vipbg/Tc24/GenEpiHelperFunctions.R")
Лучшее решение - вспомогательные пакеты на основе CRAN, такие как umx. Их легче поддерживать в курсе и доступно.
2. Цели в старом стиле (вместо ожиданий и подходящих функций)
Вызовы, подобные этому, устарели:
objMZ<- mxFIMLObjective(covariance="expCovMZ", means="expMean", dimnames=selVars)
Их легко обновить в стеке сценариев, заменив mxFIMLObjective
с mxExpectationNormal
+ звонок в mxFitFunctionML
Кроме того, в старом стиле задачи нескольких групп, как это:
minus2ll <- mxAlgebra( expression = MZ.objective + DZ.objective, name="m2LL")
obj <- mxAlgebraObjective("m2LL")
Вы должны заменить mxAlgebraObjective
с mxFitFunctionAlgebra
Тем не менее, OpenMx 2 имеет удобную функцию Multigroup, которая обрабатывает это в одной строке и позволяет проверять идентификацию, создавать эталонные модели и т. Д.
Так что просто замените все это на (например):
mxFitFunctionMultigroup(c("MZ", "DZ"))}