转自个人微信公众号【Memo_Cleon】的统计学习笔记:“发生次数”用什么方法搞定?泊松回归与负二项回归。
关于泊松回归,还有一些问题需要再进一步地说明与示例。
交叉表实际上是经过整理的数据格式,很多时候我们拿到的是类似“snapshot”的原始数据,每条记录仅记录一次观测的数据。而且每个个体/每条记录的事件发生也可能不止1次,比如泊松回归[一般对数线性分析过程]一文中每个个体的冠心病死亡最多是1次,但1个月内哮喘发作次数可能就不止1次,这个时候用对数线性分析中的Poisson模型处理起来就比较困难,可以换用广义线性模型来拟合。任何一个模型都有适用条件,泊松回归要求(1)单元格数据满足泊松分布。泊松分布有一种非常重要的特征:事件的条件均值等于条件方差,即等离散(equal-dispersion)。另外泊松分布均值越大,频数为0的可能性越低,Poisson越逼近正态分布;(2)事件发生彼此独立,发生率保持一致,即个体在某个观察单位的的发生事件与其他观察单位上的发生数无关;如果事件发生数过离散(over-dispersion)或者事件发生概率并非保持不变,可考虑换用负二项回归(negative binomial regression model);(3)线性,因变量(计数)的对数与自变量呈线性关系。同其他回归模型一样,在模型建立完毕后还需要对模型进行一系列诊断。对于泊松分布的检验,不同的软件提供的方法不同。SPSS中可以通过非参数检验单样本的K-S检验实现各种分布的检验,stata、JMP则比较注重过离散的检验。如果你不嫌麻烦,可以自己制作发作次数的频数表,联合泊松分布曲线来从图示上判断数据是否满足泊松分布。示例2:两种不同方案治疗过敏性哮喘的疗效评估,指标是经过治疗后1个月内哮喘的发作次数。
数据录入:Trt(1=TplanA;2=TplanB),Gender(1=man;2=feman),Age:年龄,Baseline:治疗前每月哮喘发作次数;fre1Y,治疗1年后1个月内哮喘的发作次数。
按治疗组分割文件:Data>>Split File…
泊松分布检验:Analyze>>Nonparametric Tests>>Legacy Dialogs>>1-Sample K-S…
泊松分布检验结果如下。结果显示两组计数资料P>0.05,均满足泊松分布。
取消按治疗组分割文件(Data>>Split File…),返回默认的不创建组分析所有案例。
Poisson回归:Analyze>>Generalized Linear Models>>Generalized Linear Models…
SPSS中默认分类变量的高水平为参照水平。参照水平可在【选项】中进行修改,进入选项对话框后,Ascending为默认选项,改为Descending后可实现以低水平为参照水平的设置。
先不考虑各个因素间的交互作用,将各个因素的主效应选入模型列表框。
结果详细解读可参见《泊松回归[一般对数线性分析过程]》与《广义线性模型拟合泊松回归》,几个主要结果如下:
拟合优度:拟合优度的统计量可以用来进行模型间的比较,单独一个模型的信息准则值意义并不大。偏差残差和Pearon卡方的Value/df 如果>1,提示计数资料可能存在过离散(The Value/df for the Deviance and Pearson Chi-Square statistics gives corresponding estimates for the scale parameter. These values should be near 1.0 for a Poisson regression.If they are greater than 1.0 indicates that fitting the overdispersed model may be reasonable)。如存在过度离散,可能会得到很小的标准误差和置信区间,显著性也过于宽松,也就是说统计结果会发现并不真实存在的效应。本例仅含有各个因素主效应,没有考虑其他因素的交互作用。Value/df比值接近1,提示数据均值等于方差,满足等离散的要求。
Omnibus test:The omnibus test is a likelihood-ratio chi-square test of the current model versus the null (in this case, intercept) model. The significance value of less than 0.05 indicates that the current model outperforms the null model. 本例结果表明,几个因素的加入对模型的改善是有意义的。
Tests of model effects:Each term in the model is tested for whether it has any effect. Terms with significance values less than 0.05 have some discernible effect. 本例治疗方案和治疗前基线状态的主效应在模型中是有统计学意义的。
参数估计:校正性别、年龄与基线的影响后,相比TplanB方案,采用TplanA方案IRR=0.249,即采用治疗方案B的患者哮喘发生率是A方案的1/0.249=4.02倍;性别与年龄对哮喘的发作次数没有影响;基线哮喘发作次数每多1次,治疗结束后哮喘发生率是治疗前的1.193倍。
示例3:数据来自R软件robust程序包,研究药物治疗是否能够减少癫痫发病次数。数据录入:响应变量为sumY( 病人随机分配后八周内癫痫发病次数),预测变量为治疗条件 (Trt:0=Placebo,1=Progabide)、年龄(Age)和病人随机分配前八周内的基础癫痫发病次数(Base)。
泊松分布检验:Analyze>>Nonparametric Tests>>Legacy Dialogs>>1-Sample K-S…,将sumY选入检测变量列表,选中Piosson分布,OK结果显示两个治疗组均不满足泊松分布(P<0.001),提示采用泊松回归模型来拟合数据可能并不合适。
取消按治疗组分割文件(Data>>Split File…),返回默认的不创建组分析所有案例。Poisson回归:Analyze>>Generalized Linear Models>>Generalized Linear Models…,各选项卡如下选择/设置:
Type of Model:选择Poisson loglinear;
Response:因变量框选入sumY;
Predictor:将Trt选入因子框,Base、Age选入协变量框;
Model:将Trt、Base、Age的主效应选入模型框;
Estimation:默认;
Statistics:选中Include exponential parameter estimates
其他默认。
拟合优度结果显示,偏差残差和Pearson卡方Value/df 均远>1,提示数据存在过离散,应该采用过离散模型来拟合。-2LL=-2×(-421.354)=842.708。
以下是采用Poisson回归的结果,因模型并不适合采用Poisson回归模型,结果不再解读。
负二项回归:Analyze>>Generalized Linear Models>>Generalized Linear Models…,各选项卡如下选择/设置。
Type of Model:选择Negative binomial with log link;
其他选项卡设置同前面的Poisson回归设置:
主要结果如下:
拟合优度显示采用负二项回归模型的-2LL=-2×(-247.371)=494.74<842.708,表明负二项回归模型优于Poisson回归模型。
模型纳入3个变量优于截距模型;治疗药物和年龄的主效应对癫痫的发作次数并没有显著影响,基线值对癫痫的发作次数有影响。负二项回归模型是在Poisson回归模型的基础上增加了一个随机误差项来表示过离散效应,其偏回归系数的解释跟Poisson回归是类似的,exp(β)也代表IRR。负二项回归的参数估计值与泊松方法相差不大,但是标准误差(Std.Error)更大,预测变量显著性也发生了变化。当考虑过度离势,并控制其他变量不变时,没有充足的证据表明研究药物相比安慰剂显著降低癫痫发病次数。
以上两例均未考虑交互作用,感兴趣可以自己纳入分析。
转自个人微信公众号【Memo_Cleon】的统计学习笔记:“发生次数”用什么方法搞定?泊松回归与负二项回归。