Как мне обновить скрипты с 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"))}
Другие вопросы по тегам