得分Statsmodels Logit

时间:2014-11-13 23:39:21

标签: python statsmodels predict

我似乎无法弄清楚逻辑回归模型得分的语法。

logit = sm.Logit(data[response],sm.add_constant(data[features]))
model = logit.fit()
preds = model.predict(data[features])

这是我得到的追溯(抱歉丑陋的格式,不知道如何解决它......)


  2     logit = sm.Logit(data[response],sm.add_constant(data[features]))
  3     model = logit.fit()

----> 4 preds = model.predict(data [features])

878             exog = dmatrix(self.model.data.orig_exog.design_info.builder,
879                     exog)

- > 880返回self.model.predict(self.params,exog,* args,** kwargs)     881     882

376             exog = self.exog
377         if not linear:

- > 378返回self.cdf(np.dot(exog,params))     379其他:     380返回np.dot(exog,params)

ValueError:矩阵未对齐

2 个答案:

答案 0 :(得分:2)

您在估算中包含常数,但不在预测中。

用于预测的解释变量需要相同数量的变量,包括在估算中使用的常数:

preds = model.predict(sm.add_constant(data[features]))

向数据框添加常量列通常很有用,因此我们有一组一致的变量,包括常量。

相关:如果已在模型中使用了公式接口,那么公式接口也会在预测调用中执行一些自动转换。

答案 1 :(得分:1)

看起来您还需要将常量添加到predict方法中。假设您正在使用pandas,那么可能更容易做到

data['constant'] = 1

并将其添加到您的功能列表中。或者,您可以使用statsmodels.formula.api.logit

处的公式界面