例子?如何在lmer中指定theta和beta的起始值?

5

我对R比较新,仍然难以理解一些文档。我正在使用glmer分析,我的目标是为theta(截距)和beta(固定效应)指定起始值。

请问能否提供一个关于一个beta或多个beta的代码示例?

我查看了glmer文档,其中写道“start
一个以参数名称为键、以起始值为值的命名列表,或者是一个数值向量。如果start是数值类型,则会将其用作theta的起始值。如果start是一个列表,则会将其中的theta元素(一个数值向量)用于第一次优化步骤的起始值(默认值为对角线元素的1,下三角矩阵元素的0);第一步优化后的theta拟合值再加上start [['fixef']],则成为第二次优化步骤的起始值。如果start有fixef和theta元素,则跳过第一次优化步骤。要了解更多细节或实现更精细的优化控制,请参见模块化。”

我已经成功指定了theta的起始值,但我不知道如何同时指定theta和beta(或多个beta)的起始值。

Glucose1 <- glmer(GlucoseYN ~ 1 + (1|Subject), data=LongFormat, family = "binomial", glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 10000000)))

getME(Glucose1, c("theta","beta"))
# theta = 3.276187, beta = -0.3515557

Glucose1b <- glmer(GlucoseYN ~ 1 + (1|Subject), data=LongFormat, family = "binomial", start = 3.276187, glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 10000000)))

这个问题与此问题密切相关。只是放在这里供参考。 - Gregor Thomas
2个回答

4

这是一个使用 glmer 的示例,增加了 start 参数,因为您似乎希望使用它:

library(lme4)

glmer(
  cbind(incidence, size - incidence) ~ period + (1 | herd),
  data = cbpp,
  family = binomial,
  start = list(theta = 0.6, fixef = c(-1.4, -1, -1.1, -1.6))
)

那么在您的情况下:
Glucose1b <-
  glmer(
    GlucoseYN ~ 1 + (1 | Subject),
    data = LongFormat,
    family = "binomial",
    control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 10000000)), 
    start = list(theta = 3.276187, fixef = -0.3515557)
  )

0

我从未使用过glmer,但在非线性回归中,代码是:

Richards = nls(Hd ~ a/(1+b*exp(-c*Id)), data = Capacidade_Prod, start = list(a = 20, b = 4, c = 0.01))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接