如何配置 nlme 以提供与 lme 相同的结果
how to config nlme to give the same results as lme
这个问题看起来很幼稚,但我对 R
中 nlme
函数的配置感到困惑,以获得与给定 lme
模型等效的结果。
这似乎有效。请注意,method
的默认值对于 lme
("REML") 和 nlme
("ML") ...
是不同的
m1 <- lme(distance ~ age,
random = ~ age |Subject, data=Orthodont,
method="ML")
nlme
需要起始值 - 在这里作弊并使用来自 lme
:
的值
m2 <- nlme(distance ~ mu,
fixed = mu ~ age,
random = mu ~ age | Subject,
data=Orthodont,
start=list(fixed=fixef(m1)))
variance-covariance 个矩阵几乎相同。
> VarCorr(m1)
Subject = pdLogChol(age)
Variance StdDev Corr
(Intercept) 4.81407327 2.1940996 (Intr)
age 0.04619252 0.2149244 -0.581
Residual 1.71620466 1.3100399
> VarCorr(m2)
Subject = pdLogChol(list(mu ~ age))
Variance StdDev Corr
mu.(Intercept) 4.81408901 2.1941032 m.(In)
mu.age 0.04619255 0.2149245 -0.581
Residual 1.71620373 1.3100396
这个问题看起来很幼稚,但我对 R
中 nlme
函数的配置感到困惑,以获得与给定 lme
模型等效的结果。
这似乎有效。请注意,method
的默认值对于 lme
("REML") 和 nlme
("ML") ...
m1 <- lme(distance ~ age,
random = ~ age |Subject, data=Orthodont,
method="ML")
nlme
需要起始值 - 在这里作弊并使用来自 lme
:
m2 <- nlme(distance ~ mu,
fixed = mu ~ age,
random = mu ~ age | Subject,
data=Orthodont,
start=list(fixed=fixef(m1)))
variance-covariance 个矩阵几乎相同。
> VarCorr(m1)
Subject = pdLogChol(age)
Variance StdDev Corr
(Intercept) 4.81407327 2.1940996 (Intr)
age 0.04619252 0.2149244 -0.581
Residual 1.71620466 1.3100399
> VarCorr(m2)
Subject = pdLogChol(list(mu ~ age))
Variance StdDev Corr
mu.(Intercept) 4.81408901 2.1941032 m.(In)
mu.age 0.04619255 0.2149245 -0.581
Residual 1.71620373 1.3100396