[ PROMPT_NODE_27456 ]
stats_diagnostics
[ SKILL_DOCUMENTATION ]
# 统计检验与诊断参考
本文档提供了 statsmodels 中可用的统计检验、诊断和工具的综合指南。
## 概述
Statsmodels 提供了广泛的统计检验功能:
- 残差诊断和规范检验
- 假设检验(参数和非参数)
- 拟合优度检验
- 多重比较和事后检验
- 功效和样本量计算
- 稳健协方差矩阵
- 影响力和异常值检测
## 残差诊断
### 自相关检验
**Ljung-Box 检验**:检验残差中的自相关性
python
from statsmodels.stats.diagnostic import acorr_ljungbox
# 检验残差的自相关性
lb_test = acorr_ljungbox(residuals, lags=10, return_df=True)
print(lb_test)
# H0: 滞后 k 阶内无自相关
# 如果 p 值 < 0.05,拒绝 H0(存在自相关)
**Durbin-Watson 检验**:检验一阶自相关
python
from statsmodels.stats.stattools import durbin_watson
dw_stat = durbin_watson(residuals)
print(f"Durbin-Watson: {dw_stat:.4f}")
# DW ≈ 2: 无自相关
# DW 2: 负自相关
# 确切临界值取决于 n 和 k
**Breusch-Godfrey 检验**:更通用的自相关检验
python
from statsmodels.stats.diagnostic import acorr_breusch_godfrey
bg_test = acorr_breusch_godfrey(results, nlags=5)
lm_stat, lm_pval, f_stat, f_pval = bg_test
print(f"LM 统计量: {lm_stat:.4f}, p 值: {lm_pval:.4f}")
# H0: 滞后 k 阶内无自相关
### 异方差性检验
**Breusch-Pagan 检验**:检验异方差性
python
from statsmodels.stats.diagnostic import het_breuschpagan
bp_test = het_breuschpagan(residuals, exog)
lm_stat, lm_pval, f_stat, f_pval = bp_test
print(f"Breusch-Pagan 检验 p 值: {lm_pval:.4f}")
# H0: 同方差性(恒定方差)
# 如果 p 值 < 0.05,拒绝 H0(存在异方差性)
**White 检验**:更通用的异方差性检验
python
from statsmodels.stats.diagnostic import het_white
white_test = het_white(residuals, exog)
lm_stat, lm_pval, f_stat, f_pval = white_test
print(f"White 检验 p 值: {lm_pval:.4f}")
# H0: 同方差性
**ARCH 检验**:检验自回归条件异方差性
python
from statsmodels.stats.diagnostic import het_arch
arch_test = het_arch(residuals, nlags=5)
lm_stat, lm_pval, f_stat, f_pval = arch_test
print(f"ARCH