如何在 OLS 模型中快速获得预测值?

How to get a quick predict value in OLS model?

如何从我的 ols 模型中快速获得预测值。例如

import statsmodels.formula.api as sm

model = sm.ols(formula="price ~ size + year", data=df_c).fit()

model.predict([25,1990]) #(should return predicted price value)

当我 运行 model.predict([25,1990]) 时如何获得预测值,其中 25 是大小,1990 是年份?

编辑:

我收到的错误是“PatsyError:预测要求您在从模型进行预测时使用 DataFrame 这是使用公式 api.

创建的

patsy返回的原始错误信息是: 错误评估因素:TypeError:列表索引必须是整数或切片,而不是 str'

有没有办法只 运行 model.predict([25,1990])

的简单代码

提前致谢!

您不能使用您提供的代码执行此操作,因为您正在使用 statsmodels.formula.api。我能提供的最简单的解决方案是使用快速字典:

import statsmodels.formula.api as sm
import pandas as pd
import numpy as np

df_c = pd.DataFrame(np.random.randn(10, 3))
df_c.columns = ['price','size','year']
model = sm.ols(formula='price ~ size + year', data=df_c).fit()

model.predict({'size':25,'year':1990})[0]
-165.2345445772976

我创建了一个模拟数据框来证明它有效,但你只需要最后一行:model.predict({'size':25,'year':1990})[0]