モデル化

得られてくる結果は、一体どのような構造になっているのだろう、といったように概念をとらえてみようというアプローチがモデル化である。本コラムの第12回で紹介した「風が吹けば桶屋が儲かる」も、言わば「ロジックモデル」であり、因果関係を矢印でポンチ絵にしたりすることで、仮説を整理することが出来る。その中でも特に数学の関数式のように数理モデル化するアプローチが、今回のテーマであるフェアな比較をする際によく用いられる。統計学の世界では「全てのモデルは間違っている、だが中には役立つものもある」(George E.P.Box*)という言葉が有名で、要するに実務家が便利に使えるようにザックリいえばテキトーな式であっても便利であればそのモデル式は全て肯定される、という訳だ。 例えば時給1000円のバイトをして受け取る総額のモデル式は以下で表される。

式(1)Y=1000x
(Yは受け取る総額<円>、Xは働いた時間<hour>)

仮にこのバイトの魅力は昼食付きであるとして、昼食1回あたり800円相当のランチが食べられるとすると、そのモデル式は

式(2)Y=1000X1+800X2
(Yは受け取る総金額価値<円>、X1は働いた時間<hour>、X2は昼食支給回数<回>)

こうしたモデル式において左辺のYは知りたい、目的とするものなので「目的変数」、Xの方はその「説明変数」という。一方、異なる視点であくまでXの方が決まることでそれに従順にYの値が決まることから、Xを「独立変数」と表現し、Yを脇役(?)とみなし「従属変数」と表現することもある。我々はこのバイトの条件を知っているのでモデル式を作るのは簡単だが、実践ではこのアルゴリズムがわからない状況の中で、モデル式を推察することになる。例えば表4のようなデータしか入手出来なかった場合、6月2日は昼食が支給されていないことを見破り、このバイトの時給が1000円、交通費支給なし、終日勤務の場合は昼食が出ること、つまり式(2)を見いだせるかどうかという話になる。

表4
           
日付 総額 労働時間 移動時間
6/1 8800円 8時間 15分×2
6/2 4000円 4時間 15分×2
6/3 8800円 8時間 15分×2

回帰分析

医療データは表4ほどにはシンプルではなく、例えば初診の患者さんの収縮期血圧を「目的変数」として予測するモデルを作る際に、一体どの項目を「説明変数」にしたらいいのか、難しい場合もあるだろう。一般的には体重や性別、年齢の他に既往歴や処方中の薬といった情報を元にして血圧を予測するモデル式を作ることになる。

式(3)Y=aX1+bX2+cX3+dX4+eX5+・・・

目的変数が体重や血圧のように連続した値をとるタイプの場合には式(3)のようになるのだが、生存/死亡、有り/なし、のように2つの値しかとらない場合は少し厄介なアプローチが必要となる。何故ならば仮に「有り」を1,「なし」を0と数値化したところで、どのように工夫を凝らしても右側の「aX1+bX2+cX3+dX4+eX5+・・・」の計算結果が0か1のどちらかしかとらないというモデルは設計のしようが無いからだ。この場合には目的変数の方に工夫を凝らす必要がある。

式(4)Log( p / (1-p) )=aX1+bX2+cX3+dX4+eX5+・・・
(pはイベント発生の確率)

さらにいえば、目的変数に生存/死亡を考えたとき(つまり生存確率を予測したいとき)、単純に「有り/なし」ではなく、そのイベントが一体、いつ発生したのかが重要であり、1年以内の死亡と10年目で死亡するのとを同値とみなすことは到底出来ない。そこで、いつイベントが発生したのか、時系列的な評価が出来るモデルにする必要がある。

式(5)Log(λ(t) / λ0(t) )=aX1+bX2+cX3+dX4+eX5+・・・

(λ(t), λ0(t)は基準となるハザード、λ(t)は知りたい対象のハザード)

式(4)、式(5)の左辺についての説明を省略させて頂くことをご容赦願いたい。式(1)~(5)のような数式を用いた分析のことを回帰分析というのだが、式(4)ならばロジスティック回帰分析、式(5)はコックス回帰分析と呼称し、特に医薬系の研究では頻繁に用いられる。説明変数が1つの単回帰モデルと区別する際には特に重回帰分析、多変量ロジスティック回帰分析のように「重」「多変量」を頭に付ける。先に述べた層別のアプローチは「重症/軽症別」や「肝合併あり/なし別」のように1項目だけを考慮するには分かり易くて良いが、影響する因子が幾つもある場合にはこうした多変量回帰分析がより適切である。