Rで実験計画法(後編)
 @ito_yan
 E-mail:1mail2itoh3@gmail.com
 2012.04.28
 Tokyo.R #22
2




はじめに
• 所属する組織の意見・見解ではありません
• つまらなかったら睡眠学習や復習に当てましょう
• コメント歓迎します(メール、twitterも含めて)
• 実験計画法を味わってみましょう
3




自己紹介
• Twitter ID : @ito_yan
• 最近読んでる統計本
 • 一般化線形モデル入門
 • 統計解析入門(赤平)
• Rに初めて触れて6年
 • Rパッケージガイドブックの記事を書く
4




前編のキーワード
• 一元配置 / 二元配置
 • 因子による影響の有無を調べる
• ラテン方格、グレコ・ラテン方格
 • 多元配置よりもさらに効率よく実験するための表
• 交互作用
 • 二元配置で見られる、組合せによる効果
• プーリング
 • 不要な因子はなかったものとして誤差に取り込む
• 前回のスライドは下記URLを参照
 • http://www.slideshare.net/itoyan110/r-9139125
5




今日の話題
• 二元配置から直交表へ
• 直交表の性質
• 直交表による実験方法
• データの分解
• 交互作用の考慮
• 直交表のソフトウェアテストへの応用
• GUI画面のテスト
• Rによる直交表生成
6




二元配置から直交表へ
7




復習:直交表とは
• k水準の2因子からなる二元配置に、新たに組み込
めるk水準の因子はk-1個まで
• k^2回の実験でk水準の因子がk+1個まで調べられる
• k=p^s(pは素数、sは正の整数)の場合しか配置が知
 られていない
• k水準の因子がk+1個まで調べられる配置を整理し
たものは直交表と呼ばれる
• 注:因子ごとに水準数が異なる直交表もある
8




復習:因子の組込の例(k=3とした場合)
• 二元配置の表に因子を組み込む
• 3水準の因子なら(3-1)個まで組み込める
• 3=3^1なので、組み込み可能である


   B1 B2 B3       B1   B2       B3
A1 C1 C2 C3   A1 C1D1 C2D3 C3D2
A2 C2 C3 C1   A2 C2D2 C3D1 C1D3
A3 C3 C1 C2   A3 C3D3 C1D2 C2D1
9




 直交表として整理する
                         A   B   C   D
     B1   B2   B3    1   1   1   1   1
 A1 C1D1 C2D3 C3D2   2   1   2   2   3
 A2 C2D2 C3D1 C1D3   3   1   3   3   2
 A3 C3D3 C1D2 C2D1   4   2   1   2   2
1つのセルが直交表の1行に        5   2   2   3   1
対応する                 6   2   3   1   3
                     7   3   1   3   3
3^4=81回の実験が9回に減る     8   3   2   1   2
                     9   3   3   2   1
10




直交表の重要な性質
• 2列の水準の組合せがすべて同数出現する
      1 2 3 4 5 6 7       1   2   3    4
  1   1 1 1 1 1 1 1   1   1   1   1    1
  2   1 1 1 2 2 2 2   2   1   2   2    3
  3   1 2 2 1 1 2 2   3   1   3   3    2
  4   1 2 2 2 2 1 1   4   2   1   2    2
  5   2 1 2 1 2 1 2   5   2   2   3    1
  6   2 1 2 2 1 2 1   6   2   3   1    3
  7   2 2 1 1 2 2 1   7   3   1   3    3
  8   2 2 1 2 1 1 2   8   3   2   1    2
                      9   3   3   2    1
11




なぜ直交表というのか?
• 因子による水準の影響は平均0になると考える
• 2水準の因子は+aと-aの影響を与える
• 表の任意の2列を取ってきて内積をとると0
                         1            2
• 水準の組合せが同数あるため
                        +a(1)        +b(1)
• この状態を「直交性がある」という      +a(1)        +b(1)
                        +a(1)        -b(2)
直交表は直交性を維持したまま、         +a(1)        -b(2)
できるだけ列を詰め込んだ表である        -a(2)        +b(1)
                        -a(2)        +b(1)
                        -a(2)        -b(2)
                        -a(2)        -b(2)
12




