方法选择 ·
逻辑回归模型怎么选:二元、多分类与有序 Logistic 决策指南
逻辑回归模型怎么选?按因变量类别数与顺序区分二元、多分类和有序 Logistic,并说明 ChatSRS 当前样本、编码、参考类别、输出与假设边界。
逻辑回归模型怎么选,首先看因变量有几个类别、类别是否有真实顺序,再确定事件、参考类别和编码。不能在看到结果后按哪个模型 p 值更小来换模型。
三步选对 Logistic
- 因变量只有两个类别,例如“未复购/复购”,选择二元 Logistic。
- 因变量有三个及以上类别,而且没有自然顺序,例如“步行/公交/地铁”,选择多分类 Logistic。
- 因变量有三个及以上类别,而且有明确顺序,例如“低/中/高满意度”,才考虑有序 Logistic。
数字代码本身不创造顺序。把“东部/中部/西部”编码成 1/2/3,并不会让它变成有序因变量;同样也不能把类别代码直接当连续 Y 做线性回归。
| 因变量结构 | 当前分析入口 | 系数比较对象 |
|---|---|---|
| 两个互斥类别 | binary_logistic_regression | 事件 1 相对事件 0 |
| 三类及以上、无序 | multinomial_logistic_regression | 每个非参考类相对参考类 |
| 三类及以上、有序 | ordinal_logistic_regression | 跨累积切点共享的斜率 |
二元 Logistic 的当前范围
二元入口要求 Y 恰好有两个取值,完整案例至少 30 行。若 Y 不是 0/1,当前实现按排序后较小值映射为 0、较大值映射为 1,并给出编码提示。
输出包括:
- 空模型与最终模型的似然比检验、-2LL、AIC 和 BIC;
- B、SE、z、Wald χ²、渐近 p、OR 和 OR 的 95% CI;
- McFadden、Cox-Snell 和 Nagelkerke 伪 R²;
- 最终分析 N。
可使用全进入、向前、向后或逐步变量选择。数据驱动筛选会改变常规 p 值的解释,优先使用事前确定的变量规格。
文本分类自变量可能按排序值自动编码成 1、2、3……,这不是名义变量的正确哑变量方案。分类预测变量应事先建立有明确参考组的虚拟变量。
多分类 Logistic 的当前范围
多分类入口要求 Y 至少有三个类别,完整案例至少 50 行,基于 statsmodels MNLogit。类别过多或某一类样本很少时会警告。
当前实现把排序后的最小类别记录为参考类别,并按每个非参考类别相对参考类别输出 B、SE、z、Wald、渐近 p、OR 与 95% CI,同时提供似然比、AIC/BIC、三类伪 R²和 N。
要注意两个边界:
- 数值型 Y 可能保留原始数字进入模型,而页面记录的标签映射与实际结果列仍需逐项核对;
- 当前没有直接输出 IIA 假设诊断,模型成功拟合不等于 IIA 已满足。
每个 OR 必须带比较对象,例如“地铁相对步行”。不同结果列不能脱离共同参考类直接比较。
有序 Logistic 的当前范围
有序入口要求 Y 至少三个有序类别。最终完整案例少于 20 行会停止;20—29 行可继续但会给出小样本警告。当前实现按排序后的类别编码为 0...K-1,并用 statsmodels OrderedModel(..., distr="logit") 拟合。
输出包括共同斜率的 B、SE、z、Wald、渐近 p、OR 与区间,各累积切点的阈值参数,似然比、AIC/BIC、伪 R²和 N。
有序 Logistic 依赖比例优势或平行线假设,但当前不直接检验该假设。收敛、共同斜率表或阈值输出都不能替代 Brant 检验或其他适用诊断。若假设不成立,应在预先计划和真实诊断基础上评估部分比例优势、广义有序或多分类模型。
阈值参数不是“某个类别相对参考类别”的普通 OR,不应与多分类 Logistic 的系数表混读。
编码是模型合同的一部分
事件类别、参考类别和类别顺序都必须人工确认,并写进报告。建议在建模前保存:
- Y 的原始代码与标签;
- 二元模型的事件 1;
- 多分类模型的参考类别;
- 有序模型从低到高的顺序;
- 每个分类预测变量的虚拟变量和参考组;
- 连续变量的单位,例如每 1 岁还是每 10 岁。
当前三个入口都会按所选字段删除含缺失的整行。最终 N、各类别人数、缺失删除数和类别稀疏程度应同时报告。
不能按 p 值换模型
方法选择发生在看结果之前。不能按某个 p 值不显著就把有序模型换成多分类模型,也不能把三分类 Y 合并成二元 Y 只为获得星号。
合理的模型变更需要来自:
- 发现类别本来没有顺序;
- 比例优势假设的真实诊断不支持;
- 类别过稀导致模型无法识别;
- 研究问题或测量定义发生了可说明的改变。
任何变更都应保留原方案、原因和全部结果,避免只展示最有利的模型。
一个可复核的输入示例
假设 renew 是“否/是”,travel_mode 是“步行/公交/地铁”,satisfaction 是“低/中/高”:
二元模型
对 renew 做二元 Logistic,先展示事件编码并确认“是”为 1。采用全进入法,报告似然比、B、SE、z、Wald、渐近 p、OR、95% CI、伪 R²和最终 N。
多分类模型
对无序的 travel_mode 做多分类 Logistic,明确“步行”为参考类别;逐类报告公交 vs 步行、地铁 vs 步行的系数和 OR。分类预测变量使用预先建立的哑变量。
有序模型
对低 < 中 < 高的 satisfaction 做有序 Logistic,先核对类别顺序;报告共同斜率、阈值、OR/CI、拟合与 N。说明当前没有直接完成比例优势检验。
OR 怎么解释
若二元结果 OR = 1.30,可写“其他变量保持不变时,X 每增加一个单位,事件优势比估计乘以 1.30”。不能直接写成概率增加 30%,也不能自动写成因果影响。
多分类结果必须写“类别 A 相对参考类别 B 的 OR”。有序结果表示跨累积切点共享的关系;类别顺序反转时,系数方向也会改变。
分类稀疏、完全分离、高度共线或标准误异常巨大时,优先排查数据与识别问题,不要只复制 OR。
报告模板
因变量 [名称] 包含 [ ] 个 [二元/无序/有序] 类别,因此采用 [ ] Logistic。
事件类别/参考类别/类别顺序设为 [ ],分类预测变量以 [ ] 为参考组。
分析按完整案例进行,最终 N = [ ],各类别人数为 [ ]。
模型似然比检验为 χ²([df]) = [ ],p = [ ]。
[变量] 的 B = [ ],SE = [ ],Wald χ² = [ ],p = [ ],
OR = [ ],95% CI [ , ]。
[有序模型追加] 当前输出未直接检验比例优势假设,
该假设由 [工具与方法] 另行核对。
常见问题 FAQ
Q1:因变量编码成 1、2、3,就应该做有序 Logistic 吗?
不一定。数字代码不等于有序测量;只有类别含义存在可辩护的高低顺序时,才考虑有序 Logistic。
Q2:二元 Logistic 默认把哪个类别当作事件?
若 Y 不是 0/1,当前实现按排序后的较小值映射为 0、较大值映射为 1。必须把实际映射与代码本逐项核对,不能只看系数正负。
Q3:有序 Logistic 成功收敛就代表比例优势假设成立吗?
不代表。当前入口没有直接完成 Brant 或其他比例优势检验;收敛只说明本次拟合过程得到结果。
Q4:模型不显著时能换一种 Logistic 吗?
不能按 p 值换模型。模型类型应由类别数量、顺序、编码和研究问题预先决定;任何变更都要保留原因和完整结果。
如果还不确定应使用均值比较、线性回归还是类别模型,可先读统计方法选择指南。二元模型的输出字段与编码风险可继续查看二元 Logistic 回归能力边界。
核对因变量结构和代码本后,可进入 ChatSRS 运行对应的 Logistic 分析。结果必须与事件、参考类别、类别顺序和完整案例 N 一起解释。