はじめよう実験計画

実験を早く終わらせるための技術

Rによる決定的スクリーニング計画

はじめに

本記事では、決定的スクリーニング計画(DSD)の具体的な作成方法と解析手法について簡単にまとめました。統計用の言語であるRを使用したやり方をご紹介します。

Rのインストールは無料なので、もしよろしければ、こちらの記事を参考にインストールしてみてくださいね。プログラムになれていなくても簡単にできます!

sturgeon.hatenablog.com

決定的スクリーニング計画(DSD)とは

決定的スクリーニング計画は、比較的新しい実験計画法の手法で、Definitive Screening Designの頭文字をとってDSDと呼ばれています。簡単な特徴として、

  1. 3水準(低・中・高)の実験であり、条件の最適化に有利。
  2. 効果の交絡が少ない。
  3. 最小の試行回数は(2×要因数+1)回。

などが挙げられます。表1に4要因DSDの計画表(デザインマトリックス)の例を示します。ここでA,B,C,Dは要因を、-1,0,1は水準を表しています。

f:id:Sturgeon:20200503134047p:plain

表1 4要因の決定的スクリーニング計画

DSDのさらに詳しい特徴に関しては、こちらの記事をご覧ください。

sturgeon.hatenablog.com

Rを用いたDSDの作成方法

表1のようなDSDの表の作成は、特殊なアルゴリズムが必要なため、残念ながらExcelなどで作成することはできません。

そこで、本章では統計用のRを用いたDSDの作成方法をご紹介します。

RによるDSDの作成は、パッケージのdaewrの関数DefScreenを使用するだけです。

  1. RとRstudioのインストール(詳しくはこちら)
  2. パッケージdaewrのインストール
  3. 関数DefScreenの実行

やることはこれだけです。下に実行結果を示します。簡単に4要因のDSDが作成できました。

> library(daewr)
> DefScreen(4)
   A  B  C  D
1  0  1 -1 -1
2  0 -1  1  1
3 -1  0 -1  1
4  1  0  1 -1
5 -1 -1  0 -1
6  1  1  0  1
7 -1  1  1  0
8  1 -1 -1  0
9  0  0  0  0

 

DSDの評価

