找到statmodels多元回归的RSME和标准差



我目前有一个基于预期寿命和影响它的变量生成OLS摘要的多元回归,但是它不包括RMSE或标准差。是否统计模型有一个rsme库,是否有一种方法来计算我的代码的标准偏差?

我发现了这个问题的一个以前的例子:回归模型statsmodel python,我读了statmodels信息页: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

听起来你是指残差的标准差使用均方根误差计算. 这给了你一个衡量数据点从最佳拟合线的分布情况。它通常被用来衡量预测误差.

统计模型中的摘要中遗漏了很多信息。幸运的是,statmodels为我们提供了其他选择。您可以在这里找到可用属性和方法的列表:

让我们使用变量赋值modelfit从你的代码。要查找残差的均方误差,请使用mse_ressid在链接中的statmodels中找到。为了找到残差的RMSE(均方根误差),使用Numpy中的平方根函数对均方根误差取平方根,sqrt.

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

rmse_residuals = np.sqrt(modelfit.mse_resid)

你可以尝试这样做:

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()

相关内容

  • 没有找到相关文章

最新更新