直交表による実験方法
13




直交表を用いた実験計画の問題
• 2水準をもつ4つの因子(A~D)を設定し、製品の
強度実験を行いたい。必要な直交表は?
• 因子は原材料の割合(3%と5%)、作業員熟練度(3
 年目と10年目)など
• 直交表のサイズ(実験回数)を見積もる
• 水準が最も多い2因子の水準数の積
• Σ(各因子の水準数 - 1) + 1 (自由度に注目)
• 上記の見積もりの結果はそれぞれ4、5となる
• 5回以上実験する直交表で、2水準の4因子を組み
 込めるのは
14




直交表を用いた実験例
• 因子を割り付けて実験を行った結果は次の通り
• Aに原材料の割合、Bに熟練度…と割り当てる
• 問題:有意な因子はA、B、C、Dのどれか?
      A   2   B   4   C   6   D   データ
  1   1   1   1   1   1   1   1    40
  2   1   1   1   2   2   2   2    46
  3   1   2   2   1   1   2   2    28
  4   1   2   2   2   2   1   1    18
  5   2   1   2   1   2   1   2    32
  6   2   1   2   2   1   2   1    26
  7   2   2   1   1   2   2   1    32
  8   2   2   1   2   1   1   2    58
15




データの分解(1)
• 基本は二元配置などと同じ
 • データを平均、因子の効果、誤差に分解する
• 平均
 • m = (40+46+28+18+32+26+32+58)/8 = 35
• 因子Aの効果
 • a1 = (40+46+28+18)/4 - m = -2
 • a2 = (32+26+32+58)/4 - m = 2
• 他の因子も同様にして計算する
 • b1 = 9, b2=-9, c1=3, c2=-3, d1=-6, d2=6
16




データの分解(2)
• ベクトル形式で分解式を表現する
データ 平均m 因子A 因子B     因子C 因子D   誤差項
 40   35   -2    9    3   -6    1
 46   35   -2    9   -3    6    1
 28   35   -2   -9    3    6   -5
 18   35   -2   -9   -3   -6    3
    =    +    +    +    +    +
 32   35    2   -9   -3    6    1
 26   35    2   -9    3   -6    1
 32   35    2    9   -3   -6   -5
 58   35    2    9    3    6    3
17




データの分解(3)
• 全変動(全データの2乗和)


• 平均変動
• 主効果(因子の効果)

                  合計10912
                  SSに一致

• 残差変動
18




データの分解(4)
• 全変動は平均変動+因子の効果+残差変動


• 利用していない列の主効果の合計は残差変動
        2   4   6           2   4   6        データ
水準1の平均 36 33 37 全体平均35      1   1   1        40
水準2の平均 34 37 33             1   2   2        46
                            2   1   2        28
                            2   2   1        18
                            1   1   1        32
                            1   2   2        26
                            2   1   2        32
                    つまり72   2   2   1        58
19




全変動の分解公式の導出
• x,yを直交するデータとすると、次式が成立


• 直交表に割り付けられた列は互いに直交
• 平均ベクトルと直交表に割り付けられた列も直交
     全要素が同じ値
上の性質を拡張して、互いに直交するベクトル
(x1~xn)について次式が成り立つ


  左辺のデータの二乗和   データの各要素の二乗和
  (全変動)        (平均変動+主効果+残差変動)
20




Rによる分析
                                   二元配置分散分析
A <- paste("A",c(1,1,1,1,2,2,2,2),sep="")
                                           と同様にできる!
B <- paste("B",c(1,1,2,2,2,2,1,1),sep="")
C <- paste("C",c(1,2,1,2,2,1,2,1),sep="")
D <- paste("D",c(1,2,2,1,2,1,1,2),sep="")
V <- c(40,46,28,18,32,26,32,58)
data <- data.frame(A=A,B=B,C=C,D=D,V=V)     BとDが有意な因子
result <- summary(aov(V~A+B+C+D,data=data)) と判断できる
21




カテゴリごとの平均の違い




               B、Dは平均を結ぶ
               直線の傾きが大きい!
22




列の割当について
• 先程は適当に1、3、5、7列を割り当てたが、仮に
A、B、C、Dを1、2、3、4列目に割り当てると?
• A=1、B=1の行はC=1のみになる
                         A B C D
