實驗的方差分析(R語言)


實驗設計與數據處理(大數據分析B中也用到F分布,故總結一下,加深印象)第3課小結——實驗的方差分析(one-way analysis of variance)

概述

  • 實驗結果\(S\)受多個因素\(A_i\)影響,但影響的程度各不相同,如何通過實驗數據來確定因素的影響程度呢?其函數關系為

\[S=f(A_1,A_2,\cdots,A_n) \tag{1} \]

  • 方差

標准差的平方,表征\(x_i\)\(\bar{x}\)偏離程度

  • 方差分析(ANalysis Of VAriance,簡稱ANOVA
    利用實驗數據與均值的偏離程度來判斷各因素對實驗結果影響顯著性程度的方法。方差分析實質上是研究自變量(因素)與因變量(實驗結果)的相互關系

  • 指標(experimental index)

衡量或考核實驗效果的參數 。

  • 因素(experimental factor)

影響實驗指標的條件,可控因素

  • 水平

因素的不同狀態或內容

單因素實驗的方差分析

單因素實驗方差分析基本問題

(1)目的:檢驗一個因素對實驗結果的影響是否顯著性

單因素實驗方差分析基本步驟

1)計算平均值

組內平均值(同一水平的平均值)

\[\overline{x_i}=\frac{1}{n_i}\sum_{j=1}^{n_i}{x_{ij}} \tag{2} \]

總平均值

\[\overline {x_i}=\frac{1}{n}\sum_{i=1}^{r}\sum_{j=1}^{n_i}{x_{ij}} \tag{3} \]

2)計算離差平方和

  • 總離差平方和\(SS_T\)(sum of squares for total)

\[SS_T = \sum_{i=1}^{r}{\sum_{j=1}^{n_i}({x_{ij}-\overline{x}})^2} \tag{4} \]

表示了各實驗值與總平均值的偏差的平方和 
反映了實驗結果之間存在的總差異
  • 組間離差平方和 \(SS_A\) (sum of square for factor A)

\[SS_A = \sum_{i=1}^{r}{\sum_{j=1}^{n_i}({\overline{x_{i}}-\overline{x}})^2} =\sum_{i=1}^{r}n_i({\overline{x_{i}}-\overline{x}})^2 \tag{5} \]

反映了各組內平均值之間的差異程度
由於因素A不同水平的不同作用造成的
  • 組內離差平方和$ SS_e $(sum of square for error)

\[SS_T = \sum_{i=1}^{r}{\sum_{j=1}^{n_i}({x_{ij}-\overline{x}_i})^2} \tag{6} \]

反映了在各水平內,各實驗值之間的差異程度 
由於隨機誤差的作用產生
  • 三種離差平方和之間關系:

\[SS_T = SS_A + SS_e \tag{7} \]

3)計算自由度(degree of freedom)

  • 總自由度(\(SS_T\)對應的自由度):\(df_T=n-1\)
  • 組間自由度(\(SS_A\)對應的自由度):\(df_A=r-1\)
  • 組內自由度(\(SS_e\)對就的自由度):\(df_e=n-r\)

三者關系:\(df_T=df_A+df_e\)

4)計算平均平方

  • 均方 = 離差平方和除以對應的自由度

\[MS_A = SS_A/df_A \quad \quad MS_e = SS_e / df_e \]

式中,\(MA_A\)——組間均方,\(MS_e\)——組內均方/誤差的均方

5)F檢驗

\[F_A = \frac{組間均方}{組內均方}=\frac{MS_A}{MS_e} \tag{8} \]

  • 服從自由度為\((df_A,df_e)\)F分布(F distribution)

  • 對於給定的顯著性水平\(\alpha\),從F分布表查得臨界值\(F_{\alpha}(df_A,df_e)\)

  • 如果\(F_A > F_{\alpha}(df_A,df_e)\),則認為因素A對實驗結果有顯著影響,否則認為因素A對實驗結果沒有顯著影響

6)方差分析表

差異源 \(SS\) \(df\) \(MS\) \(F\) 顯著性
組間(因素A) \(SS_A\) \(r-1\) \(MS_A=SS_A/(r-1)\) \(MS_A/MS_e\)
組內(誤差) \(SS_e\) \(n-r\) \(MS_e=SS_e/(n-r)\)
總和 \(SS_T\) \(n-1\)
  • \(F_A > F_{0.01}(df_A,df_e)\),稱因素A對實驗結果有非常顯著的影響,用**號表示;
  • \(F_{0.05}(df_A,df_e)<F_A<F_{0.01}(df_A,df_e)\),則因素A對實驗結果有顯著的影響,用*號表示;
  • \(F_A < F_{0.05}(df_A,df_e)\),稱因素A對實驗結果的影響不顯著

