如何使用python statsmodel计算厨师距离,DFFITS

Aka*_*wal 3 python statistics statsmodels

我想计算Cooks_dDFFITS使用Python中statsmodel。

这是我在 Python 中的代码:

X = your_str_cleaned[param]
y = your_str_cleaned['Visitor']
X = sm.add_constant(X)
model = sm.OLS(y, X)
results = model.fit()
Run Code Online (Sandbox Code Playgroud)

我尝试使用它来获取Cooks DistanceDFFITS

import statsmodels.stats.outliers_influence as st_inf
st_inf.OLSInfluence.summary_frame(results)
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

'OLSResults' 对象没有属性 'results'。

有人可以帮我找出我哪里出错了吗?

小智 5

我遇到了同样的问题,所以我不得不想办法解决。我没有太多经验,这并不能解决OLSInfluence. 但它给了你summary_frame

我将使用熊猫数据帧作为数据源。即使您在其他对象(如数组)中拥有它,您也可以相对轻松地将它们转换为数据帧。为了展示它是如何工作的,我将从以下位置导入波士顿房价数据集sklearn.datasets

import pandas as pd
from sklearn.datasets import load_boston

#imports dataset
boston = load_boston()

#generates DataFrame bos
bos = pd.DataFrame(boston.data)

#adds columns names to bos
bos.columns = boston.feature_names 

#adds column 'PRICE' to bos
bos['PRICE'] = boston.target
Run Code Online (Sandbox Code Playgroud)

现在让我们考虑 column'RM'和 column之间的关系'PRICE''RM'作为自变量。为简单起见,让我们考虑简单的 OLS。真正的答案来了:

from statsmodels.formula.api import ols

m = ols('PRICE ~ RM',bos).fit()
infl = m.get_influence()
sm_fr = infl.summary_frame()
Run Code Online (Sandbox Code Playgroud)

sm_fr有列cooks_ddffits你寻找。