転職活動の中で、実験計画(Design of Experiments)と分散分析の概念を問われる場面がありました。
また、ずっと気になっていて着手していない分野だったため、大村平著の「実験計画と分散分析のはなし」で学習しました。
本記事では、可能な限り概念のポイントをまとめ、数式や細かい計算をせずとも要点ががわかるよう紹介したいと思います。詳細を知りたい方はぜひ上記著書で勉強してください。
とりあえず要点を知りたい方は、まとめからご覧ください。
実験計画
実験計画法は、20世紀初頭に農業での実験での応用のためにロナルド・フィッシャーによって提案された手法であり、実験計画法を活用することで以下のようなことが期待できます。
- より効率よく実験を行う方法を設計でき、実験に必要な期間・コストの削減に貢献できる
- 実験結果から注目する因子の効果や、因子間の相互作用効果を適切に評価し、判断できる
限られた時間や資源で意思決定のための実験を行う際には、重要な方法論と言えます。
誤差
実験誤差には大きく分けて系統誤差と偶然誤差が存在します。
系統誤差は実験の設備、環境、条件によって引き起こされる誤差で、系統誤差を軽減するためはドメイン知識を活用して、そもそも系統誤差が生じないような実験の準備や計画を行ったり、系統誤差が実験結果に影響が出ないよう
ランダム化したりといった方法が考えられます。
偶然誤差は完全になくすことはできないのですが、実験回数を増やすことで軽減することは可能です。
偶然誤差が正規分布に従うと仮定したとき、実験をn回実施すると1/√nだけ誤差が小さくなります。
分散分析
分散分析は実験結果の分散を計算し、F分布を使った検定を行う分析のことです。
検定の目的とは、得られた実験結果の差は、実験で制御している因子(実験因子、制御因子)によるものなのか、偶然のばらつきによるものなのか、検証することです。
実験因子による影響が偶然のばらつきによる影響より十分に大きければ(=F分布の統計量が大きい)、偶然のばらつきによって注目している実験結果がたまたま得られる確率は極めて低いことになり、実験結果は実験因子による影響で得られたことが統計的に有意と言えます。
分散分析で特に難しく慣れが必要なのは、検定を行う計算時の自由度の考え方です。
F分布を使った検定では、二つの自由度を用いますが、自由度を間違えるとそもそもの検定結果があてになりません。
層化と乱塊法
実験を行う際に重要になるのは、結果に影響を及ぼしうる要因、すなわち因子です。
因子には我々で制御可能な制御因子(または実験因子)と、ブロック因子と呼ばれる実験者の制御と関係なく存在する実験対象の因子があります。
例えば、ある広告施策が顧客の再購買に効果があるかどうか調べる際に、同じ広告のコンテンツでも大きく顧客の年代によって受ける印象や効果が異なると期待されます。この時に、年代ごとに広告施策の効果を層別に分けて実験することを層化といい、この場合の年代がブロック因子の一例です。
ブロック因子は一般的にドメイン知識から来る仮説で設定され、ブロック因子の水準毎に制御因子の対象をランダム化して割り付けて実験を行う手法を乱塊法といいます。上記の例でいえば、年代ごとに、ランダムに広告の施策の対象を決めて、広告施策効果を測る実験をすることです。
もう少し厳密な話をすると、層化して行う実験と、乱塊法で行う実験は利用目的が少し違うため異なります。
層化実験では、着眼点はあくまで因子の効果の検証(有意性検定)であり、層と層の間の違いは既知のものないし、検証する必要がないです。そのため、層毎の因子の水準は異なっても問題はない。
一方、乱塊法では、層間の違い自体も検証するため、興味のある因子は各ブロックごとで水準数を揃える必要があります。
実験方法 | 層ごとの因子の水準数の制約 |
層別実験 | 異なってもよい |
乱塊法 | 層ごとに等しくなければならない |
ラテン方格や直交表
ラテン方格や直行表はざっくり説明すると、本来網羅的に実験をする回数を減らし、より少ない回数で興味のある因子すべての効果を測るために用いられる、因子とその水準の割り付け表です。
これらを用いるモチベーションは、実験回数を減らしながら実験目的を達成することにあります。
一方、ありうるすべてのパターンで実験を行う場合に比べて偶然誤差は大きくなるというデメリットがあります。
ですが、ビジネスの現場では網羅的に実験を行うことは、準備、期間、コストの観点から難しく、できたとしても時間経過に伴う環境の変化に起因する系統誤差が大きくなるため、偶然誤差が大きくなる天秤とかけて実験回数を減らせるメリットを取ることが多いです。
まとめ
- 実験誤差には系統誤差と偶然誤差がある
- ドメイン知識を総動員して、実験誤差における系統誤差を小さくすべき
- 系統誤差の影響を小さくする工夫として、層化、ランダム化がある。実験手法としては層別実験と乱塊法である
- 偶然誤差は実験回数の平方根に反比例して減少していく
- 実験において因子効果の検証や効果の大きさを知るうえで分散分析の手法がある
- 分散分析の検定に使われる自由度は注意して決める必要がある
- 因子の効果によるばらつきが実験対象全体の偶然のばらつきに比べて十分に大きく、偶然誤差がたまたま違いを起こしたとする確率が極めて低いと、分散分析のF分布検定で認められる場合、因子の効果は統計的に有意である
- ラテン方格や直行表を活用すると、偶然誤差は大きくなるデメリットはあるが、それ以上に目的を達成するための実験回数を減らせるのでよく活用されている
具体例がないと、イメージがわからない部分もあるかと思いますが、
実例を使った説明は次回以降にしたいと思います。