python - 如何使用 statsmodels mnlogit 模型指定预测?

标签 python pandas prediction statsmodels

我正在运行 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 在第一条评论中给出,谢谢。

最佳答案

I've just submitted this as a bug 。事实证明,mnlogit

中没有针对公式行为的单元测试

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

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

关于python - 如何使用 statsmodels mnlogit 模型指定预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44199054/

相关文章:

python - 我如何正确使用网址总是显示导入错误

python - 尝试将数据帧写入 .CSV - 权限被拒绝

python - 使用 xml.etree.ElementTree 在 Python 中进行简单的 dom 遍历

python - 如何在 Python/Pandas 中将变量设置为 "Today' s"date

随机森林包预测,newdata 参数?

r - 收到警告 : "' newdata' had 1 row but variables found have 32 rows"on predict. lm

python - Apache/WSGI 进程死亡

python - 我怎样才能让 pandas 时间戳抵消一定的月数?

python - 有没有办法指定使用多索引 pandas 数据框计算滚动平均值的日频率?

triggers - Zabbix - timeleft 和预测触发器不起作用