当前位置: 首页 > 后端技术 > Python

统计科学中的方差分析

时间:2023-03-26 17:42:26 Python

上一篇讲的是假设检验,本文讲的是方差分析。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.333MSA也称为组间方差,MSE称为组内方差。F=MSA/MSE=4141.875/267.333=15.49333.3确定边界值并做决定此时我们可以查F表得到置信度为95%时的F边界值:如果F