→AとBの排他的論理和がC列に
                         1   1    1   1
(AとBが同じ値のときCは1、2とならない)
                         1   1    1   2
                         1   2    2   1
これは1列目と2列目の交互作用は3列目に
                         1   2    2   2
出ていることを示しており、交互作用を考慮     2   1    2   1
する際は列の割当に注意が必要である        2   1    2   2
では、どうやって交互作用列を見つけるか?     2   2    1   1
                         2   2    1   2
23




交互作用列の見つけ方
• 直交表とセットで与えられる以下の図表を利用する

• 交互作用一覧表                                 • 線点図
    • 4列目と2列目の交互作用                         • 点は主効果
     は6列目に出る                               • 点と点の間が交互作用
列   1     2     3     4     5     6   7    • 2列目と4列目の交互作用が6列目
    (1)   3     2     5     4     7   6               2
          (2)   1     6     7     4   5
                                                  3       7
                (3)   7     6     5   4
                                                      6
                      (4)   1     2   3
                            (5)   3   2      1                     5
                                                      4
                                  (6) 1
24




 交互作用がある場合の列の割当
• 因子A、B、C、Dと交互作用A×B、B×Cの列を割当

                         A B A D C 6 B データ
        B2                   ×       ×
                             B       C
A×B 3        7 B×C
                     1   1   1   1   1   1   1   1    40
         6
                     2   1   1   1   2   2   2   2    46
A1              5C   3   1   2   2   1   1   2   2    28
        D4
                     4   1   2   2   2   2   1   1    18
点の位置に主効果、            5   2   1   2   1   2   1   2    32
線の位置に交互作用            6   2   1   2   2   1   2   1    26
を配置する                7   2   2   1   1   2   2   1    32
                     8   2   2   1   2   1   1   2    58
25




交互作用を考慮した結果
• 仮にAとB、BとCに交互作用があるとして、同様
の実験を行うと、有意な因子はない(分析失敗)
• F値が小さい(2以下)ものはプーリングして対処
  • A、A:B、B:Cをプーリングの対象とする
26




直交表のソフトウェアテストへの適用
27




直交表とソフトウェアテスト
• 直交表の目的
• 少ない実験で組み合わせを網羅する
• ソフトウェアテストの目的
• 最小限のコストで実装された機能を網羅して
 バグを可能な限り見つける

どちらも少ない試行回数で網羅しようとしている
→ソフトウェアテストと直交表はよく似ている!
28




直交表がテストに利用できる根拠
• 事例研究による
• 比較的小規模な開発であれば、2因子網羅で90%
 以上のバグを検出できる
 • 詳しくは参考資料の論文を参照


• 1因子ずつの場合のバグの発見率がpなら(直交
表を利用して2因子の組合せの評価をすれば)そ
れに比較してほぼp^2に期待される(田口玄一)
• p^3のバグはほとんど0とみなしても差し支えない
29




直交表の応用例
• 例題
次のようなGUIをテストする手法を考えよう
    ユーザ登録画面
   http://foo.bar.com/register.cgi

     ユーザ名                                  テキストボックス
     性別                   男性          女性   ラジオボタン
     生年月日              2012      04   28   コンボボックス
     DM配信                 希望する             チェックボックス
                        登録する
30




