如何获得R中具有偏移的对比度的估计和置信区间

时间:2015-01-30 01:30:56

标签: r glm

我在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;

知道我做错了吗?

1 个答案:

答案 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_newScale0.030的倍数)或使用这些方法中的任何一种重新调整置信区间。