python - 在 Python 中轻松访问标准化残差、厨师值、帽子值(杠杆)等?

标签 python scikit-learn linear-regression statsmodels

在拟合线性回归后,我正在寻找影响统计数据。在 R 中,我可以像这样获得它们(例如):

hatvalues(fitted_model) #hatvalues (leverage)
cooks.distance(fitted_model) #Cook's D values
rstandard(fitted_model) #standardized residuals
rstudent(fitted_model) #studentized residuals

等等。

在拟合这样的模型后,在 Python 中使用 statsmodels 时如何获得相同的统计数据:
#import statsmodels
import statsmodels.api as sm

#Fit linear model to any dataset
model = sm.OLS(Y,X)
results = model.fit()

#Creating a dataframe that includes the studentized residuals
sm.regression.linear_model.OLSResults.outlier_test(results)

编辑:请参阅下面的答案...

最佳答案

尽管接受的答案是正确的,但我发现在拟合模型后将统计信息作为影响实例 ( statsmodels.regression.linear_model.OLSResults.get_influence ) 的实例属性单独访问会很有帮助。这使我不必索引 summary_frame因为我只对其中一项统计数据感兴趣,而不对所有统计数据感兴趣。所以也许这对其他人有帮助:

import statsmodels.api as sm

#Fit linear model to any dataset
model = sm.OLS(Y,X)
results = model.fit()

#create instance of influence
influence = results.get_influence()

#leverage (hat values)
leverage = influence.hat_matrix_diag

#Cook's D values (and p-values) as tuple of arrays
cooks_d = influence.cooks_distance

#standardized residuals
standardized_residuals = influence.resid_studentized_internal

#studentized residuals
studentized_residuals = influence.resid_studentized_external

关于python - 在 Python 中轻松访问标准化残差、厨师值、帽子值(杠杆)等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46304514/

相关文章:

python - django 两个外键到同一模型 - 管理错误

python - 尝试使用 Gridsearchcv 时出现内存错误

python - Scikit-learn 中 OneHotEncoder 和 KNNImpute 之间的循环

python - 如何在将训练语料库传递到 sklearn 中的 TfidfVectorizer 之前应用自定义词干分析器?

python - 进程的异步生成 : design question - Celery or Twisted

Python Selenium(等待框架、元素查找)

python - 在 Pandas 中连接时,数据未将分隔符应用于 csv 文件

java - 是否有用于更好线性回归的 Java 库? (例如,迭代重新加权最小二乘法)

r - 多元回归遗漏一个变量(列)

python - 线性回归 ODR 失败