テストにおける出力の分類
• 異常系
 • 入力に対しエラーを出すべきもの
   • 例:年齢が-1歳、2月30日生まれ
       登録ユーザ名に@`:|¥’)など
• 正常系
 • 入力に対しエラーを吐かずに終了するもの


   直交表で扱うのは正常系のみ
31




直交表で利用する入力について
• 正常系のみとする理由
• エラーを出す入力を直交表で扱うと、異常系のテス
 トケースばかりになる
 • 例えば、2水準のうち1つの水準でエラーメッセージが出る
  因子を3つ用意し、直交表を利用してテストケースを作成
  すると、87.5%は異常系になるため、正常系のテストがほ
  とんどできなくなる
• バグがある場合、あるエラーが別のエラーを隠すと
 いったことが起きてしまう
 • 複数のエラーのうち、先にチェックした方だけが現れるた
  め、後半のチェックに関するテストができない
32




異常系のテスト
• ドメイン分析テスト(右下の表に従いテストする)
• 1つだけ境界値(on)、異常値(off)とし、
  残りは正常値(in)とする         変数   タイプ 1 2 3 4 5 6
• 境界値分析の多変数版                 on       ○
                        a    off          ○
 • バグの切り分けに使える
                                 in           ○○○○
• 例題におけるテスト例                 on               ○
                        b    off                   ○
• 2012/2/29、2012/2/30
                                 in   ○○               ○○
• ユーザ名が空                     on                        ○
                        c    off                           ○
                                 in   ○○○○
                            結果
33




正常系テストにおける考え方(一例)
• チェックボックス
 • チェックを入れる / 入れない (2通り)
• ラジオボタン
 • 1つだけ選択する (2通り)
• テキストボックス
 • 受け付ける入力(3通り)
• コンボボックス
 • 代表値(2通り)
34




2因子網羅のテストケースを生成する
• 複雑な直交表の列を手で作る?
 • 7水準など出てくると厄介
 • ぎりぎりまで効率よく詰め込んだ表の作成は難しい
   • 数学的な理論(有限数学という分野)があるらしいが…
• でもRユーザなら大丈夫!
 • DoE.baseパッケージで直交表を自動生成できる
   • 因子と水準名を与えるだけでよい


Design of Experimentの略
35




Rによる生成例                                 全部試すと96通り、直交表では
                                        24通り に減っている!
library("DoE.base")
name <- c("sato","SUZUKI","takahasi")
gender <- c("male","female")
year <- c("1980","1965")
month <- c("3","12")
day <- c("5","28")
mail <- c("YES","NO")

oaTable <- oa.design(
 factor.names=list(name=name,
 gender=gender,year=year,
 month=month,day=day,mail=mail),
 seed=1
)
36




参考資料
• よくわかる実験計画法(著:中村 義作)
• Rと分散分析(金明哲先生のWebページ)
  • http://mjin.doshisha.ac.jp/R/12.html
• 直交表によるソフトウェアテスト 『HAYST法』の解説と学習
  • http://www.geocities.jp/ka_hayst/hayst.pdf
• D.Richard Kuhn et al. : “Software Fault Interactions and
 Implications for Software Testing”, IEEE TRANSACTIONS
 ON SOFTWARE ENGINEERING, VOL. 30, NO. 6,pp.418-
 421 (JUN. 2004).
37




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




補足:21枚目のグラフを描画するコード
A <- paste("A",c(1,1,1,1,2,2,2,2),sep="")
B <- paste("B",c(1,1,2,2,2,2,1,1),sep="")
C <- paste("C",c(1,2,1,2,2,1,2,1),sep="")
D <- paste("D",c(1,2,2,1,2,1,1,2),sep="")
V <- c(40,46,28,18,32,26,32,58)
data <- data.frame(A=A,B=B,C=C,D=D,V=V) # スライド中の強度実験データ
result <- summary(aov(V~A+B+C+D,data=data))
rng <- range(V) # 描画範囲を全部のグラフで設定しておく

f <- function(fac, val, rng){
 res <- aggregate(val, by = list(fac) , FUN = mean )
 p <- par(cex=1,mai=c(0.8,0.6,0.6,0.3))
 plot(fac,val,ylim=rng,type="n")
 par(p)
 lines(res[,1],res[,2],col="red",lwd=5)
}

oldpar <- par(mfrow=c(2,2))
lapply(data[,1:4], f, data$V, rng)
par(oldpar)
39




補足:因子の割り付け技法
• 多水準化
• ある複数列とその交互作用の列をまとめる
• 下の例では1~3列をまとめて4水準化している
     1 2 3 4 5 6 7       1’   4 5 6 7
 1   1 1 1 1 1 1 1   1   1    1 1 1 1
 2   1 1 1 2 2 2 2   2   1    2 2 2 2
 3   1 2 2 1 1 2 2   3   2    1 1 2 2
 4   1 2 2 2 2 1 1   4   2    2 2 1 1
 5   2 1 2 1 2 1 2   5   3    1 2 1 2
 6   2 1 2 2 1 2 1   6   3    2 1 2 1
 7   2 2 1 1 2 2 1   7   4    1 2 2 1
 8   2 2 1 2 1 1 2   8   4    2 1 1 2
40




補足:2水準系直交表の作り方(1)
①大きさを2倍にする
         1
    1    1
    1    1
    2    2
         2

②水準を均等に割り振った列をつける
    1    1   2
    1    1   1
    1    1   2
    2    2   1
    2    2   2
41




補足:2水準系直交表の作り方(2)
③排他的論理和の結果を追加する
 1   2   1   2   3
 1   1   1   1   1
 1   2   1   2   2   の直交表
 2   1   2   1   2
 2   2   2   2   1


①~③を繰り返しにより、全因子が2水準である
サイズが2^nとなる直交表が作成可能

More Related Content

PDF
Rで実験計画法 前編
PDF
実験計画法入門 Part 1
PDF
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
PDF
第4回DARM勉強会 (構造方程式モデリング)
PPTX
分割時系列解析(ITS)の入門
PPTX
Tokyo r #37 Rubin's Rule
PDF
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
PDF
2 4.devianceと尤度比検定
Rで実験計画法 前編
実験計画法入門 Part 1
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
第4回DARM勉強会 (構造方程式モデリング)
分割時系列解析(ITS)の入門
Tokyo r #37 Rubin's Rule
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
2 4.devianceと尤度比検定

What's hot (20)

PDF
PRML 1.6 情報理論
PDF
1 4.回帰分析と分散分析
PDF
Nagoya.R #12 非線形の相関関係を検出する指標の算出
PDF
研究室内PRML勉強会 11章2-4節
PDF
星野「調査観察データの統計科学」第3章
PPTX
(実験心理学徒だけど)一般化線形混合モデルを使ってみた
PDF
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
PDF
実験計画法入門 Part 3
PDF
東京都市大学 データ解析入門 4 スパース性と圧縮センシング1
PDF
Mplusの使い方 初級編
PDF
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
PPTX
遺伝的アルゴリズム・遺伝的プログラミング
PDF
PRML輪読#4
PDF
PRMLの線形回帰モデル(線形基底関数モデル)
PDF
実験計画法入門 Part 2
PDF
Rにおける大規模データ解析(第10回TokyoWebMining)
PDF
階層モデルの分散パラメータの事前分布について
PDF
PRML輪読#1
PDF
Prml 2.3
PDF
パターン認識 第10章 決定木
PRML 1.6 情報理論
1 4.回帰分析と分散分析
Nagoya.R #12 非線形の相関関係を検出する指標の算出
研究室内PRML勉強会 11章2-4節
星野「調査観察データの統計科学」第3章
(実験心理学徒だけど)一般化線形混合モデルを使ってみた
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
実験計画法入門 Part 3
東京都市大学 データ解析入門 4 スパース性と圧縮センシング1
Mplusの使い方 初級編
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
遺伝的アルゴリズム・遺伝的プログラミング
PRML輪読#4
PRMLの線形回帰モデル(線形基底関数モデル)
実験計画法入門 Part 2
Rにおける大規模データ解析(第10回TokyoWebMining)
階層モデルの分散パラメータの事前分布について
PRML輪読#1
Prml 2.3
パターン認識 第10章 決定木
Ad

Viewers also liked (7)

PDF
コンジョイント分析の書き方 Slideshare
PDF
Rの拡張を書く (R 2.15.2)
PDF
Rでノンパラメトリック法 1
PDF
コイン投げの分析を一捻り (Japan.R 2013 LT)
PDF
Rでコンジョイント分析
PDF
絶対に描いてはいけないグラフ入りスライド24枚
PDF
エクセルで統計分析 統計プログラムHADについて
コンジョイント分析の書き方 Slideshare
Rの拡張を書く (R 2.15.2)
Rでノンパラメトリック法 1
コイン投げの分析を一捻り (Japan.R 2013 LT)
Rでコンジョイント分析
絶対に描いてはいけないグラフ入りスライド24枚
エクセルで統計分析 統計プログラムHADについて
Ad

Similar to Rで実験計画法 後編 (20)

PDF
一般化線形混合モデル isseing333
PDF
R Study Tokyo03
PDF
Stat r 9_principal
PDF
20081024 ja sst-sapporo
PDF
PPT
020 1変数の集計
PPTX
13.01.20. 第1回DARM勉強会資料#4
PDF
PDF
行列計算を利用したデータ解析技術
PPT
K070k80 点推定 区間推定
PDF
Chap12 4 appendix_suhara
PDF
Chap12 4 appendix_suhara
PDF
生物統計特論6資料 2006 abc法(bootstrap) isseing333
PDF
ビジネス基礎講座:統計学入門 introduction to statistics
KEY
第5章 統計的仮説検定 (Rによるやさしい統計学)
PDF
LET2015 National Conference Seminar
PDF
Excelを使って学ぶ、統計の基礎(3限目) 先生:米谷 学
PDF
Tokyo r7 sem_20100724
PDF
20130223_集計・分析の基礎@アンケート研究会
PPTX
第二回統計学勉強会@東大駒場
一般化線形混合モデル isseing333
R Study Tokyo03
Stat r 9_principal
20081024 ja sst-sapporo
020 1変数の集計
13.01.20. 第1回DARM勉強会資料#4
行列計算を利用したデータ解析技術
K070k80 点推定 区間推定
Chap12 4 appendix_suhara
Chap12 4 appendix_suhara
生物統計特論6資料 2006 abc法(bootstrap) isseing333
ビジネス基礎講座:統計学入門 introduction to statistics
第5章 統計的仮説検定 (Rによるやさしい統計学)
LET2015 National Conference Seminar
Excelを使って学ぶ、統計の基礎(3限目) 先生:米谷 学
Tokyo r7 sem_20100724
20130223_集計・分析の基礎@アンケート研究会
第二回統計学勉強会@東大駒場

More from itoyan110 (20)

PDF
このIRのグラフがすごい!上場企業2024 (The graph on this IR is amazing! Listed companies in J...
PDF
Reviewing Let's Note CF-FV3 (レッツノート CF-FV3 をレビューする)
PDF
このIRのグラフがすごい!上場企業2023
PDF
このIRのグラフがすごい!上場企業2021
PDF
このIRのグラフがすごい!上場企業2020
PDF
このIRのグラフがすごい!上場企業2019
PDF
このIRのグラフがすごい!上場企業2018
PDF
Chapter9 一歩進んだ文法(前半)
PDF
2018年6月期 統計検定2級&準1級 対策スライド
PDF
Chapter7 回帰分析の悩みどころ
PDF
このIRのグラフがすごい!上場企業2017
PDF
NagoyaStat #5 ご挨拶と前回の復習
PDF
NagoyaStat #4 ご挨拶と前回の復習
PDF
このIRのグラフがすごい!上場企業2016
PDF
ベルヌーイ分布からベータ分布までを関係づける
PDF
レッツノートを業務用途にカスタマイズする
PDF
データ解析のための統計モデリング入門 1~2章
PDF
このIRのグラフがすごい!上場企業2015
PDF
Rで確認しながら解く統計検定2級
PDF
なめるな!plot
このIRのグラフがすごい!上場企業2024 (The graph on this IR is amazing! Listed companies in J...
Reviewing Let's Note CF-FV3 (レッツノート CF-FV3 をレビューする)
このIRのグラフがすごい!上場企業2023
このIRのグラフがすごい!上場企業2021
このIRのグラフがすごい!上場企業2020
このIRのグラフがすごい!上場企業2019
このIRのグラフがすごい!上場企業2018
Chapter9 一歩進んだ文法(前半)
2018年6月期 統計検定2級&準1級 対策スライド
Chapter7 回帰分析の悩みどころ
このIRのグラフがすごい!上場企業2017
NagoyaStat #5 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習
このIRのグラフがすごい!上場企業2016
ベルヌーイ分布からベータ分布までを関係づける
レッツノートを業務用途にカスタマイズする
データ解析のための統計モデリング入門 1~2章
このIRのグラフがすごい!上場企業2015
Rで確認しながら解く統計検定2級
なめるな!plot

Rで実験計画法 後編