当通过一系列连续型和/或类别型变量来预测计数型结果变量时,泊松回归是一个非常有用的工具。泊松回归(Poisson regression)是用来为计数资料和列联表建模的一种回归分析。泊松回归假设反应变量Y是泊松分布,并假设它期望值的对数可被未知参数的线性组合建模。泊松回归模型有时(特别是当用作列联表模型时)又被称作对数-线性模型。该模型在地理学中被广泛应用,如Wu、张华和贺灿飞运用泊松模型分别研究了外资企业在广州和北京城市内部区位选择。
以下文献列举了泊松回归在地理学中的应用:
[1] Wu F. Intrametropolitan FDI firm location in Guangzhou, China: A Poisson and negative binomial analysis. The Annals of Regional Science, 1999, 33: 535-555.
[2] 张华, 贺灿飞. 区位通达性与在京外资企业的区位选择. 地理研究, 2007, 26(5): 984-994.
[3] 袁丰,魏也华,陈雯,金志丰.苏州市区信息通讯企业空间集聚与新企业选址[J].地理学报,2010,65(02):153-163.
[4] 吕卫国,陈雯.制造业企业区位选择与南京城市空间重构[J].地理学报,2009,64(02):142-152.
数据来自robust包中的Breslow(癫痫数据),就遭受轻微或严重间歇性的病人的年龄和癫痫发病数收集了数据,包含病人被随机化分配到药物组或者安慰剂组前八周和随机分配后八周两种情况,利用该数据集,讨论在治疗初期的八周内,抗癫痫药物对癫痫发病数的影响。
响应变量:
#import and view data
> library(robust)
> data("breslow.dat")
> names(breslow.dat)
[1] "ID" "Y1" "Y2" "Y3" "Y4" "Base" "Age" "Trt" "Ysum" "sumY" "Age10" "Base4"
> head(breslow.dat)
ID Y1 Y2 Y3 Y4 Base Age Trt Ysum sumY Age10 Base4
1 104 5 3 3 3 11 31 placebo 14 14 3.1 2.75
2 106 3 5 3 3 11 30 placebo 14 14 3.0 2.75
3 107 2 4 0 5 6 25 placebo 11 11 2.5 1.50
4 114 4 4 1 4 8 36 placebo 13 13 3.6 2.00
5 116 7 18 9 21 66 22 placebo 55 55 2.2 16.50
6 118 5 2 8 7 27 29 placebo 22 22 2.9 6.75
> summary(breslow.dat[,c(6,7,8,10)])
Base Age Trt sumY
Min. : 6.00 Min. :18.00 placebo :28 Min. : 0.00
1st Qu.: 12.00 1st Qu.:23.00 progabide:31 1st Qu.: 11.50
Median : 22.00 Median :28.00 Median : 16.00
Mean : 31.22 Mean :28.34 Mean : 33.05
3rd Qu.: 41.00 3rd Qu.:32.00 3rd Qu.: 36.00
Max. :151.00 Max. :42.00 Max. :302.00
#plotting data
opar <- par(no.readonly = TRUE)
par(mfrow=c(1,2))
attach(breslow.dat)
hist(sumY,breaks = 20,ylim = c(0,35))
boxplot(sumY ~ Trt, xlab = "Treatment",main="Group Comparisons")
从图中可以看出因变量的偏倚性以及可能的离群点,药物治疗下的癫痫发病数似乎变小了,且方差业变小了(泊松分布中,较小的方差伴随着较小的均值),与标准的最小二乘回归不同,泊松回归不关注模型的方差异质性。
> fit <- glm(sumY ~ Base + Age + Trt, data = breslow.dat, family = poisson())
> summary(fit)
Call:
glm(formula = sumY ~ Base + Age + Trt, family = poisson(), data = breslow.dat)
Deviance Residuals:
Min 1Q Median 3Q Max
-6.0569 -2.0433 -0.9397 0.7929 11.0061
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.9488259 0.1356191 14.370 < 2e-16 ***
Base 0.0226517 0.0005093 44.476 < 2e-16 ***
Age 0.0227401 0.0040240 5.651 1.59e-08 ***
Trtprogabide -0.1527009 0.0478051 -3.194 0.0014 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 2122.73 on 58 degrees of freedom
Residual deviance: 559.44 on 55 degrees of freedom
AIC: 850.71
Number of Fisher Scoring iterations: 5
从输出结果中可以看出三个预测变量都通过了0.05的显著性检验
> coef(fit)
(Intercept) Base Age Trtprogabide
1.94882593 0.02265174 0.02274013 -0.15270095
> exp(coef(fit))
(Intercept) Base Age Trtprogabide
7.0204403 1.0229102 1.0230007 0.8583864
在泊松回归中,因变量以条件均值的对数形式loge(λ)来建模。年龄的回归参数为0.0227,表示其他预测变量保持不变时,年龄增加一岁,癫痫发病的对数均值将增加0.0227。截距项表示预测变量都为0时,癫痫发病的对数均值,由于年龄不可能为0岁,且调查对象的基础发病数均不为0,因此在本例中截距项没有意义。
通常在因变量的初始尺度(癫痫发病数,而非发病的对数)上解释回归系数比较容易,通过指数化系数可以发现,当其他变量保持不变时,年龄增加一岁,期望的癫痫发病数将乘以1.023,这意味着年龄的增加与较高的癫痫发病数相关联。更为重要的,一单位Trt的变化(即从安慰剂组到治疗组),期望的癫痫发病数将乘以0.86,也就是说,当其他变量保持不变时,服药物组相对服安慰剂组癫痫发病数降低了14%,表明从统计学的角度上,药物对癫痫的发病具有一定的抑制作用。
#检验过度离势
> deviance(fit)/df.residual(fit)
[1] 10.1717
显然,比例远远大于1。
qcc包也提供了一个对泊松模型过度离势的检验方法。
#过度离势检验
> #install.packages("qcc")
> library(qcc)
> qcc.overdispersion.test(breslow.dat$sumY,type = "poisson")
Overdispersion test Obs.Var/Theor.Var Statistic p-value
poisson data 62.87013 3646.468 0
显著性检验p值小于0.05,表明确实存在过度离势。
处理过度离势
可以通过用family="quasipossion"替换family=“possion”,与logistic回归处理过度离势的方法是相同的。
> fit.od <- glm(sumY ~ Base + Age + Trt, data = breslow.dat,family = quasipoisson())
> summary(fit.od)
Call:
glm(formula = sumY ~ Base + Age + Trt, family = quasipoisson(),
data = breslow.dat)
Deviance Residuals:
Min 1Q Median 3Q Max
-6.0569 -2.0433 -0.9397 0.7929 11.0061
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.948826 0.465091 4.190 0.000102 ***
Base 0.022652 0.001747 12.969 < 2e-16 ***
Age 0.022740 0.013800 1.648 0.105085
Trtprogabide -0.152701 0.163943 -0.931 0.355702
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for quasipoisson family taken to be 11.76075)
Null deviance: 2122.73 on 58 degrees of freedom
Residual deviance: 559.44 on 55 degrees of freedom
AIC: NA
Number of Fisher Scoring iterations: 5
> coef(fit.od)
(Intercept) Base Age Trtprogabide
1.94882593 0.02265174 0.02274013 -0.15270095
注意,使用类泊松(qussi-poisson)方法所得到的参数估计与泊松方法相同,但是标准误差(Std.Error)变大了许多,预测变量显著性也发生了变化。标准误差越大,将会导致Trt和Age的p值越大于0.05。从统计学角度来看,当考虑过度离势,并控制其他变量不变时,没有充足的证据表明药物治疗相对于使用安慰剂能显著降低癫痫发病次数。