泊松回歸
當通過一系列連續型和/或類別型預測變量來預測計數型結果變量時,泊松回歸是一個非常有用的工具。為闡述泊松回歸模型的擬合過程,並探討一些可能出現的問題,我們將使用robust包中的Breslow癲癇數據(Breslow,1993)。特別地,我們將討論在治療初期的八周內,抗癲癇葯物對癲癇發病數的影響。
我們就遭受輕微或嚴重間歇性癲癇的病人的年齡和癲癇發病數收集了數據,包含病人被隨機分配到葯物組或者安慰劑組前八周和隨機分配后八周兩種情況。響應變量為sumY(隨機化后八周內癲癇發病數),預測變量為治療條件(Trt)、年齡(Age)和前八周內的基礎癲癇發病數(Base)。之所以包含基礎癲癇發病數和年齡,是因為它們對響應變量有潛在影響。在解釋這些協變量后,我們感興趣的是葯物治療是否能減少癲癇發病數。
首先,看看數據集的統計匯總信息:
data(breslow.dat, package="robust") #加載數據集breslow.dat
names(breslow.dat) #查看該數據集中的變量名字
summary(breslow.dat[c(6,7,8,10)]) #列出需要的列之間的關系,R語言中索引從1開始
結果分析:基礎和隨機化后的癲癇發病數都有很高的偏度。現在,我們更詳細地考察響應變量。
opar <- par(no.readonly=TRUE)
par(mfrow=c(1,2))
attach(breslow.dat)
hist(sumY, breaks=20, xlab="Seizure Count", main="Distribution of Seizures")
#hist繪制柱狀圖,breaks是一個提供直方圖單元之間斷點的向量,為了使柱狀圖繪制的更好看。
boxplot(sumY ~ Trt, xlab="Treatment", main="Group Comparisons")
#boxplot繪制箱線圖
par(opar)
接下來擬合泊松回歸:
fit <- glm(sumY ~ Base + Age + Trt, data=breslow.dat, family=poisson())
summary(fit)
結果分析:輸出結果列出了偏差、回歸參數和參數為0的檢驗。注意,此處預測變量在p<0.05的水平下都非常顯著。
解釋模型參數:使 用 coef() 函數可獲取模型系數,或者調用 summary() 函數的輸出結果中的Coefficients表格:
將系數進行指數化:
結果分析:現在可以看到,保持其他變量不變,年齡增加一歲,期望的癲癇發病數將乘以1.023。這意味着年齡的增加與較高的癲癇發病數相關聯。更為重要的是,一單位Trt的變化(即從安慰劑到治療組),期望的癲癇發病數將乘以0.86,也就是說,保持基礎癲癇發病數和年齡不變,服葯組相對於安慰劑組癲癇發病數降低了20%。