如何将变量视为R中GLM中的随机因子

时间:2017-04-10 21:29:42

标签: r random glm r-factor

我正在使用R中的GLM对数据集进行统计分析。基本上,预测变量是:"探针"(实验中使用的探针类型 - 4级因子),"提取& #34;(实验中使用的提取类型 - 具有2个级别的因子)," Tank"(从中收集样品的罐号 - 从1到9的整数),以及"稀释& #34;(每个样品的稀释度 - 数字:3.125,6.25,12.5,25,50,100)。响应是从多次重复实验中获得的阳性反应数("阳性")(" Rep")。我想评估所有预测变量(及其相互作用)对积极响应数量的影响,因此我尝试拟合这样的GLM模型:

y<-cbind(mydata$Positive,mydata$Rep - mydata$Positive)
model1<-glm(y~Probe*Extraction*Dilution*Tank, family=quasibinomial, data=mydata)

但我后来被我的主管告知,&#34;坦克&#34;预测变量不应被视为基于水平的变量。即它的值为1到9,但它只是坦克标签,因此1和7之间的差异并不重要。将此变量视为因子只会使得大型模型的结果不佳。那么如何对待&#34; Tank&#34;变量作为随机因子并将其包含在GLM中?

由于

1 个答案:

答案 0 :(得分:4)

它被称为“混合效应模型”。看看lme4包。

library(lme4)
glmer(y~Probe + Extraction + Dilution + (1|Tank), family=binomial, data=mydata)

此外,您应该使用+而不是*来添加因子。 *包括每个因素的所有相互作用和水平,这将导致巨大的过度拟合模型。除非您有特定的理由相信存在交互,否则您应该明确地编写该交互。