Statsmodels混合线性模型预测

4
我正在使用Python中的statsmodels MixedLM包估算混合线性模型。在拟合模型后,我现在想进行预测,但是我不太理解'predict'方法。 statsmodels文档(http://www.statsmodels.org/dev/generated/statsmodels.regression.mixed_linear_model.MixedLM.predict.html)建议predict方法需要一个包含已估计模型的参数的数组。如何检索此数组?
y = raw_data['dependent_var']
X = raw_data[['var1', 'var2', 'var3']]
groups = raw_data['person_id']

model = sm.MixedLM(endog=y, exog=X, groups=groups)
result = model.fit()
2个回答

7

我知道我有点晚了,但如果有其他人有同样的问题,回答还是很好的。所需参数在结果对象中可用。它们是result.fe_params。

model.predict(reresult.fe_params, exog=xest)

或者使用结果对象。
result.predict(exog=xtest)

如果您能看到这个信息,您是否知道该方法是基于固定效应还是基于固定和随机效应进行预测,以便预测结果针对每个组别具体化?如果它同时考虑了固定和随机效应,那么它如何知道在哪个组中预测哪个个体? - user11806155
predict函数的文档如下所述: “拟合值的数组。请注意,这些预测值仅反映模型的固定效应均值结构。” - Berkan Erol

1
回答用户11806155的问题,如果要纯粹基于固定效应进行预测,可以执行以下操作:
model.predict(reresult.fe_params, exog=xtest)

要对随机效应进行预测,您只需更改参数并指定特定的组名称(例如“group1”)即可。

model.predict(reresult.random_effects["group1"], exog=xtest). 

我认为测试数据中的特征顺序应该与您在模型参数中给出的顺序相同。您可以将它们相加,以便针对一个组获得具体预测结果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接