lme4 的混合模型起始值

Yoh*_*dia 3 r lme4 mixed-models

我正在尝试使用包中的lmer函数来拟合混合模型lme4。但是,我不明白应该向start参数输入什么。我的目的是使用简单的线性回归来使用估计的系数作为混合模型的起始值。

假设我的模型如下:

linear_model = lm(y ~ x1 + x2 + x3, data = data)
coef = summary(linear_model)$coefficients[- 1, 1] #I remove the intercept
result = lmer(y ~ x1 + x2 + x3 | x1 + x2 + x3, data = data, start = coef)
Run Code Online (Sandbox Code Playgroud)

这个例子是我正在做的事情的一个过于简化的版本,因为我将无法共享我的数据。

然后我得到以下类型的错误:

Error during wrapup: incorrect number of theta components (!=105) #105 is the value I get from the real regression I am trying to fit.
Run Code Online (Sandbox Code Playgroud)

我尝试了许多不同的解决方案,试图提供一个列表并命名这些值,theta就像我在某些论坛上看到的那样。

另外 Github 代码测试长度是否合适,但我找不到它指的是什么:

# Assign the start value to theta
if (is.numeric(start)) {
        theta <- start
}

# Check the length of theta
length(theta)!=length(pred$theta)
Run Code Online (Sandbox Code Playgroud)

但是我找不到pred$theta定义的地方,所以我不明白这个价值105来自哪里。

有什么帮助吗?

Ben*_*ker 7

几点:

  • lmer实际上并没有明确地拟合任何固定效应系数;这些被分析出来,以便在非线性估计过程的每个步骤中隐式求解它们。该估计仅涉及对方差-协方差参数的非线性搜索。这在lme4 小插曲之一等式30-31,第 15 页)中有详细说明(在技术上)。因此,为固定效应系数提供起始值是不可能的,而且毫无用处......
  • glmer 作为非线性优化的一部分,确实适合固定效应系数(如@G.Grothendieck 在评论中讨论的那样),如果nAGQ>0...
  • 无可否认,它相当晦涩,但theta参数的起始值(唯一明确优化的参数lmer)对于 Cholesky 因子的非对角元素为 0,对角元素为 1:这是在这里编码的
   ll$theta[] <- is.finite(ll$lower) # initial values of theta are 0 off-diagonal, 1 on
Run Code Online (Sandbox Code Playgroud)

...您需要进一步了解,在上游,lower向量的值已被编码,因此theta与对角线元素对应的向量元素的下限为 0,非对角线元素的下限为-Inf;这等效于从缩放方差-协方差矩阵的单位矩阵(即,随机效应参数的方差-协方差矩阵除以残​​差方差)或 (sigma^ 2 一)。

如果你有几个随机效应和每个都有很大的方差-协方差矩阵,事情会变得有点麻烦。如果你想恢复lmer默认使用的起始值,你可以使用lFormula()如下:

library(lme4)
ff <- lFormula(Reaction~Days+(Days|Subject),sleepstudy)
(lwr <- ff$reTrms$lower)
## [1]    0 -Inf    0
ifelse(lwr==0,1,0)  ## starting values
## [1] 1 0 1
Run Code Online (Sandbox Code Playgroud)

对于这个模型,我们有一个 2x2 随机效应方差-协方差矩阵。该theta参数对应于该矩阵,在列方向顺序的下三角的Cholesky因数,所以在第一和第三元件是对角的,并且所述第二元件是非对角线。

  • 你有 105 个theta参数的事实让我很担心;拟合如此大的随机效应模型将非常缓慢,并且需要大量数据才能可靠地拟合。(如果您知道您的模型有意义并且您有足够的数据,您可能想要研究更快的选项,例如使用 Doug Bates 的MixedModelsJulia 包或可能的 glmmTMB,这可能比lme4处理大theta向量的问题更好......)
  • 你的模型公式,y ~ x1 + x2 + x3 | x1 + x2 + x3,看起来很奇怪。我无法弄清楚在同一模型中具有随机效应项和分组变量相同的变量是有意义的任何上下文!