.get_influence().cooks_distance in python 中的假设是什么?

What is the hypothesis in .get_influence().cooks_distance in python?

假设我最终得到了这样一个厨师的距离数组:

并查看第一个元素(库克距离 = 0.368 和 p 值 = 0.701)。

我如何解释 p 值?大于0.05拒绝H0,但H0是什么?

例子取自https://www.statology.org/cooks-distance-python/

p 值不是您从假设检验中获得的 p 值。如果选中 wiki,Cook 距离服从具有 p 和 n-p 自由度的 F 分布。因此,您获得的 p 值实际上是观察到比该值更极端的值的概率,假设是线性模型。

我们可以看看 source code for statsmodels.stats.outliers_influence.OLSInfluence 这是计算厨师距离调用的函数:

def cooks_distance(self):
        """Cook's distance and p-values

        Based on one step approximation d_params and on results.cov_params
        Cook's distance divides by the number of explanatory variables.

        p-values are based on the F-distribution which are only approximate
        outside of linear Gaussian models.

        Warning: The definition of p-values might change if we switch to using
        chi-square distribution instead of F-distribution, or if we make it
        dependent on the fit keyword use_t.
        """
        cooks_d2 = (self.d_params * np.linalg.solve(self.cov_params,
                                                    self.d_params.T).T).sum(1)
        cooks_d2 /= self.k_vars
        from scipy import stats
        # alpha = 0.1
        # print stats.f.isf(1-alpha, n_params, res.df_modelwc)
        # TODO use chi2   # use_f option
        pvals = stats.f.sf(cooks_d2, self.k_vars, self.results.df_resid)

        return cooks_d2, pvals

相关行是pvals = stats.f.sf(cooks_d2, self.k_vars, self.results.df_resid)。所以你计算厨师距离并查看其在 F 分布上的 1-cdf 值。

这类似于获取单侧 t 检验的 p 值的方式,您会问观察到的 t 统计量比从检验中获得的统计量更极端的概率是多少。