【发布时间】:2014-01-12 05:24:14
【问题描述】:
我正在编写一个函数,该函数接受 full 和 reduced glm 对象来汇总感兴趣变量 varofint 和交互变量 interaction_var 的交互结果(通过执行 lrtest并在full 对象上使用svycontrast 来提取varofint 的每个级别interaction_var 的结果)。样本数据:
x <- data.frame(outcome=rbinom(100,1,.3),varofint=rnorm(100), interaction_var=sample(letters[1:3],100,replace=TRUE))
reduced <- glm(outcome~varofint+interaction_var,data=x)
full <- glm(outcome~varofint*interaction_var,data=x)
我想知道为所述 (full) glm 模型提取参考类别的最佳方法。我显然可以做类似的事情
levels(full$data$interaction_var)[1]
但是在给定contrasts 参数的输入的情况下,这将是一种提取参考类别的“安全”方法吗?看起来,如果可以选择 SAS 对比度,此方法可能会产生interactionv_var 的级别,这不是模型中用作参考类别的级别。以下会更安全吗?
mf <- model.frame(full)
setdiff(rownames(contrasts(mf[, "interaction_var"])), colnames(contrasts(mf[, "interaction_var"])))
或类似
names(which(apply(contrasts(mf[, "interaction_var"]),1,function(.v){all(.v==0)})))
我是否缺少一种更简单的方法来提取参考类别?
【问题讨论】:
-
如果没有参考类别怎么办?参考类别仅适用于治疗对比。
-
好的,这是一个好的开始。因此,如果相应的交互变量没有处理对比,该函数应该返回错误...