教程 ·

判别分析用 AI 一句话完成 — Fisher 判别、分类准确率、与 Logistic 回归的区别

判别分析完整教程:用 AI 一句话完成 Fisher 线性判别、计算 Wilks' Lambda、分类准确率矩阵和留一法交叉验证,并给出符合 APA 7th 格式的论文报告模板,以及与 Logistic 回归的系统性对比。

需要把样本自动归入已知的几个组,还要告诉你哪些变量"最有判别力"?这篇教程教你用 AI 一句话跑完判别分析全流程:Wilks' Lambda、标准化判别系数、分类准确率矩阵、留一法交叉验证,以及可直接贴进论文的 APA 报告句式。


分组预测:判别分析解决什么问题?

在医学、教育、市场研究和管理学中,研究者常常面对这样一类问题:

  • 根据临床指标,预测患者属于哪个疾病亚型(2 型糖尿病 / 代谢综合征 / 健康对照)
  • 根据心理测量分数,将学生分入"高风险辍学""中风险""低风险"三组
  • 根据消费行为指标,把顾客归入"高价值""中价值""低价值"客户群

这些场景的共同特征是:因变量是已知分组的类别变量(2 组或多组),自变量是一批连续测量指标,研究目标有两个——

  1. 判断自变量整体能否显著区分各组(用 Wilks' Lambda 检验)
  2. 对新样本进行分类预测(给出类别归属和分类准确率)

这正是**判别分析(Discriminant Analysis)**的适用场景。判别分析由 Ronald Fisher 于 1936 年提出,是多元统计中处理分类问题的经典方法,SPSS、R(MASS::lda)和 Stata(discrim lda)均原生支持。


判别分析核心概念

Fisher 线性判别函数

Fisher 判别的核心思想是:找到一个线性组合,使得组间差异最大化,同时组内差异最小化。

对 p 个自变量,判别函数的形式为:

D = b0 + b1*X1 + b2*X2 + ... + bp*Xp

其中 D 是判别得分(discriminant score),每个新样本的 D 值落在哪个组的得分分布内,就被归入该组。

  • 2 组判别:只有 1 条判别函数,D 大于截断值 → 组 1,小于截断值 → 组 2
  • k 组判别:最多有 min(k-1, p) 条判别函数,每条函数对应 1 个判别维度(类似主成分方向)

Wilks' Lambda:判别能力的整体检验

Wilks' Lambda(Lambda = 组内离差矩阵行列式 / 总离差矩阵行列式)是衡量判别函数整体效果的核心统计量:

  • Lambda 接近 1:组间差异小,自变量整体判别能力弱
  • Lambda 接近 0:组间差异大,自变量整体判别能力强

Lambda 转化为近似 F 分布(或卡方分布)后进行显著性检验:p < .05 表示判别函数整体有效。

标准化判别系数:哪个变量最重要?

类似回归分析中的标准化 Beta,**标准化判别系数(Standardized Discriminant Coefficients)**剔除了量纲差异,可直接比较各自变量对判别函数的相对贡献:绝对值越大,判别作用越强。

**结构系数(Structure Coefficients / 因子载荷矩阵)**是各原始变量与判别函数得分的相关系数,绝对值 >= .30 通常视为对该判别维度有实质性贡献(Tabachnick & Fidell, 2019)。

分类准确率与交叉验证

分类准确率矩阵(混淆矩阵)对角线之和 / 总样本数即为整体正确分类率

留一法交叉验证(Jack-knife / LOOCV):每次排除 1 个样本建模、预测该样本类别,循环 N 次后得到无偏的分类准确率估计,比训练集内准确率更能反映模型泛化能力,是报告分类精度的首选指标。


案例数据:糖尿病亚型分类研究

研究背景

某内分泌科研究团队对 180 名 40-65 岁成年人进行横断面测量,根据糖化血红蛋白(HbA1c)和口服葡萄糖耐量测试(OGTT),将其分为三组:

group    分组(1 = 健康对照,2 = 糖耐量受损,3 = 2 型糖尿病)  -- 分组因变量
fasting  空腹血糖(mmol/L)
hba1c    糖化血红蛋白(%)
bmi      体质指数 BMI(kg/m^2)
waist    腰围(cm)
homa_ir  胰岛素抵抗指数 HOMA-IR(连续)

研究问题:上述 5 项代谢指标能否有效区分三个糖代谢状态组?各指标的判别贡献度如何?


用 AI 一句话完成判别分析

chatsrs.com 上传数据后输入:

"以 group 为分组变量(三组:健康对照、糖耐量受损、2 型糖尿病),以 fasting、hba1c、bmi、waist、homa_ir 为自变量,做线性判别分析(LDA)。 请输出:

  1. 各组描述统计(M、SD)和单变量 F 检验
  2. Box's M 检验(方差-协方差矩阵齐性)
  3. Wilks' Lambda + 卡方检验(判断判别函数显著性)
  4. 特征根(Eigenvalue)和方差解释比例
  5. 标准化判别系数 + 结构系数矩阵(因子载荷矩阵)
  6. 分类函数系数(Fisher 线性分类函数,每组一个)
  7. 分类准确率矩阵(原始 + 留一法交叉验证)
  8. APA 格式中文文字描述"

60 秒后,ChatSRS 完整输出以下八部分结果。


输出结果怎么读

输出 1: 各组描述统计 + 单变量 F 检验

表 1  各组代谢指标描述统计(N = 180)

变量              健康对照(n=72)    糖耐量受损(n=58)   2型糖尿病(n=50)   F(2,177)      p
                  M     SD            M     SD              M     SD
空腹血糖(mmol/L)5.12  0.41          6.02  0.38            8.47  1.12           382.1       <.001
HbA1c(%)        5.31  0.28          5.98  0.32            7.62  0.94           451.7       <.001
BMI(kg/m^2)    23.4  2.8           26.1  3.2             28.6  3.9             47.3        <.001
腰围(cm)        80.2  7.4           88.6  8.1             95.4  9.2             60.8        <.001
HOMA-IR          1.84  0.62          3.12  0.98            5.41  1.73           187.6       <.001

注:M = 均数,SD = 标准差;F 检验各变量均具统计学意义(p < .001)。

单变量 F 检验 p 值显著,表明五项指标在三组间均存在差异,可纳入判别分析。


输出 2: Box's M 检验(协方差矩阵齐性)

Box's M = 38.42,F(20, 124867) = 1.86,p = .012

Box's M 检验对样本量和偏态分布极敏感,轻微违反(p 在 .001-.05 之间)在实际中通常可接受,尤其当各组样本量差异不大时(n_最大/n_最小 < 1.5)。本例比值为 72/50 = 1.44,判别结果仍具稳健性。若严重违反(p < .001),可考虑二次判别分析(QDA)。


输出 3: Wilks' Lambda + 判别函数显著性

表 2  判别函数显著性检验

函数       特征根    方差解释比(%)   累积(%)   Wilks' Lambda   chi-squared   df    p
1          4.831     87.3              87.3         0.151           319.2          10    <.001
2          0.701     12.7              100.0        0.588           95.3            4    <.001

注:两条判别函数均显著(p < .001),共解释全部判别信息。

怎么读

指标含义本例解读
特征根(Eigenvalue)判别函数解释的组间离差与组内离差之比,越大越有区分力函数 1 = 4.831,远大于函数 2
方差解释比本条函数解释的总判别方差比例函数 1 解释 87.3%,是主判别维度
Wilks' Lambda0~1;越小判别力越强含函数 1 时 Lambda = 0.151,极低,区分力强
chi-squared 检验Lambda 转化后的显著性检验两条函数均 p < .001

输出 4: 标准化判别系数 + 结构系数

表 3  标准化判别系数与结构系数矩阵

变量              函数 1(标准化系数)   函数 1(结构系数)   函数 2(标准化系数)   函数 2(结构系数)
空腹血糖           0.521                  0.892*               0.138                  0.261
HbA1c              0.468                  0.974*               0.082                  0.194
HOMA-IR            0.312                  0.783*               0.429                  0.621*
腰围               0.178                  0.561*               0.387                  0.538*
BMI                0.104                  0.392*              -0.318                  0.181

注:* 结构系数绝对值 >= .30,对本判别维度有实质性贡献。
    标准化系数剔除量纲差异,可直接比较同一函数内各变量的相对贡献。

解读要点

  • 函数 1(主判别轴,解释 87.3%):五项指标的结构系数均 >= .30,其中 HbA1c(.974)和空腹血糖(.892)对健康对照 vs 糖尿病的区分贡献最大
  • 函数 2(次判别轴,解释 12.7%):HOMA-IR(.621)和腰围(.538)相对突出,主要捕捉胰岛素抵抗相关的健康对照 vs 糖耐量受损差异

输出 5: 分类准确率矩阵

表 4  判别分类结果(原始 + 留一法交叉验证)

                     预测:健康对照    预测:糖耐量受损    预测:2型糖尿病    正确率
原始分类结果
  实际:健康对照        68                3                  1               94.4%
  实际:糖耐量受损       4               50                  4               86.2%
  实际:2型糖尿病        0                2                 48               96.0%
  总体正确率                                                                 92.2%

留一法交叉验证
  实际:健康对照        65                5                  2               90.3%
  实际:糖耐量受损       5               48                  5               82.8%
  实际:2型糖尿病        1                3                 46               92.0%
  总体交叉验证正确率                                                         88.3%

注:对角线数字 = 正确分类样本数;报告论文时应优先报告留一法交叉验证正确率(88.3%),以避免过拟合乐观估计。

论文里怎么报告(APA 7th 格式)

APA 7th 对判别分析的报告要求:需报告 Wilks' Lambda、卡方统计量及 df、显著性水平、标准化判别系数或结构系数,以及分类准确率(优先交叉验证)


方法节(简述)

采用线性判别分析(LDA)检验五项代谢指标(空腹血糖、HbA1c、BMI、腰围、HOMA-IR)对三个糖代谢状态组(健康对照、糖耐量受损、2 型糖尿病)的区分能力。以结构系数(绝对值 >= .30)确定各变量对判别函数的实质性贡献,以留一法(jack-knife)交叉验证评估分类准确率。检验水准 alpha = .05(双尾),统计分析以 SPSS 26.0 实施。


结果节(判别分析部分)

线性判别分析共提取两条判别函数。第一条判别函数解释了总判别方差的 87.3%,Wilks' Lambda = 0.151,chi-squared(10) = 319.2, p < .001;第二条函数解释了剩余方差的 12.7%,Wilks' Lambda = 0.588,chi-squared(4) = 95.3, p < .001(见表 2)。两条函数均达统计显著水平,表明五项代谢指标整体上能有效区分三个糖代谢状态组。

结构系数分析显示,第一判别函数主要由 HbA1c(r = .974)和空腹血糖(r = .892)主导,反映血糖调节功能;第二判别函数主要由 HOMA-IR(r = .621)和腰围(r = .538)主导,反映胰岛素抵抗与腹型肥胖维度(见表 3)。

原始分类总体准确率为 92.2%;留一法交叉验证准确率为 88.3%,其中 2 型糖尿病组正确率最高(92.0%),糖耐量受损组最低(82.8%)。


APA 报告格式规范总结

要素格式示例
Wilks' LambdaWilks' Lambda = 0.151
卡方检验chi-squared(10) = 319.2, p < .001
方差解释比解释了总判别方差的 87.3%
结构系数r = .974(注意小数点前不加 0)
分类正确率留一法交叉验证总体准确率 = 88.3%
效应量特征根 = 4.831(无 Cohen 阈值,结合方差解释比解读)

特别提示:判别分析报告中不使用 OR、HR 或 RR 等比值效应量——这些是 Logistic 回归或生存分析的专属指标。判别分析的效应用 Wilks' Lambda、特征根、方差解释比和分类准确率来量化。


判别分析 vs Logistic 回归:系统性对比

这是许多研究者遇到分组预测问题时的第一个疑问:**我该用判别分析还是 Logistic 回归?**两者的适用场景有实质性差异,不可混用。

核心区别一览

对比维度线性判别分析(LDA)Logistic 回归
目标找最优判别维度 + 分类预测估计结局概率 + 推断影响因素
输出核心判别函数、标准化系数、分类矩阵OR 值及 95% CI、Wald 检验
效应量指标Wilks' Lambda、特征根、分类准确率OR(优势比)、Nagelkerke R^2、AUC
因变量类型名义类别(2 组或多组)二分类(标准);多分类需 Multinomial Logistic
自变量假设要求自变量多元正态分布(MVN)对自变量分布无严格要求
组间协方差假设要求各组协方差矩阵相等(Box's M)无此假设
样本量要求每组 >= 20,每个变量 >= 5 个样本EPV >= 10(每变量事件数)
混杂控制通过判别函数权重隐性控制通过 OR 精确量化每个变量的独立效应
解释重点"这些变量共同构成哪几个判别维度""哪个变量是独立危险/保护因素"
论文用途分类、模式识别、多组区分影响因素分析、危险因素推断

如何选择?

选判别分析的场景

  • 研究目标是分类预测(构建分类规则,将新样本归入已知组)
  • 关心的是"哪几个维度能最好地区分各组",而非单个变量的独立效应
  • 因变量是 3 组及以上的多分类(Logistic 多项式回归虽可处理,但判别分析更直观)
  • 自变量满足多元正态性(连续变量为主)

选 Logistic 回归的场景

  • 研究目标是推断影响因素,需要量化每个变量的 OR 值和 95% CI
  • 因变量只有 2 分类,且关注各自变量的独立效应大小
  • 自变量中含有大量分类变量(不满足 LDA 的多元正态假设)
  • 需要建立预测概率模型(输出每个样本属于某组的概率值)
  • 审稿人或期刊明确要求报告 OR 值(流行病学、临床医学常见要求)

关键口诀:需要"OR 值 + CI"说明谁是独立危险因素 → Logistic 回归;需要"分几个维度 + 分类准确率"说明这批变量整体区分能力 → 判别分析。两者均需要时,可先做判别分析了解整体结构,再做 Logistic 做因素推断。


判别分析前提条件检验

在正式报告结果前,需检验三个前提条件。ChatSRS 对以下检验全部自动执行:

1. 多元正态性(MVN)

Henze-Zirkler 检验或 Royston 检验是常用方法。轻微偏离正态时,判别分析仍具较好稳健性(样本量 >= 20/组);严重违反时可考虑:

  • 对偏斜变量做对数或 Box-Cox 变换后重跑
  • 改用不依赖正态假设的分类方法(如二次判别 QDA、随机森林)

2. 组间协方差矩阵齐性(Box's M 检验)

  • 不显著(p > .05):假设满足,标准 LDA 适用
  • 轻微显著(.001 < p < .05):通常可接受,注意报告检验结果
  • 严重显著(p < .001):建议改用二次判别分析(QDA),它允许各组有不同协方差矩阵

3. 多重共线性

自变量之间存在高相关(r > .90)会导致判别系数不稳定。检查相关矩阵,若存在高相关变量对,优先保留理论意义更强的变量,或先做 PCA 降维再输入判别函数。


常见问题 FAQ

Q1:判别分析的"分类准确率"越高越好吗?90% 算合格吗?

A:分类准确率的好坏取决于基准比例(chance level)。若三组样本量均等(各 33%),随机猜测的准确率为 33.3%。"准确率 90%"远高于基准,通常属于优秀结果。判断标准参考 Huberty(1994):准确率超过基准的 25% 以上(即本例基准 33% + 25% = 58%)才算有实质意义。此外,始终以交叉验证准确率为准,原始准确率因样本内估计存在乐观偏差。

Q2:判别分析能用于 2 组以上,Logistic 回归怎么处理多分类?

A:判别分析天然支持 k >= 2 的多分类,输出多条判别函数(最多 min(k-1, p) 条)。Logistic 回归处理多分类需要改用多项式 Logistic 回归(Multinomial Logistic Regression),以某一组为参照类,输出其他各组相对参照组的 OR 值。两种方法均可在 ChatSRS 一句话完成,只需告诉 AI 分组数量即可。

Q3:标准化判别系数和结构系数哪个更可靠,报哪个?

A:两者反映不同视角。标准化判别系数类似回归中的 Beta,体现每个变量在控制其他变量后对判别函数的独立贡献,但受共线性影响——高相关变量间会互相"分摊"系数。**结构系数(因子载荷矩阵)**是变量与判别函数得分的相关,不受共线性影响,更稳定可靠。多数方法学文献(Tabachnick & Fidell, 2019)建议优先报告结构系数解读判别维度含义,标准化系数作为辅助。ChatSRS 同时输出两者。

Q4:留一法交叉验证与 k 折交叉验证有什么区别?判别分析该用哪个?

A:留一法(LOOCV)每次排除 1 个样本、用剩余 N-1 个样本建模,循环 N 次——偏差低但方差高且计算量大;k 折交叉验证将数据分 k 份,循环 k 次。判别分析论文中传统报告 LOOCV(即 SPSS 输出的"交叉验证"结果),因为小到中样本量时 LOOCV 偏差最小,且 SPSS/R 均有直接内置输出,便于核查重复。ChatSRS 默认同时报告原始准确率和 LOOCV 准确率,直接对应 SPSS 分类结果表中的两行。

Q5:判别分析可以处理分类型自变量(如性别、是否吸烟)吗?

A:严格意义上,线性判别分析(LDA)假设自变量服从多元正态分布,纯粹的二值变量(0/1 编码)违反该假设。实践中的折中做法:若分类变量只有少量(1-2 个)且样本量充足(每组 >= 30),可保留并报告 Box's M 检验结果;若分类变量较多,建议改用Logistic 回归或不依赖正态假设的判别方法(如 KNN、随机森林)。告诉 ChatSRS"我有分类型自变量,请推荐最合适的方法",AI 会自动给出建议。


小结

判别分析是分组预测和多维度区分的经典工具,核心价值在于:从一组变量中提取最优判别维度,并评估分类准确率。其与 Logistic 回归的本质区别在于:判别分析侧重"整体维度区分 + 分类",Logistic 回归侧重"单变量独立效应 + 概率推断"——两者不能用对方的效应量(如不能从判别分析报 OR 值,也不能从 Logistic 回归报 Wilks' Lambda)。

chatsrs.com 输入一句指令,即可获得:

  • Wilks' Lambda 及卡方检验(判断整体显著性)
  • 标准化判别系数 + 结构系数矩阵(解读判别维度)
  • 原始 + 留一法交叉验证分类准确率矩阵
  • APA 7th 格式可直接粘贴进论文的文字描述

相关阅读


本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 -> 帮助与反馈] 联系我们。