python中回归和预测的标准误差(这些在R中可用)

机器算法验证 r Python 标准错误 统计模型
2022-03-23 11:54:26

我正在使用 R 并在 Python 中确认我的结果,两者之间的绝大多数工作匹配得很好。R 有两个输出,我没有看到如何在 Python 中获取,现在我正在寻找预打包的调用,但如果我必须手动完成,那就这样吧。尽管如此,我仍然希望预打包的调用可用,因为 R 中的其他所有内容几乎都在 Python 中。

第一个问题:如何在 Python 中得到 R 'Residual standard error'(见红框)?

这是R代码,下面是结果:

fit_1a <- lm(rpaapl~rpsp, data=df_returns)
summary(fit_1a)

R中的回归

这是 Python/statsmodels.ols 代码,下面是结果:

est_1a = smf.ols(formula='rpaapl ~ rpsp', data=xl).fit()
print(est_1a.summary())

在此处输入图像描述

So how can I get this residual standard error in Python?

第二个问题:如何在 Python 中获得 R 的“每个预测的标准误差”?

这是R代码,下面是结果:

forecast_1d <- data.frame(predict(fit_1a, newdata=data.frame(rpsp=mrp), se.fit=TRUE))
forecast_1d

在此处输入图像描述

这是 Python/statsmodels.ols 代码,下面是结果:

df_1d["estimate"] = est_1a.predict(df_1d)
print(type(est_1a.predict(df_1d)))
df_1d["estimate"]

在此处输入图像描述

So how can I get these standard errors for each prediction in Python?

请注意 est_1a 对象有一堆值,但我没有找到标准错误。此外, est_1a.predict 仅返回时间序列,因此预测调用似乎不计算标准误差(R 中的 se.fit)。任何帮助深表感谢。

2个回答

到最后一部分

一些模型现在有一种get_prediction方法,可以为新观察的预测均值和预测区间提供标准误差和置信区间。

pred = results.get_prediction(x_predict)
pred_df = pred.summary_frame()

这个要点中有一些例子https://gist.github.com/josef-pkt/1417e0473c2a87e14d76b425657342f5

对于您的第一个问题,我认为 R 所谓的“残余标准误差”是比例参数的平方根:

np.sqrt(est_1a.scale)