我在R中安装了Poisson GLM模型,看起来像这样:
glm(Outcome~Exposure + Var1 + offset(log(persontime)),family=poisson,data=G))
如果结果最终成为一个比率,则曝光是一个连续变量,而Var1是一个有三个等级的因子。
从输出结果来看,这很容易:
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.6998 0.1963 -29.029 < 2e-16
Exposure 4.7482 1.0793 4.399 1.09e-05
Var1Thing1 -0.2930 0.2008 -1.459 0.144524
Var1Thin 1.0395 0.2037 5.103 3.34e-07
Var1Thing3 0.7722 0.2201 3.508 0.000451
估算曝光量增加一个单位。但是,单位增加实际上并不是特别有意义。实际上增加0.025的可能性更大。估计 的估计也不是特别困难,但我喜欢置信区间和估计值。我的直觉是我需要使用对比度包,但以下生成了错误:
diff <- contrast(Fit,list(Exposure=0.030,Var1="Thing1"),list(Exposure=0.005,Type="Thing1"))
&#34;偏移量出错(log(persontime)):对象&#39; persontime&#39;找不到&#34;
知道我做错了吗?
答案 0 :(得分:1)
您想使用confint
函数(在本例中将调用MASS:::confint.glm
方法),如:
confint(Fit)
由于标准误差是模型比例线性变化与变量&#39;曝光&#39;在您的模型中,您可以简单地将置信区间乘以比例差,以获得较小的单位的置信度。变化
哑巴的例子:
让我们说你想要检验一下这样一个假设,即当人们喝更多的酒时会更频繁地摔倒。你可以通过随机服务不同数量的酒精(以毫升计量)并计算每个人跌倒的次数来测试。你的模特是:
Fit <- glm(falls ~ alcohol_ml,data=myData, family=poisson)
并且coef表是
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.6998 0.1963 -29.029 < 2e-16
Alcohol_ml 4.7482 1.0793 4.399 1.09e-05
并且酒精的置信区间是4-6(只是为了保持简单)。现在,一个colegue要求你给出以盎司为单位的置信区间。您所要做的就是通过转换系数(每毫升29.5735盎司)按置信区间进行缩放,如下所示:
c(4,6) * 29.5735 # effect per ounce alcohol [notice multiplication is used to rescale here]
或者,您可以重新调整数据并重新调整模型:
mydata$alcohol_oz <- mydata$alcohol_ml / 29.5735 #[notice division is used to rescale here]
Fit <- glm(falls ~ alcohol_oz,data=myData, family=poisson)
或者您可以在模型中重新调整数据:
#[again notice that division is used here]
Fit <- glm(falls ~ I(alcohol_ml/29.5735),data=myData, family=poisson)
无论哪种方式,您都会在新比例上获得相同的置信区间。
回到您的示例:如果您Exposure
的单位非常大,以至于您不太可能在个人内观察到这种变化,并且更容易解释较小的变化,只需重新调整您的变量&#39;曝光&#39; (如myData$Exposure_newScale = myData$Exposure / 0.030
所示Exposure_newScale
是0.030
的倍数)或使用这些方法中的任何一种重新调整置信区间。