You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Statsmodels MixedLM拟合后的模型参数数组以调用predict方法?

解决statsmodels MixedLM.predict的参数困惑

嘿,别担心,这个问题其实很容易解决!你已经通过model.fit()得到了result对象,它里面就藏着你需要的参数数组——直接用result.params就可以了,根本不用额外去计算或者提取。

先给你补全代码,一看就懂:

import statsmodels.api as sm

# 你的原有拟合代码
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()

# 获取predict需要的参数数组
fitted_params = result.params

# 1. 对训练数据做预测(两种方式都可以)
# 方式一:手动传入参数
train_preds = result.predict(fitted_params)
# 方式二:更省事,默认会用拟合好的参数,不用手动传
train_preds = result.predict()

# 2. 对新数据做预测
# 假设你有新数据集new_data,特征要和训练时保持一致
new_X = new_data[['var1', 'var2', 'var3']]
# 如果新数据也有分组信息,记得传入groups参数
new_groups = new_data['person_id']
new_preds = result.predict(fitted_params, exog=new_X, groups=new_groups)

这里再额外提两个关键点:

  • result.params包含的是模型的固定效应参数,随机效应的估计值存在result.random_effects里,但predict方法会自动结合这两部分来计算预测值,不用你手动处理随机效应的参数。
  • 如果你不给predict传params,它默认就会使用拟合好的result.params,所以大部分情况下直接调用result.predict()就足够了,除非你想手动指定不同的参数来做模拟预测。

内容的提问来源于stack exchange,提问作者Roald Schuring

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:23:11