You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Statsmodels OLS摘要与resid.kurtosis()峰度结果不一致,咨询可靠性及提取方法

问题解答

1. 峰度数值差异的原因

statsmodels OLS摘要中的Kurtosis(2.726)是原始峰度(皮尔逊峰度),而res.resid.kurtosis()(-0.264)和scipy的stats.kurtosis()(-0.274)默认返回的是超额峰度(减去3后的结果)。两者的换算关系为:
原始峰度 = 超额峰度 + 3
你的案例中:-0.274 + 3 ≈ 2.726,和摘要数值完全匹配,说明差异只是计算定义不同,并非方法错误。

2. 哪个结果更可靠?

两种结果都是正确的,选择取决于你的需求:

  • 若需要和OLS摘要一致的统计量,使用原始峰度(2.726);
  • 若需要衡量数据相对于正态分布的峰度偏离(正态分布超额峰度为0),使用超额峰度(-0.264/-0.274)。

pandas和scipy的结果略有差异,是因为两者计算标准差时的自由度设置不同:pandas的kurtosis()默认用样本标准差(ddof=1),scipy的stats.kurtosis()默认用总体标准差(ddof=0),调整自由度后结果会完全一致。

3. 如何提取OLS摘要中的峰度结果?

有两种可靠方式:

  • 直接从结果对象提取:statsmodels的OLS结果对象提供了kurtosis属性,直接调用res.kurtosis即可获取和摘要一致的原始峰度值;
  • 手动计算:如果需要自定义计算,用原始峰度公式(注意使用总体标准差,分母为样本量n):
import numpy as np
resid = res.resid
mean = resid.mean()
std = resid.std(ddof=0)  # 总体标准差,分母为样本量n
kurtosis_raw = ((resid - mean)**4).sum() / (len(resid) * std**4)

4. 偏度的验证

你可以将res.resid.skew()的结果和OLS摘要中的Skewness对比:两者都是样本偏度,计算逻辑一致(公式为sum((resid-mean)^3)/(n*std^3)),如果数值匹配,说明你的数组方法是正确的。

内容的提问来源于stack exchange,提问作者Heitor Nunes Rosa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:13:15