二次判别分析简介
当我们有一组预测变量并且想要将响应变量分类为两类之一时,我们通常使用逻辑回归。
然而,当一个响应变量有两个以上可能的类别时,我们通常使用 线性判别分析,通常称为LDA。
LDA 假设(1)每个类别中的观测值呈正态分布,并且(2)每个类别中的观测值共享相同的协方差矩阵。使用这些假设,LDA 然后找到以下值:
- μ k :第k类所有训练观察值的平均值。
- σ 2 : k个类别中每个类别的样本方差的加权平均值。
- π k :属于第k类的训练观察的比例。
然后,LDA 将这些数字代入以下公式,并将每个观测值 X = x 分配给该公式产生最大值的类:
d k (x) = x * (μ k /σ 2 ) – (μ k 2 /2σ 2 ) + log(π k )
LDA 的名字中含有“线性” ,因为上述函数产生的值来自于 x 的线性函数的结果。
线性判别分析的扩展是二次判别分析,通常称为 QDA。
该方法与LDA类似,也假设每个类的观测值呈正态分布,但不假设每个类共享相同的协方差矩阵。相反,QDA 假设每个类都有自己的协方差矩阵。
换句话说,假设第k 类的观测值的形式为 X ~ N(μ k , Σ k )。
使用这个假设,QDA 然后找到以下值:
- μ k :第 k类所有训练观察值的平均值。
- Σ k :第 k类的协方差矩阵。
- π k :属于第k类的训练观察的比例。
然后,QDA 将这些数字代入以下公式,并将每个观测值 X = x 分配给该公式产生最大值的类:
D k (x) = -1/2*(x-μ k ) T Σ k -1 (x-μ k ) – 1/2*log|Σ k | + log( πk )
请注意,QDA 的名称中有二次函数,因为上述函数产生的值来自 x 的二次函数的结果。
LDA 与 QDA:何时使用其中之一
LDA 和 QDA 之间的主要区别在于,LDA 假设每个类共享一个协方差矩阵,这使其成为比 QDA 更不灵活的分类器。
这本质上意味着它具有低方差,即它将在不同的训练数据集上执行相同的操作。缺点是,如果K类具有相同协方差的假设是错误的,那么 LDA 可能会遭受 高偏差。
在以下情况下,QDA 通常优于 LDA:
(1)训练集大。
(2) K个类别不太可能共享共同的协方差矩阵。
当满足这些条件时,QDA 往往会表现得更好,因为它更灵活并且能够更好地适应数据。
如何为 QDA 准备数据
在应用 QDA 模型之前,请确保您的数据满足以下要求:
1. 响应变量是分类变量。 QDA 模型设计用于分类问题,即可以将响应变量放入类或类别中。
2. 每个班级的观察结果服从正态分布。首先,检查每个类中值的分布是否近似正态分布。如果不是,您可以选择 先对数据进行变换,使分布更加正态。
3. 考虑极端异常值。在应用 LDA 之前,请务必检查数据集中是否存在极端异常值。通常,您只需使用箱线图或散点图即可直观地检查异常值。
R 和 Python 中的 QDA
以下教程提供了有关如何在 R 和 Python 中执行二次判别分析的分步示例: