如何使用python statsmodel计算Cooks Distance,DFFITS

问题描述 投票:1回答:1

我想使用statsmodel在Python中计算Cooks_dDFFITS

这是我在Python中的代码:

X = your_str_cleaned[param]
y = your_str_cleaned['Visitor']
X = sm.add_constant(X)
model = sm.OLS(y, X)
results = model.fit()

我尝试使用它来获取Cooks DistanceDFFITS

import statsmodels.stats.outliers_influence as st_inf
st_inf.OLSInfluence.summary_frame(results)

但是我收到了这个错误:

'OLSResults'对象没有属性'结果'。

有人能帮我找到我错的地方吗?

python statistics statsmodels
1个回答
0
投票

我遇到了同样的问题,所以我必须找到解决办法。我没有太多经验,这不能解决OLSInfluence的根本问题。但它给你summary_frame

我将使用pandas数据帧作为数据源。即使你在其他对象(如数组)中使用它,也可以相对轻松地将它们转换为数据帧。为了说明它是如何工作的,我将从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

现在让我们考虑列'RM'和列'PRICE'之间的关系,以及'RM'as自变量。为简单起见,让我们考虑简单的OLS。这是实际答案:

from statsmodels.formula.api import ols

m = ols('PRICE ~ RM',bos).fit()
infl = m.get_influence()
sm_fr = infl.summary_frame()

sm_fr有你寻找的cooks_ddffits列。

© www.soinside.com 2019 - 2024. All rights reserved.