似然比检验 statsmodels

5 投票
1 回答
7095 浏览
提问于 2025-04-18 07:17

在statsmodels这个库中,普通最小二乘法(OLS)有实现似然比检验。

OLSResults.compare_lr_test(restricted)

但是广义线性模型(GLM)就没有这个功能。我试着通过复制OLS的实现来做:

from scipy import stats

llf_full = results.llf
llf_restr = results_res.llf
df_full = results.df_resid 
df_restr = results_res.df_resid 
lrdf = (df_restr - df_full)
lrstat = -2*(llf_restr - llf_full)
lr_pvalue = stats.chi2.sf(lrstat, df=lrdf)
lr_pvalue

这看起来很简单,但因为没有这个功能让我有点怀疑。这是对的吗?

1 个回答

4

我觉得没有什么问题。

广义线性模型是一种最大似然模型,前提是使用的尺度符合所选的模型类型。

目前,statsmodels.GLM并没有实现准似然方法,这种方法允许尺度与基础模型的尺度有所不同,比如说过度离散的泊松分布,这样就可以使用似然比检验。

实现细节:compare_lr_test本来是打算为所有的似然模型添加的,但我没有检查它在所有继承自这个模型的情况下是否正确(或者是否会抛出异常)。

撰写回答