如何在 statsmodel ols 中获得 "in-sample" 预测值(y hat)?

How to get the "in-sample" predicted values (y hat) in statsmodel ols?

代码如下:

from   statsmodels.formula.api import ols
import io
import requests

url = "https://raw.githubusercontent.com/RInterested/datasets/gh-pages/mtcars.csv"
contents = requests.get(url).content
mtcars = pd.read_csv(io.StringIO(contents.decode('utf-8')))
print(mtcars.describe())
reg = ols('mpg ~ C(cyl) + wt', data=mtcars).fit() 
print(reg.summary())

这似乎return 对模型的截取,语法与我喜欢的 R 非常相似。在 print(dir(reg)) 中有一个 reg.predict 和一个 reg.get_predict,但它们都没有 return 数据集中每个示例(案例或主题)的预测值。似乎它可能正在等待 "out-of-sample" 数组吐出这些预测值。

我想得到实际数据集中示例的预测 mpg 绘制为与实际数据云不同颜色的点,并叠加在回归线上:

样本内预测可作为结果实例的 reg.fittedvalues 属性使用,并且在调用不带参数的预测时,reg.predict()

当预测方法有其他选项时,可以通过不指定一组新的解释变量来计算样本内观察值,exog