在试验中,把考察的指标称为试验指标,影响试验指标的条件称为因素。因素可分为两类,-类是人为可控的测量数据,比如温度、身高等;一类是不可控的随机因素,例如,测量误差,气象条件等。因素所处的状态称为因素的水平。如果在试验过程中,只有一个因素在改变,称为单因素试验。方差分析Q (Analysis ofVariance,简称ANOVA)主要用于验证两组样本,或者两组以上的样本均值是否有显著性差异(是否一致)。
实例:
注:现实中当用到方差分析时候,一定是两组数据很相似,所以用到方差分析,若两组数据差异均值方差较大,则仅通过均值定性判断,就可以了。
通常实际应用中要先做同方差显著性水平检验(方差齐次性检验)
现在假定一个因素B具有c个水平的因变量进行方差分析检验,例如上面提到的工厂轧制设备是因素,分别试验轧制了10块板材是水平。
1、建立假设
H0: μ1=μ2=…=μc;
H1: μ1,μ2,…,μc不全相等。
2、计算样本均值和样本方差。
3、计算组间方差
组间方差:反映不同组样本数据波动情形和不同组内部波动情形。
4、组内方差的估计:
组内方差:反映该组样本数据波动情况。
将组间方差与组内方差相比,可以得到一个F统计量(F=组间方差/组内方差),可以证明该统计量服从F分布。
5、构造F统计量进行检验
F=组间方差/组内方差=MSB/MSE~F(c-1, nT-1)
如果c个总体均值不相等,则组间方差(MSB)会大于组内方差(MSE)。当F值大到某一临界值时,就可以拒绝H0。临界值的大小由给定的α和自由度决定。所以,当给定显著性水平为α时,F的拒绝域为F>Fα(c-1,nT-c)。
6、方差分析表
7,应用
例题:有8位食品专家对三种配方的食品随机品尝,然后给食品的口感分别打分(满分10分),如下表。问三种配方的平均分数是否相同?(α=0.05)(假定打分服从标准相等的正态分布)。
解:设μA,μB,μC分别代表配方1、2、3。已知因变量是分数,因素是配方,水平为3,具有相同的样本容量8。根据题意建立假设:
H0: μA=μB=μC;
H1: 总体均值不全相等。
首先,计算样本均值及方差
案例:
某保险公司想了解一下某险种在不同的地区是否有不同的索赔额。于是他们就搜集了四个不同地区一年的索赔额情况的记录如下表:
尝试判断一下, 地区这个因素是否对与索赔额产生了显著的影响?
import pandas as pd
import numpy as np
from scipy import stats
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
# 这是那四个水平的索赔额的观测值
A1 = [1.6, 1.61, 1.65, 1.68, 1.7, 1.7, 1.78]
A2 = [1.5, 1.64, 1.4, 1.7, 1.75]
A3 = [1.6, 1.55, 1.6, 1.62, 1.64, 1.60, 1.74, 1.8]
A4 = [1.51, 1.52, 1.53, 1.57, 1.64, 1.6]
data = [A1, A2, A3, A4]
# 方差的齐性检验
w, p = stats.levene(*data)
if p < 0.05:
print('方差齐性假设不成立')
# 成立之后, 就可以进行单因素方差分析
f, p = stats.f_oneway(*data)
print(f, p) # 2.06507381767795 0.13406910483160134