我目前有一个基于预期寿命和影响它的变量生成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()