2014-03-30

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

RSM, Response Surface Methodology(応答曲面法)とは回帰分析の一種で、目的とする変数に対する複数の因子の影響について、有限のデータから連続的な表面として近似させたものです。 複数変数の最適組み合わせを導くのに使われる実験計画法 (DOE) です。今までの分散分析中心の実験計画法から、ひとまず RSM へ話題を移します。


パッケージ rsm

CRAN からパッケージ rsm をインストールして利用できるようにします。

R を起動して、以下のようにして rsm パケージをインストールします。

> install.packages("rsm")
Installing package into ‘/home/bitwalk/R/x86_64-redhat-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
 --- このセッションで使うために、CRAN のミラーサイトを選んでください --- 

右のように CRAN のミラーサイト一覧が GUI で表示されるので、近いと思われる適当なサイトを選択して、ダブルクリックあるいは下の「OK」ボタンをクリックします。。

 URL 'http://cran.ism.ac.jp/src/contrib/rsm_2.04.tar.gz' を試しています 
Content type 'application/x-gzip' length 1013015 bytes (989 Kb)
 開かれた URL 
==================================================
downloaded 989 Kb

* installing *source* package ‘rsm’ ...
**  パッケージ ‘rsm’ の解凍および MD5 サムの検証に成功しました 
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
  converting help for package ‘rsm’
    finding HTML links ...  完了 
    ChemReact                               html  
    FO                                      html  
    bbd                                     html  
    ccd                                     html  
    ccd.pick                                html  
    codata                                  html  
    coded.data                              html  
    contour.lm                              html  
    djoin                                   html  
    heli                                    html  
    model.data                              html  
    rsm-package                             html  
    rsm                                     html  
    steepest                                html  
    varfcn                                  html  
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (rsm)

 ダウンロードされたパッケージは、以下にあります 
  ‘/tmp/RtmpSQBlvV/downloaded_packages’ 

以上で無事、パッケージ rsm がインストールされましたので、早速、rsm のマニュアルで紹介されているサンプルから、今後使うことになるプロットを紹介しましょう。

> library('rsm')
> heli.rsm <- rsm (ave ~ block + SO(x1, x2, x3, x4), data = heli)
> heli.rsm

Call:
rsm(formula = ave ~ block + SO(x1, x2, x3, x4), data = heli)

Coefficients:
             (Intercept)                    block2      FO(x1, x2, x3, x4)x1  
               372.80000                  -2.95000                  -0.08333  
    FO(x1, x2, x3, x4)x2      FO(x1, x2, x3, x4)x3      FO(x1, x2, x3, x4)x4  
                 5.08333                   0.25000                  -6.08333  
TWI(x1, x2, x3, x4)x1:x2  TWI(x1, x2, x3, x4)x1:x3  TWI(x1, x2, x3, x4)x1:x4  
                -2.87500                  -3.75000                   4.37500  
TWI(x1, x2, x3, x4)x2:x3  TWI(x1, x2, x3, x4)x2:x4  TWI(x1, x2, x3, x4)x3:x4  
                 4.62500                  -1.50000                  -2.12500  
  PQ(x1, x2, x3, x4)x1^2    PQ(x1, x2, x3, x4)x2^2    PQ(x1, x2, x3, x4)x3^2  
                -2.03750                  -1.66250                  -2.53750  
  PQ(x1, x2, x3, x4)x4^2  
                -0.16250  

> par (mfrow = c (2,3))
> contour (heli.rsm, ~x1+x2+x3+x4, at = xs(heli.rsm))
> contour (heli.rsm, ~x1+x2+x3+x4, at = list(block="2"),
+ atpos = 0, image = TRUE)
> persp (heli.rsm, ~x1+x2+x3+x4, at = xs(heli.rsm))
> persp (heli.rsm, ~x1+x2+x3+x4, at = xs(heli.rsm),
+ contours = "col", col = rainbow(40), zlab = "Flight time",
+ xlabs = c("Wing area", "Wing length", "Body width", "Body length"))
> 

詳細な使い方については、今後、サンプルを使って説明していく予定です。

0 件のコメント: