【问题标题】:How to specify a prediction using statsmodels mnlogit model?如何使用 statsmodels mnlogit 模型指定预测?
【发布时间】:2017-05-26 10:17:52
【问题描述】:

我正在运行mnlogit 回归,我想做一些预测。 我的数据位于一个名为 state 的 pandas DataFrame 上,其中包含两列 age 和 final_state(以及其他)。

import statsmodels.formula.api as smf
result = smf.mnlogit(
    formula = 'final_state ~ age ',
    data = state[['age', 'final_state']],
    ).fit()

params = result.params
print result.summary()

我可以通过运行对用于估计的样本进行预测:

prediction = result.predict()

但是,如果我想使用子样本或以下行中的任何其他数据:

prediction = result.predict(exog = state[['age']].query('age > 80'))
prediction = result.predict(exog = dict(age = [80, 90]))
prediction = result.predict(
    exog = dict(age = state[['age']].query('age > 80').values))
prediction = result.predict(exog = state[['age']])

我总是以同样的错误结束:

File "/usr/lib/python2.7/dist-packages/statsmodels/base/model.py", line 772, in predict
exog = dmatrix(self.model.data.design_info.builder,
AttributeError: 'PandasData' object has no attribute 'design_info'

如何计算子样本或人工数据的预测?

answer 是 jeffrey_the_wind 在第一条评论中给出的,谢谢。

【问题讨论】:

标签: python pandas prediction statsmodels


【解决方案1】:

I've just submitted this as a bug。原来mnlogit中没有对公式行为的单元测试

不转换数据(而是手动添加常量)是一种解决方法:

from statsmodels.tools import add_constant
result.predict(add_constant(state['age']), transform=False)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-22
    • 2019-07-11
    • 2015-11-18
    • 2021-12-09
    • 2013-05-15
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多