回归诊断和规格检验¶
介绍¶
在许多统计分析情况下,我们不确定我们的统计模型是否正确指定。例如,当使用 ols 时,假设线性性和同方差性,一些检验统计量还假设误差服从正态分布或我们有一个大的样本。由于我们的结果取决于这些统计假设,因此结果只有在我们假设成立(至少近似成立)的情况下才是正确的。
解决对正确规格不确定性问题的一种方法是使用稳健方法,例如稳健回归或稳健协方差(三明治)估计量。第二种方法是检验我们的样本是否与这些假设一致。
以下是线性回归的规格和诊断检验的简要总结。
异方差检验¶
对于这些检验,零假设是所有观测值具有相同的误差方差,即误差是同方差的。这些检验的不同之处在于将哪种类型的异方差视为备择假设。它们在对不同类型异方差的检验功效方面也有所不同。
- het_breuschpagan
- Breusch-Pagan 检验的拉格朗日乘数异方差检验 
- het_white
- White 检验的拉格朗日乘数异方差检验 
- het_goldfeldquandt
- 检验两个子样本中方差是否相同 
自相关检验¶
这组检验是否回归残差没有自相关。它们假设观测值按时间排序。
- durbin_watson
- Durbin-Watson 检验残差无自相关 
- 使用 summary() 打印 
 
- acorr_ljungbox
- Ljung-Box 检验残差无自相关 
- 还返回 Box-Pierce 统计量 
 
- acorr_breusch_godfrey
- Breusch-Pagan 检验残差无自相关 
 
- 缺失
- ? 
 
非线性检验¶
- linear_harvey_collier
- 针对线性规格是正确的零假设的乘数检验 
 
- acorr_linear_rainbow
- 针对线性规格是正确的零假设的乘数检验。 
 
- acorr_linear_lm
- 针对线性规格是正确的零假设的拉格朗日乘数检验。这针对特定的函数替代方案进行检验。 
 
- spec_white
- White 的二阶矩规格检验,零假设是同方差且正确指定。 
 
结构变化检验,参数稳定性¶
检验所有或一些回归系数在整个数据样本中是否恒定。
已知变点¶
- OneWayLS
- 用于检验预定义子样本(例如,组)中相同回归系数的灵活 ols 包装器 
 
- 缺失
- 预测检验:Greene,子样本中的观测值数量小于回归量数量 
 
未知变点¶
- breaks_cusumolsresid
- 基于 ols 残差的参数稳定性 cusum 检验 
 
- breaks_hansen
- 检验模型稳定性,ols 参数的断点,Hansen 1992 
 
- recursive_olsresiduals
- 计算递归 ols 以及残差和 cusum 检验统计量。目前这主要是递归残差检验的辅助函数。但是,由于它使用递归更新并且不估计单独的问题,因此它也应该作为扩展 OLS 函数相当高效。 
- 缺失
- supLM,expLM,aveLM(Andrews,Andrews/Ploberger) 
- R-structchange 还有 musum(移动累积和检验) 
- 对递归参数估计进行检验,哪些存在? 
 
多重共线性检验¶
- conditionnum(statsmodels.stattools)
- – 需要与 Stata 比较检验 – 
- cf Grene(第 3 版)第 57-8 页 
 
- numpy.linalg.cond
- (用于更一般的条件数,但没有用于设计准备的幕后帮助) 
 
- 方差膨胀因子
- 目前这与影响和异常值度量一起(与这里的一些链接:http://www.stata.com/help.cgi?vif) 
正态性分布检验¶
- jarque_bera
- 使用 summary() 打印 
- 检验残差的正态分布 
 
- scipy stats 中的正态性检验
- 需要再次找到列表 
- omni_normtest
- 检验残差的正态分布 
- 使用 summary() 打印 
 
- normal_ad
- 估计均值和方差的正态性 Anderson-Darling 检验 
 
- kstest_normal- lilliefors
- 正态性的 Lilliefors 检验,这是一个 Kolmogorov-Smirnov 检验,用于估计均值和方差的正态性。lilliefors 是 kstest_normal 的别名 
qqplot,scipy.stats.probplot
- scipy.stats 中分布的其他拟合优度检验和增强功能
- kolmogorov-smirnov 
- anderson:Anderson-Darling 
- 似然比,… 
- 卡方检验,powerdiscrepancy:需要包装(用于分箱) 
 
异常值和影响诊断度量¶
这些度量试图识别异常值,残差很大,或对回归估计具有很大影响的观测值。稳健回归,RLM,既可以用来以稳健异常值的方式进行估计,也可以用来识别异常值。RLM 的优点是,即使存在许多异常值,估计结果也不会受到很大影响,而大多数其他度量在识别单个异常值方面更好,可能无法识别异常值组。
- RLM
- 来自 example_rlm.py 的示例 - import statsmodels.api as sm ### Example for using Huber's T norm with the default ### median absolute deviation scaling data = sm.datasets.stackloss.load() data.exog = sm.add_constant(data.exog) huber_t = sm.RLM(data.endog, data.exog, M=sm.robust.norms.HuberT()) hub_results = huber_t.fit() print(hub_results.weights)- 权重给出了一个关于根据所要求的缩放程度对特定观测值进行降权的程度的概念。 
- 影响
- stats.outliers_influence 中的类,大多数针对异常值和影响的标准度量可以作为给定拟合 OLS 模型的方法或属性使用。这主要针对 OLS 编写,一些但不是所有度量对其他模型也适用。其中一些统计数据可以从 OLS 结果实例中计算出来,其他统计数据需要对每个遗漏的变量进行 OLS 估计。 - resid_press 
- resid_studentized_external 
- resid_studentized_internal 
- ess_press 
- hat_matrix_diag 
- cooks_distance - Cook's 距离 Wikipedia(以及其他一些链接) 
- cov_ratio 
- dfbetas 
- dffits 
- dffits_internal 
- det_cov_params_not_obsi 
- params_not_obsi 
- sigma2_not_obsi