是否有必要向仅在分类变量上运行的 logit 模型添加常量?

问题描述 投票:0回答:0

我有一个看起来像这样的数据框:

我正在运行一个关于流体的逻辑模型作为因变量,并排除

vp
perip

model = smf.logit('''fluid ~ C(examq3_n, Treatment(reference = 2.0)) + C(pmhq3_n) + C(fluidq3_n) + C(mapq3_n, Treatment(reference = 3.0)) + 
                  C(examq6_n, Treatment(reference = 2.0)) + C(pmhq6_n) + C(fluidq6_n) + C(mapq6_n, Treatment(reference = 3.0)) +
                  + C(case, Treatment(reference = 2))''',
                      data = case1_2_vars).fit()
print(model.summary())

我得到以下结果:

我想知道我是否需要向数据添加一个常量,如果需要,怎么做?我尝试在名为

const
的数据框中添加一列,它等于
1
,但是当我将
const
添加到 logit 方程时,我得到
LinAlgError: Singular Matrix,
并且我不知道如何使用
smf.add_constant() 添加它
因为我必须在等式中指定分类变量及其各自的参考编号,而不是分别定义
x
y
并简单地将它们输入到
smf.logit()
调用中。

我的问题是:a)我需要添加一个常量,b)如何添加?网上有一些链接似乎暗示基于分类变量的 logit 模型可能没有必要,但如果这是最佳实践,我宁愿这样做。

我也想知道,statsmodels会自动包含一个常量吗?因为

Intercept
列在结果中。

python pandas logistic-regression statsmodels
© www.soinside.com 2019 - 2024. All rights reserved.