Python实现异方差检验(statsmodels)

  • 什么是异方差?(摘自知乎https://www.zhihu.com/question/354637231)

一句话,就是当随机扰动项和模型中的解释变量(自变量)存在某种相关性,就会出现异方差。
即对于不同的样本点,随机误差项的方差不再是常数,而互不相同,则认为出现了异方差性(Heteroskedasticity)。
异方差: [公式]
,与解释变量观测值Xi有关。
异方差的类型
异方差
单调递增型:随X的增大而增大
单调递减型:随X的增大而减小
复杂型:与X的变化呈复杂形式
异方差性的后果
1、参数估计量有效
OLS估计量仍然具有无偏性,但不具有有效性。
在大样本情况下,尽管参数估计量具有一致性,但仍然不具有渐近有效性。
2、变量的显著性检验失去意义
变量的显著性检验中,构造了t统计量 [公式] ,它是建立在 [公式] 不变而正确估计了 [公式] 的基础之上的。如果出现了异方差性,估计的[公式]出现偏误,t检验失去意义
其他检验也是如此
3、模型的预测失效
一方面,由于上述后果,使得模型不具有良好的统计性质;另一方面,在预测值的置信区间中也包含有参数方差的的估计量 [公式] ;所以,当模型出现异方差性时,参数OLS估计值的变异程度增大,从而造成对Y的预测误差变大,降低预测精度,预测功能失效。

  • 异方差性的检验
    一、检验方法

    1. Park Test
    2. Glejser Test
    3. Spearman’s Rank Correlation Test
    4. Goldfeld-Quandt Test
    5. Breusch-Pagan-Godfrey Test
    6. White’s General Heteroscedasticity Test
    7. Koenker-Bassett Test

    二, statsmodels 中包含的检验方法

    数学建模清风的视频中就提到了两种异方差的检验方法:
    BP检验怀特检验。所以我重点介绍这两种检验的用法(此外,BP检验的使用范围并没有怀特检验的使用范围大,所以我介绍中重点的重点就是怀特检验)


  1. BP检验

    方法:

    import statsmodels.stats.api as sms
    test = sms.het_breuschpagan(results.resid, results.model.exog) # result是训练好的模型
    

    返回值为:在这里插入图片描述
    2.怀特检验

    statsmodels中的怀特检验让我找了很长时间,居然没有和BP检验放在一块,而且没有demo,后来仿照BP检验终于把怀特检验跑起来了

    from statsmodels.stats.diagnostic import het_white
    het_white(lm.resid, lm.model.exog)  # lm是模型
    

    此外,下面的接口也可以使用(和上方BP检验类似)

    import statsmodels.stats.api as sms
    sms.het_white(lm.resid, lm.model.exog)  # lm为模型
    

    附上返回值
    此外,根据清风的说法,我们日常检验最好用怀特检验。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值