python 卡方分布值_饱和模型与偏差计算R方与p值

引言: logistic回归中,我们了解到R 2 和P值的计算方法。 但josh starmer老师指出,广义线性模型中R 2 更常见的计算方法还包括饱和模型(参考:Logistic回归:R2与P-value的计算 )。 在Logistic模型中,LL(saturated model)=0,故可以忽略LL(saturated model); 但其在其他类型广义线性模型中并不一定为0,不能忽略LL(saturated model)。

1. 零模型、创建的模型、饱和模型

  1. 零模型(null model): 含一个参数的模型,也可记作空模型。假设在如下的正态分布数据中,标准差已知,故我们只需要估计均值以拟合该正态分布曲线。仅含1个参数(一个均值)的模型是最简单的模型,故称该模型为零模型。基于零模型的似然值与似然对数值计算如下:似然值=0.03;似然值的对数值=-3.51。似然值和似然值对数值的计算可参考先前的笔记:最大似然估计法拟合logistic回归曲线;概率与似然值。
python 卡方分布值_饱和模型与偏差计算R方与p值_第1张图片
  1. 创建的模型(proposed model):在同样的数据中,标准差已知,通过估计2个均值参数拟合两条正态分布曲线的含2个参数的模型。这一模型是我们根据数据的实际情况创建的个性化模型,参数个数介于零模型与饱和模型之间,是我们感兴趣的目标模型。基于该模型的似然值与似然对数值计算如下:似然值=3.57;似然值的对数值=1.27。
python 卡方分布值_饱和模型与偏差计算R方与p值_第2张图片
  1. 饱和模型:每个数据点对应一个参数的超级模型,称为饱和模型。该模型所含的参数数量是我们所能估计参数的最大数量。在饱和模型中,似然值与似然对数值计算如下:似然值=1291.5;似然值的对数值=7.16。
python 卡方分布值_饱和模型与偏差计算R方与p值_第3张图片

小结: 零模型的似然估计值最低,而饱和模型的似然估计值达到最大。我们的目标是,使数据在我们创建的模型(感兴趣模型)中的似然估计值大于零模型、接近饱和模型。

2. 基于零模型和饱和模型计算创建模型的R2

在使用似然值估计时,常常使用零模型和饱和模型来判定创建模型的显著性。也就是说,使用零模型和饱和模型计算创建模型的R2和P值。具体计算公式如下:

python 卡方分布值_饱和模型与偏差计算R方与p值_第4张图片

饱和模型在计算R2中的作用

  • 基于残差平方和的R2

    • 线性回归 :R2=(SS(零模型)-SS(创建的模型))/SS(零模型)(参考:线性回归中的R方与R方显著性)

python 卡方分布值_饱和模型与偏差计算R方与p值_第5张图片
    •  SS(零模型)仅包含一个参数(均值),也就是均值直线,展示最差模型的性能;SS(创建的模型)包含两个参数(均值和斜率),展示创建的模型性能。如果创建的模型能够完美预测,残差平方和SS(创建的模型)为0。

    • 线性模型中能够完美预测的理想模型的残差平方和为固定值,始终为0,对应的R2=1。

  • 基于似然值对数的R2(Log-likelihood based R2)

python 卡方分布值_饱和模型与偏差计算R方与p值_第6张图片
    • 零模型(null model)只用一个参数估计位置变量,展示最差模型的性能(右上角);饱和模型(saturated model)的参数个数与样本的个数一致,饱和模型的似然值对数值并不固定,展示理想状态模型的最佳性能;创建模型(proposed model)是根据数据的实际情况创建的模型。

    • 如果创建模型的效果与饱和模型一致,那么两者的对数似然值相等,使得R2=1。

  • 饱和模型确保R2的取值范围为[0,1]。

    • 假设不存在饱和模型,计算R2的1.36,超过了R2的取值范围。

python 卡方分布值_饱和模型与偏差计算R方与p值_第7张图片
    • 将饱和模型的似然值估计(7.16)重新带入公式,R2=0.45。

python 卡方分布值_饱和模型与偏差计算R方与p值_第8张图片

3. 模型间的偏差(deviance)计算p值

在零模型、创建的模型和饱和模型间,存在两种偏差,即残余偏差(residual deviance)和零偏差(null deviance)。

