欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

玩转统计与R语言实践指南(番外篇一):修正后的判别分析方法

最编程 2024-02-21 17:14:00
...

最近经历了很多事情,一言难尽。终究还是要回来更新博客的。新的一年先把旧的问题解决了再来开始新篇章。在年前有两位小伙伴指出了我在判别分析一章中的一些问题。主要针对这篇做些拓展和讨论。

应用统计学与R语言实现学习笔记(十一)——判别分析

1 两位细心的读者

这里要感谢两位非常细心的读者,第一位是Accelerator。

第二位是位来自UESTC的大三本科小鲜肉。

这两位细心的读者对博客中的一些公式提出了一些问题。对此,作为作者表示非常衷心的感谢。也说声抱歉,由于家里和学习上的事情,一直耽搁着没有好好修改。接下来主要针对这些部分来谈谈。

2 主要问题及解决

1 Accelerator的问题。

关于这个下标确实是我这边的问题,出现了错误,目前已订正。

2 来自UESTC大三小鲜肉的问题

这位小鲜肉非常仔细阅读了博客,并且提出了如下的几个问题。

1.这两张图是一个问题,主要是两总体协方差相等情况下的推导过程。

2.这张图是关于W的下标问题。

3.单位向量与投影的问题。

由于这位童鞋问题较多且细致,故针对此一一回答。

第一个部分的推导问题,事实上这位童鞋的理解并没有问题,代换也是没有问题的,他的理解没有错,而我这边主要有个地方写的不对,就是关于总体的协方差与样本估计的协方差符号搞混了。其他的只是符号选用的不同,实质是一样的。为了确保大家这部分不会有其他问题,我在这里重新整理和推导一下。

  • Σ1=Σ2=Σ
    定义:

d2(x,G1)d2(x,G2)=(xμ1)Σ1(xμ1)(xμ2)Σ1(xμ2)=2[x(μ1+μ2)/2]Σ1(μ1μ2)

令:ˉμ=(μ1+μ2)/2,α=Σ1(μ1μ2),
所以W(x)=(xˉμ)α=α(xˉμ)
判别规则:

如果W(x)>0,d(x,G1) < d(x,G2)则xG1
如果W(x)<0,d(x,G,1) > d(x,G2)则xG2
如果W(x)=0,d(x,G1) = d(x,G2)则待判。

称W(x)为判别函数(discriminant function),α为判别系数。
μ1,μ2,Σ未知时,可通过样本来估计。
x(i)1,,x(i)ni为来自Gi的样本(i=1,2)。
根据样本估计总体,有如下公式:

ˆμ(i)=1nin2k=1x(i)k=ˉx(i),ˆΣ=1n1+n22(S1+S2),

Si=nit=1(x(i)tˉx(i))(x(i)tˉx(i)),ˉx=12(ˉx(1)+ˉx(2))

因此最后的判别函数为W(x)=(xˉx)ˆΣ1(ˉx(1)ˉx(2))
实质上由于ˆμ(i)=1nin2k=1x(i)k=ˉx(i),也就是 ˆμ(i)=ˉx(i),所以上面那位童鞋把x全部换成μ也是没有什么问题,当然不换按原来的写法也不能说错。

第二个部分的问题确实是下标少了个ij,这里需要订正。

第三个部分的问题笔者查阅了何晓群《多元统计分析》的原文,发现原文也没有加上单位向量描述,但我也感觉应该是单位向量才会有那个结果,也参考了周志华《机器学习》西瓜书里的描述,不过感觉反而有点晕。但是感觉略有争议,我目前这个没修改,维持原文。后续可能还会有新的更正。

3 后记

本份笔记主要来源于笔者上的一门选修课《应用统计学》,笔记内容基于任课老师的ppt和我的部分感悟整理而得。参考书籍主要是贾俊平的《统计学》和何晓群的《多元统计分析》(本篇修正的内容主要在这本书上),有兴趣的同学可以自行翻阅原文。

这份笔记在Github也受到一部分人的star,我不知道究竟有多少人会读到这本书,如果有幸能为大家在学习统计学和R语言上增加一些帮助,我很荣幸。而这次番外篇我更想说的是我当时做这么一个开源的电子书和仓库也是希望有更多的人来帮助让这份笔记更友好,虽然我曾打趣地说修改意见坚决不改,其实也是开个玩笑,希望大家能够一起让这份笔记越来越好。