我正在用statmodel OLS进行迭代异常值消除。我已经把模型装上了
ols_result = sm.OLS(y,X).fit()
然后我可以得到外部和bonferroni的学生删除残差
ols_result.outlier_test(method="bonf")
我正在删除超过bonferroni p>;%的样品10在每次迭代中,厨师距离也是最高的。直到我没有得到bonf(p)>;%的样本10然后我得到了原始样本的子集
假设我有400个样本,剔除异常值后我得到380个样本。现在我想找到学生删除残差和bonferroni,关于回归拟合380个样本的400个样本。看看删除的异常值是否真的是异常值
问题就从这里开始。我在寻找一种简单的方法来使用statmodels-OLS模型来得到拟合值的残差和cooks距离,而不是自己编写那些函数。但是.outlier_test()
和.get_influence()
似乎适用于OLS结果对象
你们有什么简单的方法来实现这些测试而不需要太多的代码等
提前谢谢
经过对这种实用性的深入研究。我找不到简单的方法来使用statmodels库。相反,我编写了自己的代码,也得到了statmodels源代码的帮助。如果有人需要我在下面分享的代码
这可能是一个有点脏的代码。我没有时间去打扫和提高效率。它使用
numpy
模块和scipy.stats
相关问题 更多 >
编程相关推荐