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

statsmodels的MixedLMResults返回BIC为NaN的原因及手动计算方法

问题原因
  • 核心原因是statsmodels 0.14.0之前的版本存在已知bug:当为混合线性模型指定包含随机斜率的re_formula时,内置的bic属性计算逻辑缺失,会直接返回nan。
  • 可先自行排除其他异常:调用print(mdf.summary())检查拟合结果的收敛状态,若收敛状态为Converged: True、参数估计无异常值,即可确认是包本身的bug导致。
手动计算BIC的方式

线性混合效应模型的BIC通用计算公式为:

BIC = -2 * log_likelihood + k * ln(n)

各参数含义及获取方式:

  • log_likelihood:模型的对数似然值,可直接通过mdf.llf获取
  • k:模型的自由参数总数,可直接通过mdf.df_modelwc属性获取,无需手动计数。你当前的模型参数包括2个固定效应系数、2x2随机效应协方差矩阵的3个自由参数、1个残差方差,总计6个参数,和mdf.df_modelwc返回值一致。
  • n:总观测样本量,即len(df)

手动计算代码示例:

import numpy as np

bic_manual = -2 * mdf.llf + mdf.df_modelwc * np.log(len(df))

上述计算逻辑和statsmodels 0.14.0及以上版本修复后的内置bic属性输出完全一致。

内容的提问来源于stack exchange,提问作者Elşən Kazım

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:15:03