DSDに限らず、すべての実験計画に通用することですが、計画を作成した後は、必ず評価が必要です。一般的な評価項目としては

  1. 交絡関係のチェック
  2. 検出力の評価(→記事準備中)
  3. 予測分散のチェック(→詳しくはこちら

などが挙げられます。

DSDは交絡関係が少ないことが大きな特徴であるため、本記事では、相関のカラーマップを用いた交絡関係のチェックについてのみ、説明したいと思います。

DSDでは主効果(要因の一次効果)・交互作用・2乗効果を推定できるので、2次の項までの交絡関係を調べます。この交絡関係を見るには、図1のような相関のカラーマップが便利です。

f:id:Sturgeon:20200813170416p:plain

図1 4要因DSDの相関のカラーマップ

上のカラーマップは2次項までの相関係数を表しています。この図からわかることは、まずDSDの特徴として主効果と交互作用および2乗効果がすべて直交しているということです。一方、交互作用と2乗効果には一部やや強い相関があるので、特定の2次の効果に注目したい場合には、重要そうな他の効果との交絡が起きないよう、要因の割り当てを考慮する必要があります。

DSDの解析手法

計画の作成と評価が完了したら、A,B,C,Dに実際の要因を割りあてて、実験をします。今、仮に実験を行って表2の結果Yが得られたとしましょう。この仮の実験結果をもとに解析方法について説明します。

f:id:Sturgeon:20200813174453p:plain

表2 4要因DSDの実験結果(仮)

ちなみに、表2のYの値は

 Y=2A+3B-B*C+N(0,0.5) \tag{1}

として計算しました(適当です)。N(0,0.5)は平均0、分散0.5の正規分布に従う乱数です。

主効果残差プロット

さて、実験結果が得られたら、結果を解釈する必要があります。

ところが、DSDでは要因の可能な組合せのうち、ほんのわずかのパターンしか実験を行っていないため、ひとつひとつのYの値を単純に比較しても、どの要因の効果が大きいのか明らかではありません。

そこで、主効果残差プロットというものを使うと便利です。ここでは、グラフの読み方だけ、簡単に見てみましょう。下の図2が要因Aに対する主効果残差プロットです。

f:id:Sturgeon:20200813174559p:plain

図2 要因Aに対する主効果残差プロット

このグラフは要因A以外の要因B,C,Dに対する回帰直線の残差を、要因Aに対してプロットしたものになっています(なぜこんなことをするのかは今度、別の記事に書きます)。結論だけ言うと、このグラフによって純粋な要因Aの主効果を評価できるのです。

図2を見ると、直線の傾きがおよそ+2であることから、要因Aの主効果が+2であるということになります。

これを他の変数B,C,Dに対しても行うと図3のようになります。

f:id:Sturgeon:20200813174801p:plain

図3 すべての要因に対する主効果残差プロット。左から要因A,B,C,Dに対するプロット。

図3より、AとBの主効果は明らかに大きく、CとDの主効果はあまり大きくないことが分かります。以上のように、主効果残差プロットを用いて、どの主効果が大きいのか見積もることが出来ます。

分散分析

その他の実験計画法と同様、DSDでも分散分析を行うことができます。分散分析についてはこちらの記事を参考にしていただければと思います。

sturgeon.hatenablog.com

モデル選択

次に、モデル選択について説明します。

モデル選択では、実験結果をよく説明するようなモデル式を選ぶことが大切です。しかし、残差を小さくしようとしてモデル式の説明変数を増やしすぎると、オーバーフィッティングとなり、将来得られるデータに対して当てはまりが悪いモデルになってしまいます。

そこで、AIC(赤池情報量基準)やBIC(ベイジアン情報量基準)といった基準を使ったモデル選択が推奨されています。

以下では、AICc(データ数が少ないためAICの補正版)を用いたモデル選択を行ってみました。Rパッケージの"StepReg"の関数stepwiseを用いています。

Update: パッケージStepRegの仕様が変わって個人的には使いにくかったので、Stepwiseができる関数を自作しました(紹介記事はこちら)。

 

#Model Selection
library(StepReg)
source("add_model_terms.R")
mydata <- add_quadratic(X)#要因A,B,C,Dの2次項の水準を追加。add_model_terms.Rで定義した自作関数。
X2Y <- cbind(mydata,Y)
stepwise(X2Y, y="Y", selection = "forward", select="SL", Choose="AICc", sle=0.5)

上コードの出力結果が下のようになります。

$process
Step EffectEntered EffectNumber     Select   Choose
1    0     intercept            1  1.0000000 34.84670
2    1             B            2 -1.9751855 30.27247
3    2             A            3 -2.5773126 22.74875
4    3            BC            4 -2.4240142 18.26101
5    4            BB            5 -0.7943883 36.46633
$variate#最小AICcによるモデル選択で選ばれた項
[1] "intercept" "B"         "A"         "BC"       

確かに、モデル選択で選ばれた有意な項がintercept(切片項)、B、A、BCとなっていて、実験値の生成に用いた式(1)(もちろん、現実にはこの式は未知であり、結果から推定すべきものです)と合致しています。実際、有意な項だけを用いた回帰分析は

 y=-0.0663+1.96A+2.96B-1.08BC

となり、もとの式(1)とよく合っていますので、モデル選択が正しく行えていることが分かります。

その他の解析

DSDを行った後は、要因と特性の関係を表すコンタ―図を作成したり、最適化する特性が複数ある場合などはオーバーレイプロットなどを作成したりできます。以前、「コーヒーのおいしい淹れ方」で具体的な解析の例を紹介していますので、興味がある方は、ぜひこちらをご覧ください。

www.doe-get-started.com

実験の拡張

最適条件が実験条件の範囲になかった場合や、2乗効果など高次の交絡関係が解消できなかった場合、追加の実験をする必要があります。

DSDの拡張の方法には以下の2種類があります。

  1. 新たなDSDを再度行う。
  2. D最適計画を利用し、回数を指定した拡張(詳しくはこちら)。

Web上でDSDを試せる無料ツールDSDApp

こちら→https://dsdtool.herokuapp.com/

説明が至らず、理解できない点も多かったかもしれませんが、上記のwebツールではとりあえずDSDを体験することが出来ます。ぜひ使ってみてください。使い方はこちらの記事に書いてます(2022/6/26追記)

www.doe-get-started.com