Python 如何获得;“样本中”;STATSOLS模型中的预测值(y hat)?

Python 如何获得;“样本中”;STATSOLS模型中的预测值(y hat)?,python,regression,statsmodels,Python,Regression,Statsmodels,代码如下: 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

代码如下:

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())
这似乎为模型返回了一个截取,语法与R非常相似,我喜欢R。
print(dir(reg))
中有一个
reg.predict
和一个
reg.get\u predict
,但它们都不返回数据集中每个示例(案例或主题)的预测值。它似乎在等待“样本外”数组输出这些预测值

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


样本内预测在results实例上作为
reg.fittedvalues
属性提供,并且在调用不带参数的predict时,
reg.predict()


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

您是回答快速跟进问题的理想人选。。。我正在尝试更多地使用Python,您的包statsmodel看起来非常无缝,但我不理解OLS(无截获)和OLS(截获)…OLS和所有模型都使用numpy数组或熊猫数据帧作为数据。当使用statsmodels的用户或包已经准备好数据时,这是主界面。statsmodels接受它们的本来面目,不会改变它们。公式接口,例如小写的
ols
,它是
ols的别名。from_formula
,包含一些数据准备步骤,如添加截距和将分类变量转换为一些数字编码,例如创建虚拟变量。