2014-05-20

実験計画法 (Design of Experiment) とは何か? (8)

RSM, Response Surface Methodology(応答曲面法)を利用した実験計画と解析例について、前回は、今までの流れから、因子の水準の全ての組合せの計画(完全実施要因計画, Full Factorial Design)を例に取り上げて解析してみましたが、今回は RSM でよく使われる「中心複合計画」について説明します。※ 説明が不十分ですが、まずは公開して、徐々に書き足していくことをご了承下さい。

中心複合計画(Box-Wilson 法)

中心複合計画 Central Composite Design は、 二次の多項式モデルを用いて最適な条件を探索するのに適した計画の一つです。

中心複合計画の特徴は以下の通りです。

  • 各因子について、2 水準の完全実施計画(あるいは部分実施計画)。一次の項と 2 因子の交互作用効果の推定に寄与。
  • 軸上の 2k 個の計画点。ある点は、ある因子について水準の α 倍ないしは −α 倍、他の因子について 0 とした水準。二次の項の推定に寄与。
  • n 個の中心条件。誤差の推定と二次項の推定に寄与。

3 因子の計画の場合、左図のような水準の組み合わせになります。

実験計画法 (Design of Experiment) とは何か? (7) で扱った例は、以下のような因子と水準範囲でした。

温度[℃]
80 - 120
流量[リットル毎分]
30 - 50
回転数[回転毎分]
250 - 350

これに中心複合計画を適用すると以下のようになります。中心条件の繰り返し数は 3 としました。

> library("rsm")
>  (tbl <- ccd(3, n0 = c(3,0), alpha = "rotatable", randomize = FALSE, inscribed = FALSE, coding = list (x1 ~ (温度 - 100)/20, x2 ~ (流量 - 40)/10, x3 ~ (回転数 - 300)/50), oneblock = TRUE))
   run.order std.order      温度     流量   回転数
1          1         1  80.00000 30.00000 250.0000
2          2         2 120.00000 30.00000 250.0000
3          3         3  80.00000 50.00000 250.0000
4          4         4 120.00000 50.00000 250.0000
5          5         5  80.00000 30.00000 350.0000
6          6         6 120.00000 30.00000 350.0000
7          7         7  80.00000 50.00000 350.0000
8          8         8 120.00000 50.00000 350.0000
9          9         9 100.00000 40.00000 300.0000
10        10        10 100.00000 40.00000 300.0000
11        11        11 100.00000 40.00000 300.0000
12         1         1  66.36414 40.00000 300.0000
13         2         2 133.63586 40.00000 300.0000
14         3         3 100.00000 23.18207 300.0000
15         4         4 100.00000 56.81793 300.0000
16         5         5 100.00000 40.00000 215.9104
17         6         6 100.00000 40.00000 384.0896

Data are stored in coded form using these coding formulas ...
x1 ~ (温度 - 100)/20
x2 ~ (流量 - 40)/10
x3 ~ (回転数 - 300)/50
> 
条件温度流量回転数収率
1803025080.18
21203025082.73
3805025079.79
41205025082.49
5803035080.81
61203035082.12
7805035076.44
81205035079.90
91004030081.01
101004030080.98
111004030081.95
12664030079.63
131344030082.17
141002330081.76
151005730080.26
161004021682.33
171004038479.63

右のテーブル全体を選択して(クリップボードへ)コピーしてから、R 上で次のコマンドを実行してください。クリップボードの値が R のデータフレーム(テーブル)へ読み込まれます。

> tbl <- read.table("clipboard", header = T)
>
> tbl
   条件 温度 流量 回転数  収率
1     1   80   30    250 80.18
2     2  120   30    250 82.73
3     3   80   50    250 79.79
4     4  120   50    250 82.49
5     5   80   30    350 80.81
6     6  120   30    350 82.12
7     7   80   50    350 76.44
8     8  120   50    350 79.90
9     9  100   40    300 81.01
10   10  100   40    300 80.98
11   11  100   40    300 81.95
12   12   66   40    300 79.63
13   13  134   40    300 82.17
14   14  100   23    300 81.76
15   15  100   57    300 80.26
16   16  100   40    216 82.33
17   17  100   40    384 79.63
> 

パッケージ rsm を読み込んで、回帰分析をするために、tbl の因子水準を -1, 0, 1 にコード化します。

> (tbl.coded <- coded.data(tbl, x1 ~ (温度 - 100)/20, x2 ~ (流量 - 40) / 10, x3 ~ (回転数 - 300) / 50))
   条件 温度 流量 回転数  収率