雙因素實驗的方差分析

  • 討論兩個因素對實驗結果影響的顯著性,以稱二元方差分析

雙因素無重復實驗的方差分析

雙因素無重復實驗

\(B_1\) \(B_2\) \(\cdots\) \(B_s\)
\(A_1\) \(x_{11}\) \(x_{12}\) \(\cdots\) \(x_{1s}\)
\(A_2\) \(x_{21}\) \(x_{22}\) \(\cdots\) \(x_{2s}\)
\(\cdots\) \(\cdots\) \(\cdots\) \(\cdots\) \(\cdots\)
\(A_r\) \(x_{r1}\) \(x_{r2}\) \(\cdots\) \(x_{rs}\)

1)計算平均值

總平均:

\[\overline{x} = \frac{1}{rs}\sum_{i=1}^{r}{\sum_{j=1}^{s}x_{ij}} \tag{9} \]

\(A_i\)水平時:

\[\overline{x}_{i\cdot} = \frac{1}{s}\sum_{j=1}^{s}x_{ij} \tag{10} \]

\(B_j\)水平時:

\[\overline{x}_{{\cdot}j}= \frac{1}{r}\sum_{i=1}^{s}x_{ij} \tag{11} \]

2)計算離差平方和

  • 總離差平方和:

\[\overline{x} =\sum_{i=1}^{r}{\sum_{j=1}^{s}{(x_{ij}-\overline{x})^2}} \tag{12} \]

  • 因素A引起離差平方和:

\[\overline{x} =\sum_{i=1}^{r}{\sum_{j=1}^{s}{(x_{i{\cdot}}-\overline{x})^2}}=s\sum_{j=1}^{r}{(x_{i{\cdot}}-\overline{x})^2} \tag{13} \]

  • 因素B引起的離差平方和:

\[\overline{x} =\sum_{i=1}^{r}{\sum_{j=1}^{s}{(x_{{\cdot}j}-\overline{x})^2}}=r\sum_{j=1}^{s}{(x_{{\cdot}j}-\overline{x})^2} \tag{14} \]

  • 誤差平方和:

\[\overline{x} =\sum_{i=1}^{r}{\sum_{j=1}^{s}{(x_{ij}-x_{i{\cdot}}-x_{{\cdot}j}-\overline{x})^2}} \tag{15} \]

3)計算自由度

\(SS_A\)的自由度 \(SS_B\)的自由度 \(SS_e\)的自由度 \(SS_T\)的自由度
\(df_A=r-1\) \(df_B=s-1\) \(df_e=(r-1)(s-f)\) \(df_T=n-1=rs-1\)

4)計算均方

A均方 B均方 e均方
\(MS_A=\dfrac{SS_A}{df_A}=\dfrac{SS_A}{r-1}\) \(MS_B=\dfrac{SS_B}{df_A}=\dfrac{SS_B}{s-1}\) \(MS_e=\dfrac{SS_e}{df_e}=\dfrac{SS_e}{(r-1)(s-1)}\)

5)F 檢驗

  • \(F_A\)服從自由度為\((df_A,df_e)\)的F分布:\(F_A=\dfrac{MS_A}{MS_e}\)
  • \(F_B\)服從自由度為\((df_B,df_e)\)的F分布:\(F_A=\dfrac{MS_B}{MS_e}\)
  • 對於給定的的顯著性水平\(\alpha\),查F分布表:

\[F_{\alpha}(df_A,df_e) \quad \quad F_{\alpha}(df_B,df_e) \]

  • 如果\(F_A > F_{\alpha}(df_A,df_e)\),則認為因素A對實驗結果有顯著影響,否則認為因素A對實驗結果沒有顯著影響
  • 如果\(F_B > F_{\alpha}(df_B,df_e)​\),則認為因素A對實驗結果有顯著影響,否則認為因素A對實驗結果沒有顯著影響

6)無重復實驗雙因素方差分析表

差異源 \(SS\) \(df\) \(MS\) \(F\) 顯著性
因素A \(SS_A\) \(r-1\) \(MS_A=SS_A/(r-1)\) \(MS_A/MS_e\)
因素B \(SS_B\) \(s-1\) \(MS_B=SS_B/(s-1)\) \(MS_B/MS_e\)
誤差 \(SS_e\) \((r-1)(s-1)\) \(MS_e=SS_e/((r-1)(s-1))\)
總和 \(SS_T\) \(rs-1\)

