我有一些分类数据,在观察级别编码为 0/1。我对试验中的这些值进行了平均,这为我提供了 0 到 1 之间的概率值。
我在模型中使用
family = Gamma(link = identity)
(连续)和 family = binomial(link = logit)
在 R 中运行 GLME,但是对于平均分类数据我正在努力。
有些平均值的值为 0,这意味着我无法使用伽玛族/身份链接;而由于我们有超过 2 个唯一值,因此我们不能使用二项式族/logit 链接。
我知道我可以在不指定系列/链接的情况下运行LME,但是由于与数据链接的预注册过程,我必须运行GLME。
这是我正在使用的数据和代码的示例
datafile <- structure(list(
depvar= c("0.00000000", "0.02197802", "0.37948718", "0.00000000", "0.15789474", "0.00000000", "0.00000000", "0.18181818", "0.07142857", "0.00000000", "0.06060606", "0.94366197"),
window = c("window", "window", "window", "nowindow", "nowindow", "nowindow", "window", "window", "window", "nowindow", "nowindow", "nowindow"),
trial_sound = c("quiet", "standard", "deviant", "quiet", "standard", "deviant", "quiet", "standard", "deviant", "quiet", "standard", "deviant"),
item = c (1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6),
pp = c (1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2)),
.Names = c("depvar","window", "trial_sound", "item", "pp"),
row.names = c(NA, -12L),
class = "data.frame")
depvar.glmer1 = glmer(depvar ~ window*trial_sound + (1+ window*trial_sound|pp) +
(1+ window*trial_sound|item),control=glmerControl(optimizer="bobyqa",optCtrl=list(maxfun=20000)),
data = datafile, family= Gamma(link = "identity"))
任何可能对我有帮助的建议和参考/资源将非常感激!
处理这些数据的自然方法是使用二项式,并使用
weights
参数指定每个观察的试验次数。例如,假设我们有 depvar = c(1/5, 2/6, 0/3, 7/7)
(= c(0.2, 0.3333, 0, 1)
和 ntrial = c(5, 6, 3, 7)
,那么我们将拟合模型
glmer(depvar ~ ..., weights = ntrial, family = binomial, ...)
(logit 链接是二项式族的默认链接)。这可以满足您想要的一切: