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

问题描述 投票:2回答:1

我正在使用R中的GLM对数据集进行统计分析。基本上预测变量是:“探针”(实验中使用的探针类型 - 具有4个水平的因子),“提取”(实验中使用的提取类型 - 因子有2个级别),“坦克”(从中收集样本的罐号 - 从1到9的整数)和“稀释”(每个样本的稀释 - 数字: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)

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

谢谢

r random glm r-factor
1个回答
5
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.