泊松回归[一般对数线性分析过程]
转自个人微信公众号【Memo_Cleon】的统计学习笔记:泊松回归:一般对数线性分析过程。
【1】计数资料[count data]
“哮喘患者一个月内急性发作次数”是什么资料?
表中[是否发作]和[发作次数]的数据类型一样吗?显然不一样。[是否发作]属于分类资料(categorical data),其值是“是”或者“否”,没有单位,同表中的[组别]、[性别]性质是一样的,而[发作次数]是靠清点计数得到的,虽然它有自己的单位(本例是次),但与连续资料又有不同,它只能是非负的整数,在统计上这类资料属于计数资料[count data]。我们也可以将[发作次数]转换成[等级],这种资料就变成了分类资料中的等级资料(有序多分类资料)。
像线性回归要求满足正态分布一样,泊松回归要求满足泊松分布,泊松分布的概率密度函数为:
表示单位时间/单位面积/单位空间内某事件发生k次的概率。λ是这个分布唯一的参数,λ是该分布的均值,也是该分布的方差,即均值等于方差,λ越大Poisson分布越逼近正态分布。
如果某一事件的的观测频数服从一个均值为λ的Poisson分布,则Poisson回归模型如下:
由上述公式很容易得出偏回归系数β的实际意义:β0表示各个“自变量取值为0”时观测频数的自然对数值,注意这里的取值为0的水平指的是被设为参照的那个水平,在SPSS中默认高水平赋值的那个水平为参照水平,跟自变量实际的value赋值不一致。如果模型是非饱和模型,结果会与实际计数计算的有差别,但如果是饱和模型则完全一致。βi则表示其他自变量取值不变时,自变量xi每改变一个单位,所引起的观测频数λ的自然对数值的改变量,βi为正表示自变量每增加一个单位观测频数λ会增加,βi为负值表示自变量每增加一个单位观测频数λ会减少。
其中lnn称为偏移量(offset)。
但其他变量保持不变,自变量xi改变1个单位,取值由xi变为xi+1,发生率比值(incidence-rate ratios,IRR,意同RR):
这样系数βi的解释可以转换成更具有实际意义的IRR,即exp(βi),意为自变量xi每改变一个单位,事件发生率是参照水平的exp(βi)倍,或者说相比参照水平,事件发生率会改变[exp(βi)-1]倍。
个人以为SPSS中的Poisson回归操作界面并不友好,对话框中去掉了因变量的这个选框,大概理由是结局变量就是单元格的计数,所以不需要选择,但却需要专门的数据格式来匹配这个模型,如果你习惯了在对话框中确定结局变量和解释变量,对此可能会有些不适应。
数据录入:smoke(0=不吸烟,1=吸烟),agecat(0=35-44岁,1=45-54岁,2=5-64岁,3=65-74岁,5=75-84岁),deaths表示存活人数变量,pyears表示人年数,相当于总观察数。要注意这种输入格式跟我们以前常用的交叉表格式是不一样的。
数据加权:Data>>Weight Cases…,激活加权变量,选入变量死亡数[deaths]
泊松回归:Analyze>>Loglinear>>General…
[因子]:选入变量smoke、agecat;
[单元格结构]:选入观察基数变量pyears。单元格结构选入单元格的观察单位数,用于计算偏移量,去除基数的不同对模型造成的影响;
【模型】自定义模型,选入smoke和agecat的主效应;继续;
【选项】选中参数估计;δ取值0-1,默认为0.5,模型会将所有单元格的频数或者计数加上该值进行参数估计,以避免单元格频数或计数为0时引起的计算问题。数据量较少时会略微影响参数的估计值,但不会影响统计检验结果。如果数据不存在空单元格可以将其改为0。继续;
OK
(1)数据信息及模型收敛情况
(3)单元格计数与残差:显示实际计数、理论计数、残差、标准化残差、校正残差即偏差等信息。
(4)参数估计:这是回归模型中最为关键的结果。
注:nondetrended normal plots:The observed values are plotted against the expected values.detrended plots: The observed values are plotted against the deviations from the expected values.QQ图上点偏离斜线的距离肉眼观察可能会误导我们,感觉像是在斜线周边。去势QQ图可以更清楚得看出实际偏离有多大。
拟合优度检验结果表明,当前简约模型与饱和模型存在差异,我们可以在【模型】中构建新的模型进行分析。当前简约模型与饱和模型只差一个交互项,我们也可以在原来的简约模型中添加缺少的交互项。我们也选择的饱和模型,饱和模型是默认的分析模型。为更好的理解各系数的意义,也可以在【选项】中选中[设计矩阵(Design matrix)]。
单独效应可以大体计算如下:
不同年龄的男医生
对于35-44岁的男医生,不吸烟发生冠心病死亡的发生率是exp(-3.954+0.100--3.447-1.847),吸烟发生冠心病死亡的发生率是exp(-3.954+0-3.447+0),吸烟IRR=exp(-3.954+0-3.447+0)/exp(-3.954+0.100-3.447-1.847),即吸烟发生死亡的风险是不吸烟的[1/exp(0.100-1.847)]=5.74倍;
同样的,对于45-54岁的男医生,吸烟发生死亡的风险是不吸烟的[1/exp(0.100-0.860)]=2.14倍;
对于55-64岁的男医生,吸烟发生死亡的风险是不吸烟的[1/exp(0.100-0.484)]=1.47倍;
对于65-74岁的男医生,吸烟发生死亡的风险是不吸烟的[1/exp(0.100-0.405)]=1.36倍;
对于75-84岁的男医生,吸烟发生死亡的风险是不吸烟的[1/exp(0.100-0)]=0.90倍。
吸烟和不吸烟的男医生
对于不吸烟的男医生,75-84岁的男医生发生冠心病死亡的风险是35-44岁的男医生[1/exp(-3.447-1.847)]=199.14倍,同样可以获得不吸烟男医生各年龄段的IRR,感兴趣的可以自己去计算一下。
对于吸烟的男医生,75-84岁的男医生发生冠心病死亡的风险是35-44岁的男医生[1/exp(-3.447+0)]=31.41倍,同样可以获得吸烟男医生各年龄段的IRR,也不再累述。
Data>>Spilit Files…,操作如下:
转自个人微信公众号【Memo_Cleon】的统计学习笔记:泊松回归:一般对数线性分析过程。
… E N D …