在前面文章中介绍了泊松回归分析(Poisson Regression Analysis)的假设检验理论,本篇文章将实例演示在R软件中实现泊松回归分析的操作步骤。
关键词:R语言; R软件; 泊松回归; Poisson回归; 等离散
一、案例介绍
某临床医师对39名有胸闷症状的非器质性心脏病男性患者的24小时早搏数(beat)进行了临床研究记录,每个患者的研究影响因素包括是否喝浓茶(tea,0为不喝浓茶,1为喝浓茶)、是否吸烟(smoke,0为不吸烟,1为吸烟)。请利用该资料对24小时早搏数的影响因素进行分析,部分数据见图1。本文案例可从“附件下载”处下载。
二、问题分析
本案例的分析目的是了解有胸闷症状的非器质性心脏病男性患者24小时早搏数的影响因素。了解单位时间、单位面积或单位空间内某事件发生数的影响因素,可以考虑使用Poisson回归分析。但需要满足以下6个条件:
条件1:观察变量为计数变量。本研究中心脏病男性患者的24小时早搏数为计数变量,该条件满足。
条件2:观察变量的发生相互独立。本研究中各研究对象的每次早搏事件发生都是独立的,不存在互相干扰的情况,该条件满足。
条件3:至少有1个自变量,可以是分类变量,也可以是连续变量。本研究中有两个分类自变量,分别为是否喝浓茶和是否吸烟,该条件满足。
条件 4:观察变量不存在显著的异常值,该条件需要通过软件分析后判断。
条件5:观察变量服从Poisson分布,即满足等离散性,表现为计数值的平均值(近似)等于方差。该条件可以通过数据特征进行初步判断,本研究的观察变量为心脏病男性患者24小时早搏数(计数资料),从专业知识可知,早搏发生频数较低,各单位时间内的发生情况相互独立,基本满足Poisson分布的条件。同时还也可以结合软件分析进行判断。
条件6:自变量之间无多重共线性。该条件需要通过软件分析后判断。
三、软件操作及结果解读
(一) 导入数据
mydata <- read.csv("泊松回归.csv") #导入CSV数据 View(mydata) #查看数据
![](https://site.cdn.mengte.online/official/2022/03/20220301135116357.png)
在数据栏目中可以查看全部数据情况,数据集中共有4个变量和39个观察数据,4个变量分别为个体编号(ID)、是否喝浓茶(tea)、是否吸烟(smoke)及24小时早搏数(beat)。
如果数据集较大也可使用如下命令查看数据框结构:
str(mydata) #查看数据框结构
![](https://site.cdn.mengte.online/official/2022/03/20220301135053396.png)
(二) 适用条件判断
1.条件4判断(异常值检测)
(1) 软件操作
boxplot(mydata$beat) 绘制箱线图
![](https://site.cdn.mengte.online/official/2022/03/20220301135012711.png)
(2) 结果解读
异常值通过箱线图和专业知识进行判断,图3箱线图提示存在一个异常值。查看数据表可以发现在早搏数的第14位数值为17,依据专业可判定该值可以保留。综上,本案例未发现需要处理的异常值,满足条件4。
2.条件5判断(等离散性检验)
(1) 软件操作
过度离散是残差偏差相对于自由度较大的情况。一个指导原则是,如果残差偏差与残差自由度的比值远远大于1,则模型过度离散。首先建立泊松回归模型,判断是否存在过离散现象。
fit1<-glm(beat~tea+smoke,data=mydata,family=poisson()) #建立poisson回归模型 summary(fit1) #查看回归模型参数 c<-deviance(fit1)/df.residual(fit1) #计算残差偏差与残差自由度的比值 c #输出残差偏差与残差自由度的比值
(2) 结果解读
由图4可知,残差偏差与残差自由度的比值等于0.6975,小于1,表示因变量不存在过离散现象。此外,通过描述性分析可发现早搏数的均数为7.31,方差为10.692,均数近似等于方差,也提示数据满足等离散性。数据满足条件5。
![](https://site.cdn.mengte.online/official/2022/03/20220301134915841.png)
3.条件6判断(多重共线性诊断)
(1) 软件操作
变量之间的共线性诊断可以采用容忍度法 (Tolerance)、方差膨胀因子法 (VIF)、相关系数法和条件数法。本案例采用方差膨胀因子法来查看变量之间的多重共线性,可在线性回归后计算方差膨胀因子。结果如图5所示。
install.packages("car") #安装car包 library(car) #加载car包 fit2<- lm(beat~tea+smoke,data=mydata) #建立回归模型 vif(fit2) #计算VIF
(2) 结果解读
图5结果中列出了自变量的方差膨胀因子(VIF)。可见,2个自变量的VIF均远小于10,提示变量间不存在严重的多重共线性,可知满足条件6。
![](https://site.cdn.mengte.online/official/2022/03/20220301134801585.png)
(三) 模型拟合
1. 软件操作
fit<-glm(beat~tea+smoke,data=mydata,family=poisson()) #建立poisson回归模型 summary(fit) #查看回归模型参数 confint(fit) #计算系数的95%CI exp(coef(fit)) #计算IRR exp(confint(fit)) #计算IRR的95%CI
![](https://site.cdn.mengte.online/official/2022/03/20220301134702996.png)
![](https://site.cdn.mengte.online/official/2022/03/20220301134644150.png)
2. 结果解读
图6显示了Poisson回归分析的结果,包括AIC、Deviance等评价指标。Coefficients部分”列出了截距和自变量的“Estimate (非标准化系数)”、“Std.Error (标准误)”,统计量z值及P值。图7计算了模型变量系数的95%CI,IRR值及其95%CI。
图6的回归系数部分显示,变量“是否吸烟”的P值<0.001,说明吸烟患者和不吸烟患者24小时早搏数存在差异。变量“是否喝浓茶”的P值<0.001,则表明喝浓茶和不喝浓茶的患者,24小时早搏数也有差别。从系数的值来看,吸烟和喝浓茶对患者24小时早搏数均有正向影响。
图7的计算结果显示,吸烟患者早搏的概率是不吸烟患者的1.837倍(95%CI:1.406~2.433),喝浓茶患者早搏的概率是不喝浓茶患者的1.527倍(95%CI:1.207~1.937)。
四、结论
本研究采用Poisson回归分析患者胸闷症状的非器质性心脏病男性患者24小时早搏数的影响因素。观察变量早搏数为计数变量,且单位时间内其发生相互独立,经过软件判断服从Poisson分布,不存在需要处理的异常值,且自变量之间不存在严重共线性,数据满足Poisson回归分析的条件。
结果显示,吸烟患者和不吸烟患者24小时早搏数存在差异(P<0.001),吸烟患者早搏的概率是不吸烟患者的1.837倍(95%CI:1.406~2.433),喝浓茶患者早搏的概率是不喝浓茶患者的1.527倍(95%CI:1.207~1.937)。
五、知识小贴士
(一) Poisson分布
- 人类稀有疾病或一些卫生事件,如恶性肿瘤、某地在一个月内因交通事故死亡人数、1ml水中大肠杆菌数等计数资料,具有发病率低或者不像二项分布资料有分母能计算比例等特点。因此,这些事件数的多少除了取决于事件的实际发生数,还取决于计数时研究者所观察的范围,即观察多长时间、多大人群、多大面积等。使用发病密度等密度指标描述这些事件的群体特征比较合适。对于此类罕见事件的发生,如果事件之间彼此相互独立,观察样本含量较大时,则具有平均计数等于方差的特点。这类事件的发生次数往往服从Poisson分布。
(二) Poisson回归
- Poisson回归主要用于单位时间、单位面积、单位空间内某事件发生数的影响因素分析。在进行稀有事件等计数资料的影响因素分析时,应首先对资料的过离散情况进行判断或检验分析,然后选择正确的回归模型分析,才能得到正确的结果。一般先从专业方面判断,然后用统计学方法检验资料是否存在过离散现象。如果资料存在过离散情况,选用负二项回归模型;如果资料无过离散情况,选用Poisson回归模型分析。Poisson回归和多重线性回归、Logistics回归、Cox比例风险模型、负二项回归等都是医学领域中应用最多的广义线性模型之一