rで実験計画法 前編

39
R で実験計画(前編) @ito_yan E-mail:[email protected] 2011.08.27 Tokyo.R #16

Upload: itoyan110

Post on 28-May-2015

18.918 views

Category:

Technology


0 download

DESCRIPTION

This slide was presented in Tokyo.R #16.It describes about design of experiment with R.

TRANSCRIPT

Page 1: Rで実験計画法 前編

Rで実験計画法(前編)

@ito_yan

E-mail:[email protected]

2011.08.27

Tokyo.R #16

Page 2: Rで実験計画法 前編

はじめに•所属する組織の意見・見解ではありません

•つまらなかったら睡眠学習や復習に当てましょう

•コメント歓迎します(メール等も含めて)

•僕と勉強会に出て、実験計画法使いになってよ!

• Web上に掲載するに当たり一部修正しています

2

Page 3: Rで実験計画法 前編

自己紹介

• twitterID : @ito_yan

•お仕事

• QA(品質保証)がメイン

•データマイニングツール開発

• Rに初めて触れて5年

•まどか☆マギカのアニメ版は観てません(爆

•漫画版読みました(爆

3

Page 4: Rで実験計画法 前編

今日の話題

•一元配置、二元配置

•第3回でも出てきているが、1年半ぶりに復習

•交互作用

•二元配置と方格の関係

•ラテン方格、グレコ・ラテン方格

•直交表による実験は次回お話します

4

Page 5: Rで実験計画法 前編

実験計画法とは

•少ない実験回数で、効率よく推定する手法

•フィッシャーの農場での実験がはじまり

•肥料のやり方、土壌が作物の成長にどのような影響を与えるか調べた

•応用例

•品質管理(長寿命製品の製造)

•自然科学

5

Page 6: Rで実験計画法 前編

一元配置

A1 A2 A3

27.2 33.3 28.5

28.7 31.5 31.3

27.7 30.8 29.5

26.4 32.4 27.9

6

問題:素材の強度を上げるため、製造する環境の温度をA1 = 15℃、 A2 = 20℃、A3 = 25℃と変化させて試作し、強度を測定したところ次の結果を得た。温度によって強度は変わるといえるか。

因子 水準

各水準の平均は一定

水準の平均は一定ではない

問題を統計的に言うと…

Page 7: Rで実験計画法 前編

Rによる分析

•データフレームでデータを表現

7

lev dataA1 27.2A1 28.7A1 27.7A1 26.4A2 33.3A2 31.5A2 30.8A2 32.4A3 28.5A3 31.3A3 29.5A3 27.9

data <- c(27.2,28.7,27.7,26.4,

33.3,31.5,30.8,32.4,

28.5,31.3,29.5,27.9)

lev <- c(rep("A1",4),rep("A2",4),rep("A3",4))

exp.data <- data.frame(lev=lev,data=data)

Page 8: Rで実験計画法 前編

傾向の把握その1

• boxplot関数の利用

8

boxplot(data~lev,data=exp.data,col="lightblue")

左図より、水準ごとに平均は違うのではと推測される

第3四分位点から箱の長さの1.5

倍以内の最大値第3四分位点中央値第1分位点第1四分位点から箱の長さの1.5

倍以内の最小値

Page 9: Rで実験計画法 前編

一元配置のデータの分解式

•データ=平均+因子ごとの影響+誤差

9

A1 A2 A3

27.2 33.3 28.5

28.7 31.5 31.3

27.7 30.8 29.5

26.4 32.4 27.9

A1 A2 A3

29.6 29.6 29.6

29.6 29.6 29.6

29.6 29.6 29.6

29.6 29.6 29.6

A1 A2 A3

-2.1 2.4 -0.3

-2.1 2.4 -0.3

-2.1 2.4 -0.3

-2.1 2.4 -0.3

A1 A2 A3

-0.3 1.3 -0.8

1.2 -0.5 2.0

0.2 -1.2 0.2

-1.1 0.4 -1.4

=

++

水準A1の合計

Page 10: Rで実験計画法 前編

データの分解式に関する性質

•因子の水準による効果の総和は0

• -2.1+2.4-0.3=0

•誤差の総和は各水準毎に0

• -0.3+1.2+0.2-1.1=0

• 1.3-0.5-1.2+0.4=0

• -0.8+2.0+0.2-1.4=0

10

Page 11: Rで実験計画法 前編

変動に関する用語

•全変動(Sum of Square, SS)

•全データの二乗和

•平均変動(Correlation Term, CT,修正変動)

•全データの平均の二乗和

•因子変動(主効果)

•因子による効果の二乗和

•誤差変動

•平均変動、主効果で説明できない部分

•測定器、測定者、偶然による誤差

11

Page 12: Rで実験計画法 前編

データの二乗和

•イメージは下図のように全データに^2をつけるだけ

12

A1 A2 A3

27.2^2 33.3^2 28.5^2

28.7^2 31.5^2 31.3^2

27.7^2 30.8^2 29.5^2

26.4^2 32.4^2 27.9^2

A1 A2 A3

29.6^2

A1 A2 A3

(-2.1)^2 2.4^2 -0.3^2

A1 A2 A3

(-0.3)^2 1.3^2 (-0.8)^2

1.2^2 -0.5^2 2.0^2

0.2^2 -1.2^2 0.2^2

(-1.1)^2 0.4^2 (-1.4)^2

=

++

Page 13: Rで実験計画法 前編

データに対する分解式

13

二乗和分解の式

自由度の分解式

(12 = 1 + 2 + 9)

Page 14: Rで実験計画法 前編

一元配置の分散分析表

result <- summary(aov(data~lev,data=exp.data))

14

DF・・・自由度SumSq・・・要因変動MeanSq・・・1自由度あたりの要因変動(41.04/2、12.96/9)

Fvalue・・・MeanSqを誤差の要因変動で割った値(20.52/1.44)

Pr・・・P値

有意である

> result

Df Sum Sq Mean Sq F value Pr(>F)

lev 2 41.04 20.52 14.25 0.001625 **

Residuals 9 12.96 1.44

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Page 15: Rで実験計画法 前編

分散分析のイメージ

•水準の違いによる散らばり(σ1^2)は誤差の散らばり(σ2^2)よりも大きいと言えるか?

•分散比が1より大きい(σ1^2/σ2^2 >1)となれば、水

準の違いによる値の散らばりは、誤差の散らばりより大きいと言える→水準により測定値が変化すると言える!

(誤差の範囲での変化とはいえない)

• 2つのデータ集合の分散比を調べるのはF検定

•データの散らばりは正規分布に従っていると仮定

• F分布はカイ二乗分布から構成されている

15

で二乗和を求めるのはこのため

Page 16: Rで実験計画法 前編

区間推定

•有意な因子による影響を調べる

•最適な組に対する推定に興味があるため

16

各水準の繰り返し回数4

1.44

各水準の平均

Page 17: Rで実験計画法 前編

なぜ分散分析なのか

• t検定の繰り返しで差の有意性を調べるのは?

•有意水準5%でn回検定すると1-0.95^nの確率で第一種の誤り(違うのに正しいと言ってしまう)を犯してしまう→第一種の誤りが5%より大きくなるのでダメ

(多重性の問題)

•本当にダメ?

•ボンフェローニ法という手法がある

• 5%/(t検定を行う回数)を有意水準としたt検定

•手軽だが、かなり厳しめに見積もる傾向がある

17

4水準であれば =6

より5/6%が有意水準

Page 18: Rで実験計画法 前編

二元配置• 問題ある百貨店は食料品店の売上向上のために、次の因子を組み合わせた実験を行った。因子A: 水曜日、土曜日、日曜日因子B:試食の提供をした/しない各組み合わせに対し2日ずつ実験を行い、1日の売上数を調べたところ、下のようになった。因子A、Bは効果があると言えるか。

18

B1(した) B2(しない)

A1(水曜日) 64、58 27、31

A2(土曜日) 61、69 56、50

A3(日曜日) 63、57 51、49

Page 19: Rで実験計画法 前編

二元配置のデータ作成

sales <- c(64,58,27,31,61,69,

56,50,63,57,51,49)

lev.A <- c(rep("A1",4),

rep("A2",4),rep("A3",4))

lev.B <- rep(rep(c("B1","B2"),c(2,2)),3)

sales.data <- data.frame(levA=lev.A,

levB=lev.B,sales=sales)

19

levA levB sales

A1 B1 64

A1 B1 58

A1 B2 27

A1 B2 31

A2 B1 61

A2 B1 69

A2 B2 56

A2 B2 50

A3 B1 63

A3 B1 57

A3 B2 51

A3 B2 49

Page 20: Rで実験計画法 前編

二元配置のデータの分解式

•一元配置と同様に分解できる

•データ=平均+Aの影響+Bの影響+誤差

20

64、58 27、31

61、69 56、50

63、57 51、49

53、53 53、53

53、53 53、53

53、53 53、53

= +-8、-8 -8、-8

6、6 6、6

2、2 2、2

+9、9 -9、-9

9、9 -9、-9

9、9 -9、-9

10、4 -9、-5

-7、1 6、0

-1、-7 5、3

+

Page 21: Rで実験計画法 前編

二元配置の変動計算

21

一元配置と同様に計算可能

やはり二乗和分解できる

自由度も分解可能

Page 22: Rで実験計画法 前編

二元配置の分散分析表

summary(aov(sales~levA+levB,data=sales.data))

22

> summary(aov(sales~levA+levB,data=sales.data))

Df Sum Sq Mean Sq F value Pr(>F)

levA 2 416 208 4.2449 0.055399 .

levB 1 972 972 19.8367 0.002128 **

Residuals 8 392 49

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

有意

結論:試食の提供の有無は売上に影響があると言える!

→これで十分な分析なのか?No!

Page 23: Rで実験計画法 前編

交互作用

•水準の組み合わせにより発生する効果のこと

•繰り返し測定のある場合に測定できる

•交互作用も各因子の水準毎に平均を0とする

•交互作用の自由度は因子Aの水準数をm、因子Bの水準数nとすると、(m-1)(n-1)になる

23

B1 B2 合計

A1 a -a 0

A2 b -b 0

A3 -(a+b) a+b 0

合計 0 0 0

B1 B2 合計

A1 a ? 0

A2 b ? 0

A3 ? ? 0

合計 0 0 0

Page 24: Rで実験計画法 前編

傾向の把握その2

• interaction.plot(lev.A,lev.B,sales)

•線の間隔が一定でなければ交互作用効果がありそう

24

A1と因子Bの組には極端な変化がみられる!

Page 25: Rで実験計画法 前編

交互作用を考慮したデータの分解

25

•データ=平均+Aの影響+Bの影響+交互作用+誤差

64、58 27、31

61、69 56、50

63、57 51、49

53、53 53、53

53、53 53、53

53、53 53、53

= +-8、-8 -8、-8

6、6 6、6

2、2 2、2

+9、9 -9、-9

9、9 -9、-9

9、9 -9、-9

3、-3 -2、2

-4、4 3、-3

3、-3 1、-1

+7、7 -7、-7

-3、-3 3、3

-4、-4 4、4

+

交互作用を考慮しない場合は合わせて誤差になる

10と4の平均=7

Page 26: Rで実験計画法 前編

交互作用を考慮した分散分析表

Df Sum Sq Mean Sq F value Pr(>F)

levA 2 416 208 13.00 0.0065918 **

levB 1 972 972 60.75 0.0002351 ***

levA:levB 2 296 148 9.25 0.0146878 *

Residuals 6 96 16

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

26

summary(aov(sales~levA+levB+levA:levB,data=sales.data)) or

summary(aov(sales~levA*levB,data=sales.data))

• 曜日と試食提供の有無の組合せも効果がある

• 交互作用項ができたことで、残差の自由度以上に、残差変動が減っている→交互作用は無視できない

Page 27: Rで実験計画法 前編

多元配置から方格を用いた実験へ

•多元配置の問題点

•実験回数が指数的に増える

• n元配置で、k水準の実験を行うと最低k^n回必要

•ラテン方陣を用いるとある程度解決する

•グレコ・ラテン方陣を使うと、更に効率よく実験可能

27

Page 28: Rで実験計画法 前編

ラテン方陣

• n*nの正方格子にn種類の文字を入れる

•どの行方向、列方向にもすべての文字が1個ずつ現れる

28

C1 C2 C3

C2 C3 C1

C3 C1 C2

Page 29: Rで実験計画法 前編

ラテン方格と二元配置の関係

29

B1 B2 B3

A1 C1 C2 C3

A2 C2 C3 C1

A3 C3 C1 C2

ラテン方陣を用いた実験計画をラテン方格という

どの因子のどの水準に着目しても、他の因子の水準が同数実験されている(バランスが取れているという)

ラテン方陣は二元配置に組み込むことができる

バランスが取れていると、データの分解式が容易に作成できる

Page 30: Rで実験計画法 前編

ラテン方格利用時のデータの分解

•これまでと同様に分解可能

•データ=平均+因子A,B,Cの効果+誤差

30

B1 B2 B3

A1 C1 C2 C3

A2 C2 C3 C1

A3 C3 C1 C2

B1 B2 B3

A1 21 25 11

A2 5 27 16

A3 13 17 18

=

+

17 17 17

17 17 17

17 17 17

+2 2 2

-1 -1 -1

-1 -1 -1

+ +-4 6 -2

-4 6 -2

-4 6 -2

5 1 6

-6 5 1

1 -6 5

1 1 0

-1 0 1

0 1 -1

Page 31: Rで実験計画法 前編

グレコ・ラテン方陣

α β γ δ

β α δ γ

γ δ α β

δ γ β α

31

a c d b

b d c a

c a b d

d b a c

αa βc γd δb

βb αd δc γa

γc δa αb βd

δd γb βa αc

重ねる

直交・・・重ねたときに同じ文字の組み合わせがない2個のラテン方陣の関係

• グレコ・ラテン方陣はラテン方陣を重ねたもの

• 4水準4因子の実験が16回でできる(4元配置は4^4=256回)

バランスが取れている

Page 32: Rで実験計画法 前編

グレコ・ラテン方格で水準設定

32

B1 B2 B3 B4

A1 C1D1 C2D3 C3D4 C4D2

A2 C2D2 C1D4 C4D3 C3D1

A3 C3D3 C4D1 C1D2 C2D4

A4 C4D4 C3D2 C2D1 C1D3

グレコ・ラテン方陣で因子Cの水準にはギリシャ文字、因子Dの水準にはアルファベットを割り当てる。上の例では、以下のように水準を割り当てた。α:C1、β:C2、γ:C3、δ:C4、a:D1、b:D2、c:D3、d:D4

データの分解や分散分析表の作り方はこれまでと同じ

Page 33: Rで実験計画法 前編

残差の寄せ集め(プーリング)

•分散分析表を作成した後に、不要と判明した因子を誤差に取り込む

• F値が1~2以下のものが対象になる

•測定に伴う誤差程度しか分散がないから→因子が測定にまったく影響していない

• 1自由度当たりの誤差変動は増えず、誤差の自由度が増えるため、検定で有意になるためのF値が小さくなる

•意味のある実験結果が得られる可能性が増す

•特に誤差の自由度が少ないときに有効

33

Page 34: Rで実験計画法 前編

方格から直交表へ

•二元配置に組み込めるk水準の因子はk-1個まで

• k^2回の実験でk水準の因子がk+1個まで調べられる

•ただしk=p^s(pは素数、sは正の整数)の場合しか配置が知られていない

• k水準の因子がk+1個まで調べられる配置を整理したものを直交表とよぶ

34

Page 35: Rで実験計画法 前編

実験計画法の原則(by フィッシャー)

•反復•誤差を評価できるようにする

•無作為化

•慣れを防ぐ

•時間的・空間的な要因を排除する(気温・季節など)

•局所管理

•要因以外の要素を極力一定にする

•例:生物の成長実験では体格が同じ個体を使う

35

これまでの実験は、実はランダムに実験するべき内容であることに注意!

Page 36: Rで実験計画法 前編

まとめ

•一元配置、二元配置の計算方法を紹介した

• Rの出力結果を手計算で求めることもできる

•問題によっては交互作用を考えることがある

•方格を用いると、実験回数が多元配置より大幅に減らせる

36

Page 37: Rで実験計画法 前編

参考資料

•よくわかる実験計画法(著:中村義作)

• Rと分散分析(金明哲先生のWebページ)

• http://mjin.doshisha.ac.jp/R/12.html

•統計学入門(東京大学出版会)

•自然科学の統計学(東京大学出版会)

37

Page 38: Rで実験計画法 前編

ご清聴ありがとうございました

38

Page 39: Rで実験計画法 前編

補足:因子変動の計算

•実はデータの分解式を作らなくてもよい

•以下の式で計算可能

39