使用statsmodels线性回归预测特定向量x的结果

时间:2016-06-29 11:39:16

标签: python pandas scikit-learn statsmodels

我已经使用OLS为大量数据成功构建了一个模型。

results = smf.ols(formula='ind ~ Age + C(County) + C(Class)',  data=df).fit()

我想实现一种方法,允许用户输入向量X并让它根据回归返回y。我查看了statsmodels的“预测”和“预测”功能,但它似乎并不是我想要的。

例如,我想做的是:

 ## Although the following is wrong, It shows what I'm trying to do:
 def forecast_y(X):
      return results.forecast(X) 


 ## example:
 print forecast_y([1, 3, 4]) 
 # the model should return
 4.53

1 个答案:

答案 0 :(得分:1)

如果我能做到这一点,您不希望对y进行样本内预测,这就是您不想使用predict的原因方法;相反,您只是希望能够插入任意x值并根据预测的系数获取y的值?

如果是这种情况,请继续您的示例:

params = results.params   #vector of your coefficients
arbitrary_x = np.array([.5, .5, .5...]) #whatever x values you want to test, with the constant first

assert(len(params) == len(arbitrary_x))

arbitrary_y = (params * arbitrary_x).sum()

我会理解这对读者的影响,但要谨慎使用。