單因素方差分析(one-way analysis of variance, ANOVA)用於確定3個及其以上的數據組之間的均值是否具有統計差異,此外,單因素方差分析也可以用於分析兩組數據之間的統計差異,這種情況下等價於利用t檢驗比較獨立樣本的均值。本文講介紹單因素方差分析的基本假設以及何時該使用單因素方差分析。
模型描述
單因素方差分析的基本思想是比較組間方差和組內方差,我們首先給出問題的描述。假設某個因素有s個分組,對應的觀測值分別爲:
Group 1: x 11 x_{11} x 1 1 , x 12 x_{12} x 1 2 , … , x 1 n 1 x_{1n_1} x 1 n 1
Group 2: x 11 x_{11} x 1 1 , x 12 x_{12} x 1 2 , … , x 1 n 2 x_{1n_2} x 1 n 2
⋮ \vdots ⋮
Group s: x 11 x_{11} x 1 1 , x 12 x_{12} x 1 2 , … , x 1 n s x_{1n_s} x 1 n s
注意這裏每組數據的個數可以是不同的
單因素的方差的基本假設是:
每組的觀測值是獨立的且服從正態分佈N ( μ i , σ 2 ) N(\mu_i, \sigma^2) N ( μ i , σ 2 ) ;
每組的方差是相同的;
我們要假設的空假設是:H 0 : μ 1 = μ 2 = ⋯ = μ s H_0: \mu_1=\mu_2 = \dots = \mu_s H 0 : μ 1 = μ 2 = ⋯ = μ s ,接下來定義統計量
首先定義第i組數據的均值爲x ˉ i . = 1 n i ∑ j n i x i j \bar{x}_{i.}=\frac{1}{n_i}\sum_{j}^{n_i}{x_{ij}} x ˉ i . = n i 1 ∑ j n i x i j ,所有樣本的均值爲1 n ∑ i = 1 s ∑ j = 1 n i x i j \frac{1}{n}\sum_{i=1}^{s}\sum_{j=1}^{n_i}x_{ij} n 1 ∑ i = 1 s ∑ j = 1 n i x i j ,其中n = ∑ i = 1 s n i n = \sum_{i=1}^{s} n_i n = ∑ i = 1 s n i
我們定義組內平方和與組間平方和如下:
S E = ∑ i = 1 s ∑ j = 1 n i ( x i j − x ˉ i . ) 2 S A = ∑ i = 1 s n i ( x i j − x ˉ ) 2 S T = ∑ i = 1 s ∑ j = 1 n i ( x i j − x ˉ ) 2
S_E = \sum_{i=1}^{s}\sum_{j=1}^{n_i}{(x_{ij}-\bar{x}_{i.})}^2 \\
S_A = \sum_{i=1}^{s}n_i{(x_{ij}-\bar{x})}^2 \\
S_T = \sum_{i=1}^{s}\sum_{j=1}^{n_i}{(x_{ij}-\bar{x})}^2 \\
S E = i = 1 ∑ s j = 1 ∑ n i ( x i j − x ˉ i . ) 2 S A = i = 1 ∑ s n i ( x i j − x ˉ ) 2 S T = i = 1 ∑ s j = 1 ∑ n i ( x i j − x ˉ ) 2
容易證明S T = A A + S E S_T=A_A+S_E S T = A A + S E
已知n i ( x i j − x ˉ ) 2 σ 2 \frac{n_i{(x_{ij}-\bar{x})}^2}{\sigma^2} σ 2 n i ( x i j − x ˉ ) 2 ~ χ ( n i − 1 ) \chi(n_i-1) χ ( n i − 1 ) ,各組之間相互獨立,易得S A S_A S A ~ χ ( n − s ) \chi(n-s) χ ( n − s ) 。
如果空假設成立,S T S_T S T ~ χ ( n − 1 ) \chi(n-1) χ ( n − 1 ) ,則有S E S_E S E ~ χ ( s − 1 ) \chi(s-1) χ ( s − 1 ) 。且如果空假設不成立,那麼S A S_A S A 會較大,則可以設統計量
F = S E / ( s − 1 ) S A / ( n − s )
F = \frac{S_E/(s-1)}{S_A/(n-s)}
F = S A / ( n − s ) S E / ( s − 1 )
拒絕域爲F > F 1 − α ( s − 1 , n − s ) F>F_{1-\alpha}(s-1, n-s) F > F 1 − α ( s − 1 , n − s )
利用python
求解
使用到的python函數是scipy.stats.f_oneway