查找 StatsModels 多元回归的 RSME 和标准差

Find RSME and Standard Deviation of a StatsModels Multiple Regression

我目前有一个多元回归,它根据预期寿命和影响它的变量生成 OLS 摘要,但不包括 RMSE 或标准差。 statsmodels 有 rsme 库吗?有没有办法根据我的代码计算标准偏差?

我找到了这个问题的前一个例子: , and I read the statsmodels info page: https://www.statsmodels.org/stable/generated/statsmodels.tools.eval_measures.rmse.html 并且测试我仍然无法解决这个问题。

import pandas as pd
import openpyxl
import statsmodels.formula.api as smf
import statsmodels.formula.api as ols

df = pd.read_excel(C:/Users/File1.xlsx, sheet_name = 'States')

dfME = df[(df[State] == "Maine")]

pd.set_option('display.max_columns', None)

dfME.head()

model = smf.ols(Life Expectancy ~ Race + Age + Weight + C(Pets), data = dfME) 
modelfit = model.fit()
modelfit.summary

您可以尝试这样的操作:

from statsmodels.tools.eval_measures import rmse
X = dfME[["Race", "Age", "Weight", "C(Pets)"]]
rmse_result = rmse(dfME["Life Expectancy"], model.predict(X))

要获得预期寿命的标准差,您可以简单地使用:

stdev = dfME["Life Expectancy"].std()

听起来你的意思是残差的标准差,它是使用均方根误差计算的。这使您可以衡量数据点与最佳拟合线的分布情况。它通常用作 预测误差.

的度量

Statsmodels 的摘要中遗漏了很多信息。幸运的是,Statsmodels 为我们提供了替代方案。您可以在此处找到可用属性和方法的列表:Regression Results

让我们使用代码中的变量赋值 modelfit。要找到残差的均方误差,请使用 link 中 Statsmodels 中的 mse_resid 方法。要找到残差的 RMSE(均方根误差),请使用 Numpy 中的平方根函数对均方误差求平方根,sqrt

因此可以使用以下代码找到残差的均方根误差:

rmse_residuals = np.sqrt(modelfit.mse_resid)