登录
首页 >  数据库 >  MySQL

统计科学之方差分析

来源:SegmentFault

时间:2023-01-24 10:35:38 215浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《统计科学之方差分析》,文章讲解的知识点主要包括MySQL、python、网页爬虫、数据挖掘、机器学习,如果你对数据库方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

上一篇讲了假设检验,这一篇讲讲方差分析。

1.背景:

假如你们现在针对用户提出了三种提高客单价的策略A、B、C,现在想看一下这三种策略最后对提高客单价的效果有什么不同,那我们怎么才能知道这三种策略效果有什么不同?最简单的方法就是做一个实验,我们可以随机挑选一部分用户,然后把这些用户分成三组A、B、C组,A组用户使用A策略、B组用户使用B策略、C组用户使用C策略,等策略实施一段时间以后,我们来看一下这三组分别的客单价是什么水平?哪组平均客单价高,就说明哪组策略有效果。真的可以得出这的结论吗?是可以,但是不够严谨。

为什么说不够严谨呢?是因为我们用来做实验的用户是随机挑选的,有可能客单价高的那部分用户(比如高价值用户)本身就要比其他用户群体的客单价高,那为了避免这种可能是因为随机抽样造成的结果不一致问题,我们就需要去证明下,到底是不是因为随机挑选的原因,如果不是,我们就可以去比较各组的平均客单价,哪组客单价较高,就说明哪组策略更有效果。

我们的最终目的其实就是为了比较各组的平均客单价,但是在比较均值之前,我们需要先证明下各组之间的结果不同是因为策略的原因还是随机挑选的原因,我们把这个过程叫做方差分析。

2.三个假设:

方差分析有三个假设:

1.每组样本数据对应的总体应该服从正态分布
2.每组样本数据对应的总体方差要相等,方差相等又叫方差齐性;
3.每组之间的值是相互独立的,就是A、B、C组的值不会相互影响。

正态检验主要有两种大的方法,一种是统计检验的方法:主要有基于峰度和偏度的SW检验、基于拟合度的KS、CVM、AD检验;另一种是用描述的方法:Q-Q图和P-P图、茎叶图,利用四分位数间距和标准差来判断。

方差齐性的主要判断方法有:方差比、Hartley检验、Levene检验、BF法。

由于篇幅问题,关于上面涉及到的方法以后专门来讲,有兴趣的同学可以先自行查阅。

3.方差分析流程

3.1建立假设

H0:各组的客单价均值相等;
H1:各组的客单价均值不相等或不全等。

检验水准为0.05。

3.2计算检验统计量F值

F值 = 组间方差/组内方差。我们主要是通过比较F值的大小来判断各组之间是否存在显著差异。

所谓的组间方差就是用来反映组与组之间的差异程度,组内方差就是用来反映各组内部数据的差异程度。

如果各组之间的客单价相等,即假设H0成立,也就意味着各组之间是没啥区别的,也就是组间方差会很小甚至为0,与之对应的方差很大的概率会很低,所以如果F值越大,表明在假设H0成立的前提下出现出现这一结果的概率越小,相当于我们前面提到的小概率事件,如果一旦小概率事件发生了,我们就有理由去拒绝原假设。

要来计算方差,我们需要先计算平方和。为了让大家能够更加理解,我们来举个例子来讲解各个指标怎么计算。

现在有两组数据:

第一组:80、85、96
第二组:110、125、130、145、160

第一组和第二组的总算术平均值为:
(80+85+96+110+125+130+145+160)/8 = 116.375。

第一组的算术平均值:(80+85+96)/3 = 87

第二组的算术平均值:

(110+125+130+145+160)/5 = 134

组间平方和(SSA):
= 第一组平均值与总体平均值的平方和×第一组样本数+第二组平均值与总体平均值的平方和×第二组样本数
= (87-116.375)^2×3 + (134-116.375)^2×5 = 4141.875

组内平方和(SSE):
= 第一组平方和 + 第二组平方和
=(80-87)^2+(85-87)^2+(96-87)^2

+(110-134)^2+(125-134)^2+(130-134)^2

+(145-134)^2+(160-134)^2
=134+1470=1604

总体平方和(SST):
=所有样本数据与总体平均值之间的平方和
=(80-116.375)^2+(85-116.375)^2+(96-116.375)^2

+(110-116.375)^2+(125-116.375)^2+(130-116.375)^2

+(145-116.375)^2+(160-116.375)^2
=5745.875

通过以上数据,我们可以看出 

SST = SSA + SSE

总平方和会有一个问题,就是随着数据量越大,这个值会越大,所以我们引入另外一个概念:均方。

均方=平方和/自由度
,其中
自由度是样本数-1

组间均方(MSA) = SSA/自由度 = 4141.875/(2-1) = 4141.875
组内均方(MSE) = SSE/自由度 = 1604/(8-2) = 267.333

MSA又称为组间方差,MSE称为组内方差。

F = MSA/MSE = 4141.875/267.333 = 15.4933

3.3确定边界值并做出决策

此时我们就可以通过查F表,来获得置信度为95%时的F边界值:

如果F如果F≥F边界值表面各组数据之间存在明显差异,拒绝H0假设,接受H1假设。

如果我们证实了各组数据之间是存在明显差异的,这个时候就可以去拿各组的均值来进行比较,均值越大,可以说明策略效果越好。

F值表:
https://wenku.baidu.com/view/...

一般最后我们都可以得到下面这么一个表:

image

到这里,我们也就讲完了《统计科学之方差分析》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于mysql的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表