1     1   80   30    250 80.18
2     2  120   30    250 82.73
3     3   80   50    250 79.79
4     4  120   50    250 82.49
5     5   80   30    350 80.81
6     6  120   30    350 82.12
7     7   80   50    350 76.44
8     8  120   50    350 79.90
9     9  100   40    300 81.01
10   10  100   40    300 80.98
11   11  100   40    300 81.95
12   12   66   40    300 79.63
13   13  134   40    300 82.17
14   14  100   23    300 81.76
15   15  100   57    300 80.26
16   16  100   40    216 82.33
17   17  100   40    384 79.63

Data are stored in coded form using these coding formulas ...
x1 ~ (温度 - 100)/20
x2 ~ (流量 - 40)/10
x3 ~ (回転数 - 300)/50
> 

コード化したデータを使って高々二次の線形モデル (SO) にフィッティング(回帰分析)をします。

> (tbl.rsm <- rsm(収率 ~ SO(x1, x2, x3), data = tbl.coded))

Call:
rsm(formula = 収率 ~ SO(x1, x2, x3), data = tbl.coded)

Coefficients:
         (Intercept)      FO(x1, x2, x3)x1      FO(x1, x2, x3)x2  
             81.3329                1.0405               -0.7090  
    FO(x1, x2, x3)x3  TWI(x1, x2, x3)x1:x2  TWI(x1, x2, x3)x1:x3  
             -0.7663                0.2875               -0.0600  
TWI(x1, x2, x3)x2:x3    PQ(x1, x2, x3)x1^2    PQ(x1, x2, x3)x2^2  
             -0.7450               -0.2255               -0.1874  
  PQ(x1, x2, x3)x3^2  
             -0.2044  

> 

重回帰分析の統計値の算出は、通常の場合と同じように summary を使います。

> summary(tbl.rsm)
Call:
rsm(formula = 収率 ~ SO(x1, x2, x3), data = tbl.coded)

            Estimate Std. Error  t value  Pr(>|t|)    
(Intercept) 81.33287    0.38906 209.0510 1.513e-14 ***
x1           1.04049    0.18174   5.7251 0.0007165 ***
x2          -0.70900    0.18174  -3.9011 0.0058903 ** 
x3          -0.76630    0.18264  -4.1957 0.0040573 ** 
x1:x2        0.28750    0.23852   1.2053 0.2672386    
x1:x3       -0.06000    0.23852  -0.2515 0.8086174    
x2:x3       -0.74500    0.23852  -3.1234 0.0167648 *  
x1^2        -0.22548    0.19782  -1.1398 0.2918503    
x2^2        -0.18742    0.19782  -0.9474 0.3749705    
x3^2        -0.20440    0.20184  -1.0127 0.3449259    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Multiple R-squared:  0.9185,    Adjusted R-squared:  0.8137 
F-statistic: 8.766 on 9 and 7 DF,  p-value: 0.004582

Analysis of Variance Table

Response: 収率
                Df  Sum Sq Mean Sq F value    Pr(>F)
FO(x1, x2, x3)   3 29.8579  9.9526 21.8665 0.0006232
TWI(x1, x2, x3)  3  5.1303  1.7101  3.7571 0.0678184
PQ(x1, x2, x3)   3  0.9213  0.3071  0.6747 0.5944141
Residuals        7  3.1861  0.4552                  
Lack of fit      5  2.5776  0.5155  1.6945 0.4112877
Pure error       2  0.6085  0.3042                  

Stationary point of response surface:
       x1        x2        x3 
 1.453147 -1.286240  0.256269 

Stationary point in original units:
    温度     流量   回転数 
129.0629  27.1376 312.8134 

Eigenanalysis:
$values
[1]  0.2123273 -0.2428227 -0.5868074

$vectors
         [,1]        [,2]       [,3]
x1 -0.2766053  0.93416169  0.2254583
x2 -0.7064912 -0.03863937 -0.7066663
x3  0.6514290  0.35475192 -0.6706649


> 

応答の等高線図 (Contour Map) をプロットしてみましょう。

> par (mfrow = c (2,3))
> contour(tbl.rsm, ~x1+x2+x3, at = xs(tbl.rsm))
> persp (tbl.rsm, ~x1+x2+x3, at = xs(tbl.rsm)) 
>

参考サイト

  1. Central composite design - Wikipedia, the free encyclopedia
  2. 5.3.3.6.1. Central Composite Designs (CCD)
  3. 応答曲面法のための実験計画

0 件のコメント: