如何将脚本从OpenMx 1更新到OpenMx 2?

时间:2016-02-23 13:50:14

标签: r sem openmx

几年前我写了一个示例OpenMx脚本来做双胞胎建模。

它是为OpenMx 1.0版(脚本linked here

编写的

当我运行它时,会有一些关于更新适合的功能和目标的警告。我该如何更新它以使用OpenMx 2.0 fit函数调用?

1 个答案:

答案 0 :(得分:2)

从OpenMx 1.0到2.0及更高版本有少量变化。几乎所有的脚本都可以正常运行,但是如果你为OpenMx 2.x更新,那么2012年之前的一些脚本将会受益于其他功能

一个例子是referenced这里

用户遇到了麻烦:

1。没有辅助函数的路径

这是一个更通用的健壮性问题,例如R代码:更好地包含Web网址而不是基于磁盘的文件路径。

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具有整齐的多组功能,可在一行中处理此功能,并支持识别检查,参考模型生成等。

所以只需用(例如)替换整个事物:

mxFitFunctionMultigroup(c("MZ", "DZ"))}