如何解决查找 StatsModels 多重回归的 RSME 和标准差
我目前有一个多元回归,它根据预期寿命和影响它的变量生成 OLS 摘要,但不包括 RMSE 或标准偏差。 statsmodels 是否有 rsme 库,有没有办法计算我的代码的标准偏差?
我发现了这个问题的前一个例子: regression model statsmodel python ,我阅读了 statsmodels 信息页面: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。要查找残差的均方误差,请使用链接中 Statsmodels 中的 mse_resid 方法。要找到残差的 RMSE(均方根误差),请使用 Numpy 中的平方根函数取均方误差的平方根,sqrt。
因此可以使用以下代码找到残差的均方根误差:
rmse_residuals = np.sqrt(modelfit.mse_resid)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。