数极客首页

用贝叶斯判别分析预测股票涨跌情况

摘要:本文是从贝叶斯分类器的角度来讨论判别分析,有关贝叶斯分类器的概念可参考文末延伸阅读第1-2篇文章。至于Fisher判别分析,未来会连同PCA一同讨论。

用贝叶斯判别分析预测股票涨跌情况

判别分析也是一种分类器,与逻辑回归相比,它具有以下优势:

  1. 当类别的区分度高的时候,逻辑回归的参数估计不够稳定,它点在线性判别分析中是不存在的;
  2. 如果样本量n比较小,而且在每一类响应变量中预测变量X近似服从正态分布,那么线性判别分析比逻辑回归更稳定;
  3. 多于两类的分类问题时,线性判别分析更普遍。

贝叶斯分类器

贝叶斯分类的基本思想是:对于多分类(大于等于2类)的问题,计算在已知条件下各类别的条件概率,取条件概率最大的那一类作为分类结果。用公式描述如下:

用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况

是第k类的概率密度(当然如果是离散型变量就是条件概率,本文考虑连续型变量)。这个公式就是贝叶斯定理。

线性判别分析(Linear Discriminant Analysis, LDA)

1、 一元线性判别分析

假设特征变量满足正态分布,即:

用贝叶斯判别分析预测股票涨跌情况

根据贝叶斯定理有:

用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况

最大等价于下式最大:

用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况

这三种参数需要估计拟合。先验概率用贝叶斯判别分析预测股票涨跌情况

可以根据业务知识进行预先估计,如果不行也可以直接以样本中第k类的样本在所有类的总样本中的比例当作先验概率,即

用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况

是x的线性函数,这也是LDA名为“线性”的原因。

2、多元线性判别分析

多元LDA由于涉及到多个特征变量,因此用协方差矩阵来代替一维方差(协方差矩阵的概念可参考延伸阅读文献3)。这里直接给结论,线性模型就变成:

用贝叶斯判别分析预测股票涨跌情况

二次判别分析(Quadratic Discriminant Analysis, QDA)

在LDA中假设所有的K类方差(或协方差矩阵)都相同,但这个假设有些严苛,如果放宽这个假设,允许每一类的观测都各自服从一个正态分布,协方差矩阵可以不同,LDA就变成了QDA。这里依然直接给公式:

用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况

是x的二次函数,故名“二次判别分析”。

QDA与LDA的关系类似于多项式回归与线性回归的关系,本质上仍是偏差和方差的权衡,这也是Machine Learning领域的一个核心问题。QDA比LDA光滑,偏差更小,但方差更大。那么它们的适用条件呢?

一般而言,如果训练观测数据量相对较少,LDA是一个比QDA更好的决策,降低模型的方差很有必要。相反地,如果训练集非常大,则更倾向于使用QDA,这时分类器的方差不再是一个主要关心的问题,或者说K类的协方差矩阵相同的假设是站不住脚的。

实战:用LDA(QDA)再次预测股票涨跌

这里为了方(tou)便(lan),依然使用延伸阅读文献4里的数据集,即ISLR包里的Smarket数据集。用不同方法做同样的事,其实也方便将不同方法进行对比。

用贝叶斯判别分析预测股票涨跌情况

Prior probaBIlities of groups是先验概率,实际上就是各类别在训练集中的比例:

用贝叶斯判别分析预测股票涨跌情况

Group means是对每类每个变量计算平均,用来估计参数用贝叶斯判别分析预测股票涨跌情况

用贝叶斯判别分析预测股票涨跌情况

 

很大时,LDA分类器预测上涨;

用贝叶斯判别分析预测股票涨跌情况

 

很小时,LDA分类器预测下跌。

> plot(lda.fit)

用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况

 

分别在Down类和Up类的直方图。下面验证比较一下:

用贝叶斯判别分析预测股票涨跌情况
用贝叶斯判别分析预测股票涨跌情况

以上在训练集中对LDA模型的训练过程。下面在测试集中验证LDA模型。

用贝叶斯判别分析预测股票涨跌情况

比较一下上一篇逻辑回归(延伸阅读文献4)中的结果:

用贝叶斯判别分析预测股票涨跌情况

LDA的结果与逻辑回归完全一致!以一个数据分析狮敏锐的第六感,我们可以大胆猜测:LDA与逻辑回归这两种算法可能有某种内在联系!

这里不做严谨的推导(深层的推导可参考延伸阅读文献6),只作一个简单的验证比较。为了简单起见,只考虑二分类问题,多分类问题可同理类推。

用贝叶斯判别分析预测股票涨跌情况

可见这仍是关于x的线性函数,与逻辑回归形式一致!虽然形式一致,但逻辑回归的参数是通过极大似然法估计出来的,LDA的参数是概率密度函数计算出来的。

由于LDA与逻辑回归形只是拟合过程不同,因此二者所得的结果应该是接近的。事实上,这一情况经常发生,但并非必然。LDA假设观测服从每一类的协方差矩阵都相同的正态分布,当这一假设近似成立时,LDA效果比逻辑回归好;相反,若这个假设不成立,则逻辑回归效果比LDA好。

下面练习QDA:

用贝叶斯判别分析预测股票涨跌情况

可见QDA的准确率稍高于LDA。

参考文献

Gareth James et al. An Introduction to Statistical Learning.

延伸阅读

  1. 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)
  2. 算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)
  3. 协方差的意义和计算公式
  4. 逻辑回归模型预测股票涨跌
  5. 机器学习笔记 线性判别分析(上)
  6. 机器学习笔记 线性判别分析(中)

来源:数据人网

作者:依然很拉风

链接:http://shujuren.org/article/164.html

发表评论

评论已关闭。

相关文章