雙因素重復實驗基本問題

  • 交互作用——因素間的聯全作用稱為交互作用

  • 因素間沒有聯合作用——相互獨立,獨立效應

  • 因素間有聯合作用——交互作用,交互效應

雙因素重復實驗方差分析基本步驟

1)計算平均值

  • 組合水平\((A_i,B_i)\)上的\(c\)次實驗值的算術平均值

\[\overline{x}_{ij{\cdot}}=\frac{1}{c}\sum_{k=1}^{c}{x_{ijk}},i=1,2,\cdots,r;j=1,2,\cdots,s \tag{16} \]

  • \(A_i\)水平時所有實驗值的算術平均值:

\[\overline{x}_{i\cdot\cdot} = \frac{1}{sc}\sum_{j=1}^{s}x_{ijk} = \frac{1}{s}\sum_{j=1}^{s}x_{ijk},i=1,2,\cdots,r \tag{17} \]

  • \(B_j\)水平時:

\[\overline{x}_{i\cdot\cdot} = \frac{1}{rc}\sum_{j=1}^{s}x_{ijk} = \frac{1}{r}\sum_{j=1}^{r}x_{ij\cdot},j=1,2,\cdots,s \tag{18} \]

  • 所有實驗的總平均值:

\[\overline{x} = \frac{1}{rsc} \sum_{i=1}^{r}\sum_{j=1}^{s}\sum_{k=1}^{c}x_{ijk} \tag{19} \]

2)計算離差平方和

  • 總離差平方和:

\[SS_T=\frac{1}{rsc}\sum_{i=1}^{r}\sum_{j=1}^{s}\sum_{k=1}^{c}{(x_{ijk}-\overline{x})^2} = SS_A+SS_B+SS_{A\times{B}}+SS_e \tag{20} \]

  • \(SS_A\)為A引起的離差平方和:

\[SS_A = sc\sum_{i=1}^{r}{(\overline{x}_{i\cdot\cdot}-\overline{x})^2} \]

  • \(SS_B\)為B引起的離差平方和:

\[SS_B = rc\sum_{j=1}^{s}{(\overline{x}_{\cdot{j}\cdot}-\overline{x})^2} \]

  • \(SS_{A\times{B}}\)\(A\times{B}\)引起的離差平方和:

\[SS_{A\times{B}} = c\sum_{i=1}^{r}\sum_{j=1}{s}{(\overline{x}_{ij\cdot}-\overline{x}_{i\cdot\cdot}-\overline{x}_{\cdot{j}\cdot}+\overline{x})^2} \]

  • \(SS_e\)為誤差平方和:

\[\overline{x} = \sum_{i=1}^{r}\sum_{j=1}^{s}\sum_{k=1}^{c}{(x_{ijk}-\overline{x}_{ij\cdot})^2} \]

3)計算自由度

\(SS_A\)的自由度 \(SS_B\)的自由度 \(SS_{A\times{B}}\)的自由度 \(SS_e\)的自由度 \(SS_T\)的自由度
\(df_A=r-1\) \(df_B=s-1\) \(df_{A\times{B}}=(r-1)(n-1)\) \(df_e=rs(c-1)\) \(df_T=n-1=rsc-1\)

4)計算均方

A均方 B均方 \(A\times{B}\)均方 e均方
\(MS_A=\dfrac{SS_A}{df_A}=\dfrac{SS_A}{r-1}\) \(MS_B=\dfrac{SS_B}{df_A}=\dfrac{SS_B}{s-1}\) \(MS_{A\times{B}}=\dfrac{SS_{A\times{B}}}{(r-1)(s-1)}\) \(MS_e=\dfrac{SS_e}{df_e}=\dfrac{SS_e}{rs(c-1)}\)

5)F 檢驗

  • \(F_A\)服從自由度為\((df_A,df_e)\)的F分布:\(F_A=\dfrac{MS_A}{MS_e}\)
  • \(F_B\)服從自由度為\((df_B,df_e)\)的F分布:\(F_A=\dfrac{MS_B}{MS_e}\)
  • \(F_{A\times{B}}\)服從自由度為\((df_{A\times{B}},df_e)\)的F分布:\(F_A=\dfrac{MS_{A\times{B}}}{MS_e}\)
  • 對於給定的的顯著性水平\(\alpha\),查F分布表:

\[F_{\alpha}(df_A,df_e) \quad \quad F_{\alpha}(df_B,df_e) \quad \quad F_{\alpha}(df_{A\times{B}},df_e) \]

  • 如果\(F_A > F_{\alpha}(df_A,df_e)\),則認為因素A對實驗結果有顯著影響,否則認為因素A對實驗結果沒有顯著影響
  • 如果\(F_B > F_{\alpha}(df_B,df_e)\),則認為因素B對實驗結果有顯著影響,否則認為因素B對實驗結果沒有顯著影響
  • 如果\(F_{A\times{B}}> F_{\alpha}(df_{A\times{B}},df_e)\),則認為交互作用$$A\times{B}$$對實驗結果有顯著影響,否則認為因素\(A\times{B}\)對實驗結果沒有顯著影響

6)重復實驗雙因素方差分析表

差異源 \(SS\) \(df\) \(MS\) \(F\) 顯著性
因素A \(SS_A\) \(r-1\) \(MS_A=SS_A/(r-1)\) \(MS_A/MS_e\)
因素B \(SS_B\) \(s-1\) \(MS_B=SS_B/(s-1)\) \(MS_B/MS_e\)
交互作用 \(SS_{A\times{B}}\) \((r-1)(s-1)\) \(MS_{A\times{B}}=\dfrac{SS_{A\times{B}}}{(r-1)(s-1)}\) \(MS_{A\times{B}}/MS_e\)
誤差 \(SS_e\) \(rs(c-1)\) \(MS_c=SS_e/(rs(c-1))\)
總和 \(SS_T\) \(rsc-1\)

R語言方差分析

R語言重復實驗方差分析

例:下表中給出了某種化式產品在3種濃度、4種溫度水平下得率的數據,試檢驗各因素及交互作用對產品得率的影響是否顯著。

濃度/% 10℃ 24℃ 38℃ 52℃
2 14,11 11,11 13,9 10,12
4 9,7 10,8 7,11 6,10
6 5,11 13,14 12,13 14,10

我們令:A因素:濃度,B因素:溫度,由題可得,重復次數\(c=2\)

可以分析出如下表:

\((c_1,c_2)\) \(B_1\) \(B_2\) \(B_3\) \(B_4\)
濃度/% 10℃ 24℃ 38℃ 52℃
\(A_1\) 2 14,11 11,11 13,9 10,12
\(A_2\) 4 9,7 10,8 7,11 6,10
\(A_3\) 6 5,11 13,14 12,13 14,10

接下來,我們在RStudio(如果RStudio沒有安裝的,網上有大量的教程)中錄入我們的數據,代碼如下

X <- c(14,9,5,11,10,13,13,7,12,10,6,14,10,7,11,11,8,14,9,11,13,12,10,10)
chemistryProduct<-data.frame(X,A=gl(3,1,24),B=gl(4,3,24),c=gl(12,1,24))
chemistryProduct.aov<-aov(X~A*B,data = chemistryProduct)
summary(chemistryProduct.aov)

說明:對上述代碼的第1行和第2行簡單說明一下。
第1行中,X數據的輸入,是以列的方向輸入,先輸入第1次實驗的數據,輸入完成后再按第1次的順序輸入第2次實驗數據。

第2行中,A=gl(3,1,24),第一個數3表示有3行,第二個數1表示行方向只增加1,第三個數24表示總共有24個數據。后面的同理。可以查看一下它的輸出如下,不難發現其中的輸入規律。

可以在RStudio中查看chemistryProduct的數據結構,多試一下,自行體會一下其中的A,B,c的規律。

> chemistryProduct
    X A B  c
1  14 1 1  1
2   9 2 1  2
3   5 3 1  3
4  11 1 2  4
5  10 2 2  5
6  13 3 2  6
7  13 1 3  7
8   7 2 3  8
9  12 3 3  9
10 10 1 4 10
11  6 2 4 11
12 14 3 4 12
13 10 1 1  1
14  7 2 1  2
15 11 3 1  3
16 11 1 2  4
17  8 2 2  5
18 14 3 2  6
19  9 1 3  7
20 11 2 3  8
21 13 3 3  9
22 12 1 4 10
23 10 2 4 11
24 10 3 4 12

可以看到如下輸出結果:

            Df Sum Sq Mean Sq F value Pr(>F)  
A            2  44.33  22.167   4.092 0.0442 *
B            3  11.50   3.833   0.708 0.5657  
A:B          6  27.00   4.500   0.831 0.5684  
Residuals   12  65.00   5.417                 
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

將實驗結果寫成上文所述的方差分析表,如下

差異源 \(df\) \(SS\) \(MS\) \(F\) 顯著性
因素A 2 44.33 22.167 4.092 *
因素B 3 11.50 3.833 0.708
交互作用 6 27.00 4.500 0.831
誤差 12 65.00 5.417
總和

由分析結果可知,因素A對產品得率有顯著性影響。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM