# 直交表のご利益
###### tags: `service-data-science-2023`
## L4を使用して実験を行う上での注意
選好に影響を与える因子の数が3つならL4直交表を用いて、4枚のプロファイルを用意すればいいです。このとき4枚の間の順位付けを行ってもらうので、評価者には比較し易いかもしれません。
4因子ならL4直交表は使えないので、L8直交表を用いることになり、8枚のプロファイルカードを用意します。8枚の間の順位付けは、4枚の間よりは少々複雑です。迷うものもあるかもしれませんし、同順位をつけたくなるものがあっても、頑張って順位付けをしてもらうことになるかもしれません。
評価対象の数が増えるほど、順位付けは複雑な作業となります。そして選好に影響を与える可能性がある因子の数が増えるほど、評価対象の数を増やさなければ、周辺効用値を推定できません。また、どの因子が選好に大きな影響を与え、どの因子が小さな影響しか与えないかは、実験してみないと推定できません。
因子数を決めると評価対象数が決まります。でも実験は、選好に影響が大きな因子を大きい順に並べるのが目的です。そのために、影響が小さい因子も含めて実験したくなりますが、そういう姿勢では因子数が容易に膨らんでしまいます。
```graphviz
digraph A {
layout = circo
因子数 -> 評価対象数 -> 各因子の影響の大きさ -> 因子数
}
```
このように堂々巡りです。そして評価者に整合的な順位付けを行ってもらわなければならないため、プロファイルカードの枚数はそれほど増やせません。
3因子への絞り込みが確実なら、L4でいいと思います。しかし実験を行ってしまいますので、本当に3因子で良いか、という判断の責任が実験ではなく、計画者の肩に乗ってしまいます。同じ問題は、L8でも生じます。最大7因子で検討が十分か、です。L16でも同様です。
L4を使う上での注意は特にありません。ただ、直交表を用いてコンジョイント分析を行う際に常に、その因子数で十分か、の事前検討が必要になります。十分かどうかは、実験の企画段階と、実験の結果を見てからの2回、検討できます。
以下、話は長くなりますが、実験をするので回数は制限しないといけなくて、その中でも十分な因子数および交互作用の数を考慮して実験したい、という話が続きます。
## そもそも実験をするか、実験せずに済むか
統計学の中に、実験計画法と呼ばれる分野があります。実験の計画と実施と解析に関する手法を整備する分野ですが、実験対象だけは研究しません。理由は実験対象は、統計学の研究する対象ではなく、統計学を用いて研究する対象だからです。
実験計画法を用いる前提は、因子を取り上げて水準の組み合わせを指定して実験すると始めて、特性が観測できることです。例えば、f(x)=x^2-2x+3を最小化する問題は、因数分解を行うと直ちに解が求まります。y=(x-1)^2+2ですから、x=1の時に最小値2を取ります。関数が与えられたら、実験をしなくとも最適化が可能です。これは解析的な最適化といいます。解析的な最適化に実験は必要ありません。
またf(x)=x^2-2x+3が与えられると、数値的な最適化も可能です。黄金分割法や、Excelのソルバーで行える線形計画法など。f’(x)=2x-2を与えると、ニュートン法も使えます。これらは数値的な最適化といいます。数値的な最適化は、こんな感じです。
1. left=0, center=5, right=10 (3点x=0, 5, 10 からスタート)
* → f(left)=0^2-2*0+3=3, f(center)=5^2-2*5+3=18, f(right)=10^2-2*10+3=83 (3点の関数の値を求める)
* → f(left) < f(center) < f(right) (左x=0、真ん中 x=5, 右x=10の順に関数の値f(x)が大きくなる)
* → leftは動かさず、centerをleftとcenterの中点、rightを前のcenterの位置にとって、全体を狭める
2. left=0, center=2.5, right=5
* → f(left)=0^2-2*0+3=3, f(center)=2.5^2-2*2.5+3=3.25, f(right)=5^2-2*5+3=18 (3点の関数の値を求める)
* → f(left) < f(center) < f(right) (左x=0、真ん中 x=2.5, 右x=5の順に関数の値f(x)が大きくなる)
* → leftは動かさず、centerをleftとcenterの中点、rightを前のcenterの位置にとって、全体を狭める
3. left=0, center=1.25, right=2.5
(以下、同様)
こういう探し方は関数f(x)の評価を何度繰り返してもいい状況で許されます。実験が必要なら時間、お金、労力などの対価が生じるので、回数に制限があります。
実験計画法は、これ(関数の値=特性の任意の回数の評価)ができない状況で用いられます。
例えば、毎日のランチにビッグマックを必ず食べるが、それ以外の生活習慣を変えない、ということを30日間行ったら体重が増えるか、という実験を行うとします。この実験で知りたいのは、何個までなら太らないか、です。カロリー計算で予想はできますが、実験してみないとアウトカムである体重が測定できません。尚、30日間というのは、日内や週内の変動の影響を受けないような、一定期間の目安に過ぎません。
そこで変数を因子、変数の値を水準と呼び、少ない回数の変数の値の組み合わせで実験をしながら、良い組み合わせを探そうとします。直交表は更に、交互作用効果(各変数の単独の効果ではなく、各変数の組み合わせの効果)を調べることを諦める代わりに、実験回数を劇的に減らしてくれます。
## 直交表が実験回数を減らせている理由
2水準で3因子の実験の場合には、交互作用も検討しようとすると、2^3=8通りの実験が必要です。
|x1|x2|x3|y|
|---|---|---|---|
|1|1|1| |
|1|1|2| |
|1|2|1| |
|1|2|2| |
|2|1|1| |
|2|1|2| |
|2|2|1| |
|2|2|2| |
実験誤差の大きさを評価したいなら、すべての実験を2回以上繰り返します。
|x1|x2|x3|y1|y2|
|---|---|---|---|---|
|1|1|1| | |
|1|1|2| | |
|1|2|1| | |
|1|2|2| | |
|2|1|1| | |
|2|1|2| | |
|2|2|1| | |
|2|2|2| | |
これを4通りに減らすのが、L4直交表です。
|x1|x2|x3|y|
|---|---|---|---|
|1|1|1| |
|1|1|2|---|
|1|2|1|---|
|1|2|2| |
|2|1|1|---|
|2|1|2| |
|2|2|1| |
|2|2|2|---|
実験誤差の大きさを評価したいなら、すべての列に因子を割り付けていたら、2回以上繰り返します。
|x1|x2|x3|y1|y2|
|---|---|---|---|---|
|1|1|1| | |
|1|1|2|---|---|
|1|2|1|---|---|
|1|2|2| | |
|2|1|1|---|---|
|2|1|2| | |
|2|2|1| | |
|2|2|2|---|---|
yのところに横線を引いたところは実験しません。このように減らすと、3因子実験なら3因子それぞれの効果(主効果)を推定できます。2因子実験なら、2因子の主効果と2因子間の交互作用を推定できます。ただし、できる、と言っても、2因子間交互作用にf(1,2)-f(1,1)=f(2,1)-f(2,2)という条件をこっそり置いています。これが、直交表が実験回数を減らせているからくりです。
コンジョイント分析では、交互作用を無視します。それを無視することで、なるべく多くの因子の周辺効用値(順位決めに関する主効果)を、可能な比較対象数の元、少ない回数の比較で推定しようとします。この意図が直交表とマッチするのです。
そして、このページの一番上に話は戻ります。