statsmodels ols 不包括所有分类值

数据挖掘 Python 回归 线性回归
2022-01-30 13:00:31

我正在使用分类变量作为预测变量进行普通最小二乘回归(在带有 statsmodels 的 python 中)。分类变量可以有 5 个值。然而,在运行回归之后,输出只包括其中的 4 个。

这是我正在运行的内容:

>>> from statsmodels.formula.api import ols
>>> model = ols("normalized_score ~ C(general_subreddit)", data=df_feature)
>>> results = model.fit()
>>> results.summary()

最后一个命令的输出包括表中的以下行: ols 输出

我可以检查每个分类变量的计数,如下所示:

>>> from collections import Counter
>>> Counter(df_feature["general_subreddit"])
Counter({nan: 20,
     'community': 4159,
     'ending_addiction': 3819,
     'mental_health': 4650,
     'other': 6920,
     'relationships': 4318})

忽略 NaN,为什么“社区”的分类值没有出现在模型摘要中?

1个回答

当使用具有 N 个级别的分类变量构建逻辑模型时,它仅考虑 N-1 个级别,因为剩余级别用作模型的参考。

这对您的整个模型意味着什么,每个级别(当剩余变量保持不变时)都与参考级别进行比较。

在您的示例中,“社区”级别用作参考。因此,ending_addiction 对因变量的贡献比“社区”多 0.0749 个单位。

如果不清楚,请点击它-> https://community.alteryx.com/t5/Alteryx-Designer-Discussions/In-the-Logistic-Regression-Report-Factor-Missing/mp/10100/highlight/true# M5169