gpt4 book ai didi

python - 回归模型 statsmodel python

转载 作者:行者123 更新时间:2023-12-05 01:42:05 51 4
gpt4 key购买 nike

这更像是一个统计问题,因为代码运行良好,但我正在学习 python 中的回归建模。我在下面有一些代码和 statsmodel 来创建一个简单的线性回归模型:

import statsmodels.api as sm
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

ng = pd.read_csv('C:/Users/ben/ngDataBaseline.csv', thousands=',', index_col='Date', parse_dates=True)

X = ng['HDD']
y = ng['Therm']

# Note the difference in argument order
model = sm.OLS(y, X).fit()

# Print out the statistics
model.summary()

我得到如下图所示的输出。我正在尝试判断拟合优度,我知道 R^2 很高,但是否可以使用 statsmodel 找到预测的均方根误差 (RMSE)?

我也在尝试研究是否可以估计具有置信区间的抽样分布。如果我正确解释拦截 HDD 5.9309 的表格,标准误差为 0.220,p 值低 0.000,并且我认为 97.5% 的置信区间 HDD 的值(或者它是我的因变量 Therm?)将在 5.489 和6.373??或者我认为可以表示为 ~ +- 0.072%

enter image description here

EDIT 包括多元回归表 enter image description here

最佳答案

是否可以使用 statsmodels 计算 RMSE?是的,但您必须首先使用您的模型生成预测,然后使用 rmse方法。

from statsmodels.tools.eval_measures import rmse

# fit your model which you have already done

# now generate predictions
ypred = model.predict(X)

# calc rmse
rmse = rmse(y, ypred)

至于解释结果,HDD 不是截距。这是你的自变量。系数(例如重量)为 5.9309,标准误差为 0.220。该变量的 t 值非常高,表明它是一个很好的预测变量,而且由于它很高,p 值非常小(接近于 0)。

5.489 和 6.373 值是 95% 置信区间的置信界限。边界是根据标准误差乘以与系数的 95% 置信区间相关的 t 统计量的简单计算得出的。

t 统计量取决于您的样本量,在您的情况下为 53,因此您的自由度为 52。使用 t-table ,这意味着对于 df=52 和 95% 的置信水平,t 统计量为 2.0066。因此边界可以手动计算如下:

lower: 5.9309 - (2.0066 x 0.220) = 5.498
upper: 5.9309 + (2.0066 x 0.220) = 6.372

当然,由于四舍五入会导致一些精度损失,但您可以看到手动计算与摘要中报告的内容非常接近。

对您的评论的补充回复:

您可以使用多种指标来评估拟合优度。其中之一是调整后的 R 平方统计量。其他是 RMSE、F 统计量或 AIC/BIC。由您决定使用哪个或哪些指标来评估拟合优度。对我来说,我通常使用调整后的 R 平方和/或 RMSE,尽管 RMSE 更多是与其他模型进行比较的相对指标。

现在查看您的模型摘要,两个模型都非常适合,尤其是第一个模型具有高调整 R 平方值。第二个模型可能有潜在的改进(可能会尝试自变量的不同组合),但除非您进行实验,否则您不会知道。归根结底,没有对错之分。它只是归结为构建多个模型并比较它们以获得最佳模型。我还将链接 article这解释了回归模型的一些拟合优度指标。

至于置信区间,我将链接此 SO post因为回答问题的人有创建置信区间的代码。您需要查看他在代码中创建的 predict_mean_ci_lowpredict_mean_ci_high。这两个变量将为您提供每次观察的置信区间,从那里,您可以通过从预测中减去较低的 CI 或从较高的 CI 中减去预测来计算 +/- therms/kWh。

关于python - 回归模型 statsmodel python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52562664/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com