1.residual deviance是饱和模型与创建模型之间的差异。 其直观的定义如下:

285e2ab3ed1442f9a2aba1d414ad815c.png
  • 计算残余偏差的前提:创建的模型与饱和模型必须是巢式结构(nested)。说的更直白一点,饱和模型中删减一些参数后形成创建的模型。

  • residual deviance的解读:饱和模型能完美预测,其预测值与真实值相等。故小编认为这里的残余偏差可以类比线性回归中的残差(residual),即真实值与预测值的差异。

  • 饱和模型与创建模型的差异乘以2,使对数似然值的差异与对应自由度的卡方分布一致。例如饱和模型中的参数为6,创建模型的参数为2,那么对应卡方分布的自由度为4。

python 卡方分布值_饱和模型与偏差计算R方与p值_第9张图片

将数据带入公式可得,在自由度为4的卡方分布中,卡方值为11.78,卡方值>11.78的曲线下面积为0.02,故对应的p值为0.02。下结论:p=0.02<0.05,表示饱和模型与创建模型间有显著差异。

2.Null deviance是饱和模型与零模型之间的差异。 其直观的定义如下:

16ecac512b7a15a3e789a9ec67ebe78e.png

Null deviance的解读与residual deviance的解读一致。将数据带入公式可得:在自由度为5(6-1=5)的卡方分布中,卡方值为21.34,对应的p接近0。故下结论:p <<0.05,表示饱和模型与零模型间有显著差异。python 卡方分布值_饱和模型与偏差计算R方与p值_第10张图片

3.基于两种偏差,计算创建模型的p值。

python 卡方分布值_饱和模型与偏差计算R方与p值_第11张图片Null deviance 与residual deviance相减,抵消饱和模型,可以理解为构建模型与零模型的差异。通过该公式,计算出的差值与相同自由度的分布分布相同(自由度为创建模型与零模型的参数数量差异),进而可计算p值。如在本例中,创建模型的参数为2,零模型的参数为1,故对应卡方分布的自由度为1(2-1)。带入公式得出:null deviance - residual deviance = 9.56,对应自由度为1的卡方分布,p值=0.002。 python 卡方分布值_饱和模型与偏差计算R方与p值_第12张图片

4. p值与R2的统一

python 卡方分布值_饱和模型与偏差计算R方与p值_第13张图片

在本小结提及的案例中,R2=0.45,p=0.002。故我们可以得出结论:创建模型的效应量为0.45,该效应量具有统计显著性(p=0.002)。

5. p值的其他计算方法

在前面我们提及偏差的计算时,强调进行比较的两种模型必须是巢式结构。而创建的模型与零模型也属于巢式结构,故我们可以通过二者的直接比较判定两种模型之间是否具有显著差异。46abbc86e29e84e425cc1313b133c62c.png

对于该公式结果的解读同前。虽然这种方法更加简单直接,但是在实际工作中经常报告的仍然是null deviance 和 residual deviance。

6. logistic回归中,可忽略饱和模型

  • 忽略基于对数似然值的R2计算中的饱和模型
python 卡方分布值_饱和模型与偏差计算R方与p值_第14张图片

在logistic回归中,饱和模型能够实现完美预测,故其对数似然值等于0,故我们可以忽略logistic回归R2计算中的饱和模型。简化后的公式如下:

c55911f9864dc48b76ca7377b132aa7f.png python 卡方分布值_饱和模型与偏差计算R方与p值_第15张图片
  • 简化residual deviance和null deviance的计算公式
    简化后的结果如下:
python 卡方分布值_饱和模型与偏差计算R方与p值_第16张图片

7. 小结

        饱和模型提供了完美预测模型的对数似然值最大值,对于计算基于似然值的R2非常有用。但是在logistic回归中,完美预测模型的对数似然值为0,故我们可以忽略饱和模型。我们也了解了两种偏差residual deviance和null deviance,可以基于这两种偏差检验基于似然值的R2的显著性。

参考视频:https://www.youtube.com/watch?v=9T0wlKdew6I&t=561s

编辑:吕琼

校审:罗鹏

python 卡方分布值_饱和模型与偏差计算R方与p值_第17张图片

你可能感兴趣的:(python,卡方分布值,python计算卡方分布,r语言,计算模型的rmse,差异基因p为0)