ベイズ推定って、最近はやってきてますね。僕も流行りにおいて行かれないように勉強しています。
理論的な話や数学的な話はいろいろWebや本をあされば出てきますが、実用面とか解釈面について言及しているものは少ないですね。
今回は清水の個人的な意見として、ベイズがどういう風に使えそうか書いてみます。数学的な話はなしで。よくわからないので。
興味ある人は続きをどうぞ。
2016/2/1追記:ベイズ統計について,入門的な資料を作りました。心理学者のためのベイズ統計入門もあわせてどうぞ。
ベイズ推定法の前に、従来法の代表として最尤推定法について触れておきます。
その方法とベイズがどう違うのかについて、そのあと述べます。
最尤推定法
最尤法ともいわれますが、基本的な発想は、モデルとデータの関係を次のように考えます。
- 真のモデルというのがあって、我々はそのモデルから発生したデータを手に入れている。真値は一つで、データは取り方によって確率的に変化する、というのが頻度論の基本的な発想。
コイントスを例にとれば、真値が確率0.50でもデータによっては0.3になったり0.6になったりする。でも、何度もサンプルを取って平均を取れば0.5に近づいていくはず、という感じ。 - データは確率的なものだけど、真のモデルの推定値は、手元のデータが最も得られやすいものとする
手元にあるサンプルを固定して考えると、このデータが最も得られやすいようなモデルはなんだろうか?
これが尤度の考え方です。
例えば、コインを100回投げたら50回表、50回裏が出たとする。
このデータが最もありえそうなモデルはなんだろう?と考える。
得られたデータから考えたときのモデルの尤もらしさを尤度という。
尤度が最大になるモデルを推定する=最尤法というわけ。
最尤法に限らず、頻度主義の統計学では真値(真のモデル)が一つに決まるものという前提があります。
ベイズ推定法
ベイズ推定では、真値を確率分布として考えます。
コイントスを例に挙げると、表が出る確率が0.5というのが最もありえるモデルで、0や1に近いモデルほどありえなさそう、という感じにグラデーションで考えます。
また、データは確率的なものとしては考えません。データはあくまで情報であって、それを基に真値の分布を更新していく、という発想です。
データを得る前の真値の分布を「事前分布」と呼び、データを得た後更新された分布を「事後分布」と呼びます。事前というのはデータを得る前、という意味で、あくまで相対的な呼び方です。データをどんどん更新していくという発想に立てば、ある事後分布は次の推定の事前分布になりえるわけです。
最尤法などは、事前分布を考えません(あえて言うなら、一様分布であると考える。つまり、どんな値も等確率)。手元のデータが最も得られやすいモデルを「一から」推定します。なので、正確な推定をするためには膨大なデータを一度に分析する必要があります。
それに対してベイズ推定の便利なところは、あるデータが得られたら事後分布を更新、次に得られたらまた更新、という感じで全部のデータを分析する必要はありません。どんどんデータを足して更新していけば、現象をより説明できる事後分布を推定することができる、という立場です。
ついでに事後分布は簡単に言えば次のように計算します。
事後分布 = (事前分布 × 尤度) / データの分布
データの分布は確率の形に戻すための定数と考えれば、重要なのは事前分布と尤度です。
最尤法は尤度だけから真値を推定しますが、ベイズは事前分布をかけています。正確に言うと、最尤法は事前分布に一様分布を仮定しています。ということは、
一様分布 × 尤度
の確率分布の最頻値(尤度が最大の値)が最尤推定量となることがわかります。実際数学的にはそうなるようです。
さて、ベイズ推定では値ではなくて確率で得られるという話をしました。ではベイズ推定では、どのように結果を報告するのがいいのでしょうか。
ベイズ推定では、点推定値と標準偏差、95%信用区間を基本に報告します。点推定値とは確率分布の代表値のことで、中央値や平均値をおもに使います。最尤推定のときの推定値と基本的に同じような意味合いです。次に標準偏差は、分布の標準偏差で、最尤推定のときの標準誤差と同じような指標です。推定の精度を表しています。最後に信用区間とは、最尤法でいうところの信頼区間のようなものです。95%の確率で真値がその範囲にある、ということを意味しています。
信頼区間(confidence interval)と信用区間(credible interval)の違いは、ベイズ主義と頻度主義の考え方の違いを顕著に示しているといえます。
頻度主義では真値は一つと考えるので、「信頼区間の中に95%の確率で真値がある」という言い方は間違いになります。確率的に変動するのはデータのほうなので、「何度も同じサンプルサイズのデータを取ると、真値が95%の確率で信頼区間内に入る」という意味になります。
一方、信用区間はベイズ主義に基づくもので、仮に真の値を考えると「95%の確率でその範囲に真値がある」という解釈になります。
頻度主義とベイズ主義の検定の考え方の違いについては、後で詳述します。
MCMC(マルコフ連鎖モンテカルロシミュレーション)による推定
「ベイズ推定といえばMCMC法を使うらしい」というのは聞いたことがある人も多いでしょう。ただ、MCMCはただの推定アルゴリズムで、ベイズ理論とは直接関係がありません(現状として密接な関係はありますが)。先ほどの式で
事後分布 = (事前分布 × 尤度) / データの分布
というのがありましたが、実は最後のデータの分布(正規化定数の積分)を求めるのが難しいらしいです。数値計算でも厳しい。
そこでどうするかといえば、事後分布を上の式ではなくてモンテカルロシミュレーションで推定しましょう、ということになったわけです。さて、モンテカルロシミュレーションとはなんでしょうか。簡単に言えば、乱数を使ってシミュレーション計算する方法です。乱数を使ってどうやって事後分布を推定するのかっていうのはちょっと話がややこしいのでパスします。知らなくてもベイズ推定は使えます。
要は、「解析的に解けないからシミュレーションで事後分布を求めることになった。その方法がMCMCなんだ」、ということです。MCMCはマルコフ連鎖・モンテカルロ法の略ですが、マルコフ連鎖を利用したモンテカルロ法を使うと、データの分布の計算をせずとも直接事後分布を求めることができる、ということです。
MCMCを使うと分布をシミュレーションで求めるので、推定値が例えば10000個とか膨大な数値の集合として得られます。点推定値はシンプルに、10000個の平均値や中央値として計算されます。標準誤差も同様に得られた推定値の標準偏差で計算します。信用区間も、上位2.5%のポイントと下位97.5のポイントの範囲になります。
最尤法や最小二乗法などの推定方法に慣れていると、点推定値が推定ごとに微妙に変わったり、平均値や中央値でも変わるのが「気持ち悪い」と感じることがあると思います。ただ、ベイズ推定では真値が一つと考えないわけですから、点推定値が安定するかどうかは比較的どうでもいいことで、分布全体の特徴が変わらなければいいのです。もちろん、ちゃんと収束していれば、そんなに点推定値も変わらないと思いますが。
一方で、ベイズ推定では分布を直接推定することに利点もあって、推定値の分布に正規性などを仮定しなくてもよい、ということがあげられます。最尤法は推定値が正規分布であることを仮定するので、媒介分析の間接効果の検定や級内相関係数の検定など、正規分布にならないパラメータの信頼区間を正確に推定できない欠点があります。それに対してベイズ推定を使えば、歪んだ分布も歪んだ形のまま推定できるので、区間推定はより正確になります。
さらに、最尤法は無理に正規分布を当てはめることによって相関係数が1を超えたり、分散が負になるような不適解が生じやすい一方、ベイズ推定では不適解が生じないような制約を簡単にかけることができるので、経験的に妥当な効果量の推定ができるといえます。
ベイズ推定を使う
最尤法の代わりにベイズ推定法を使うと、何が変わるでしょうか。
逆に何が同じか、という点を先に挙げておきましょう。
- 点推定値は多少不安定だけど、同じように推定できる
- 標準誤差も同様に推定できる(ただ、推定値の標準偏差と呼ばれる)
- 信頼区間に似た、信用区間も同様に推定できる
- 信用区間に0が含まれるかどうか、という観点で検定もできる
- 情報量基準によるモデル選択ができる
上のような感じで、基本的には従来とあまり変わりません。データを取って現象を説明・予測するというのは変わりないので、そんなにビクビクする必要はないわけです。
仮に、100人のデータを使った回帰分析で、最尤法とベイズ法を比較してみましょう。
最尤法の結果: 点推定値 0.521 標準誤差 0.078 信頼区間 0.368~0.674
ベイズ法の結果:点推定値 0.524 標準誤差 0.079 信用区間 0.367~0.678
このように、ほぼ同じ結果が得られます。
ではベイズ推定は何が違うのでしょうか。まとめると、以下のようになります。それぞれについて後述します。
- 点推定値ではなく、分布そのものを推定するという考え方(前述)
- 事前分布の存在
- データとの距離(適合度)は、絶対的な定数ではなく、相対的な比較による
- 検定の考え方の違い
事前分布をどうするか
事前分布は、データを得る前の想定されたモデルです。最尤法は一様分布、つまり何にも情報がない状態をスタートとしています。
ベイズ推定でも、特に事前に何の予測もなければ「無情報分布」という事前分布を利用します。一様分布でもいいのですが、推定されるパラメータの種類によって無情報分布を変えるのが一般的です。簡単に言えば推定値が正負の両方を取りうるなら分散が無限の正規分布を、正の値しかとらない(分散など)場合はガンマ分布を使います。
では、事前に情報がある場合はどうすればいいでしょうか。その場合は、その情報を事前分布に使えばいいのです。例えば、以下のような例を考えてみます。200人のデータがあって、回帰分析をしたとします。回帰係数は次のような推定値が得られました。
平均 0.498 標準偏差 0.060
ここで、最初の100人だけのデータを先に回帰分析して、それを事前分布として残りの100人で回帰分析をするということを考えてみます。まず、最初の100人のデータの推定値は、以下のようになりました。
平均 0.473 標準偏差 0.091
サンプルサイズが半分なので、推定精度が少し悪いです。次に無情報分布を使って残りの100人の回帰分析の結果を見ておきましょう。
平均 0.524 標準偏差 0.079
そして、最初のデータを事前分布とした分析をしてみましょう。事前分布を平均0.473、分散を0.091の2乗である0.0008の正規分布として分析します(他にも切片と誤差も事前分布を設定しました)。すると、以下のようになりました。
平均 0.501 標準偏差 0.058
元の200人のデータの結果にかなり近い推定となりました。このように、事前分布を有効利用すると、より精度の高い推定を行うことができます。逆に、誤った情報を事前分布としてしまうと、当然誤った推定を行います。事前分布の利用は有効かつ慎重に行うべきでしょう。もしわからなければ無情報分布を使えばいいでしょう。多くのプログラムはデフォルトが無情報分布になっているので、特に事前分布を意識しなくても推定はできます。
データの適合度
最尤法や最小二乗法は、データとモデルの距離を定数で表現できました。最尤法は尤度(場合によっては対数尤度)、最小二乗法は誤差の二乗和を使います。
ベイズ推定の場合は、データとモデルの距離を確率で表現します。ベイズ法はとりあえず、すべて確率で表現するところが特徴です。(追記:最尤法との違いは、最尤法は点推定値のみを考慮した距離(尤度)を考えますが、ベイズは推定値の分布すべてを考慮に入れた距離を用います)。
ベイズ推定の適合度で代表的なのはベイズファクターです。これは、二つの仮説の尤度の比であらわされるもので、データから考えると、どちらの仮説が確からしいかを示す指標です。ベイズファクターの対数を取れば、二つの仮説の対数尤度の差を意味しており、実は情報量基準のBICの差とほとんど同じです(追記:BICは厳密にはベイズファクターとは違うものです。BICは推定値の分布の期待値を用いる簡便的な指標です)。
ベイズファクターそのものを計算するのが大変なので、BICの差を使って対数ベイズファクターを求めるソフトウェアもあります。Mplusもその一つです。正確には、BICとベイズファクターには以下の関係があります。
BICの差 ≒ ベイズファクターの対数の2倍
ベイズファクターを使った検定の考え方は後述します。
他にも、DIC(偏差情報量基準)や事後予測p値などがあります。DICはBICと同じように、情報量基準で、絶対値に意味はなく、相対的な大きさを比較するものです。事後予測p値は、絶対的な当てはまりを示すもので、50%に近いなら非常に適合しており、0に近いとデータから予測しにくいモデルであることを示しています。
ネイマン-ピアソン流の仮説検定の考え方との違い
従来法が寄って立つ頻度主義的な確率論では、真値が固定的なものと考えます。
なので、統計的検定でも、真値を確率で表現しません。帰無仮説のもとで、手元のデータが得られるのがどれくらいの確率かというように、データに対して確率を当てはめます。
例えるならこんな感じ。
ある人の性別を考える場合(あくまで例です)。
あの人は男性だろうか、女性だろうか。答えはどちらかであるはず、というのが前提です。データを見ると、髪が長い、スカートをはいている、ヒールをはいている。仮にその人が男性だと仮定すると(帰無仮説)、こんな格好をする確率はどれくらいだろうか?ほぼありえない。だから、「その人は男性ではない!」という結論を導きます。逆にその人がスーツに革靴、ネクタイを付けていれば、男性がその格好をすることは十分ありえると考えられるので、「男性でないとは言えない!」となります。
ここで重要なのは、帰無仮説と対立仮説の関係が非対称である点です。
帰無仮説は「パラメータが特定の値と等しい」という形式をとり、対立仮説は「等しくない」という形式をとります。ネイマン-ピアソン流の仮説検定でテストできるのは、「等しいという仮説が間違っている」ことだけです。
具体的に言えば、差が0と等しいという仮説を立てて、得られたデータがその仮説から得られる確率を計算し、その確率が非常に小さければ、「差が0と等しいという仮説は間違えている」と考える、というわけです。逆に言えば、「差が0と等しい」という仮説が正しいという主張はできません。また、「差が0と等しくない」という仮説が間違えているという主張もできません。
一方、ベイズ推定では従来の仮説検定といくつかの点で前提が異なっています。ここでは2点指摘します。
- 真値がただ一つの定数だとは考えない
- 帰無仮説(値が特定の値と等しい)を出発点にする必要がない
まず、ベイズは(上の例でいえば)男性か女性か、どちらか一方であるとは考えません。男性である確率と女性である確率がそれぞれあると考えます。
また、各仮説を同等のものとして扱います。ある人の格好を見て、「もし男性ならこういう格好をするか」と「もし女性ならこういう格好をするか」をそれぞれ考えます。それぞれの「らしさ」を比較して、大きい方の仮説を支持する。これがベイズ的な仮説検定です。
上の例に即して具体的に言えば、「あの人は男性である」という仮説と、「あの人は女性である」という仮説をそれぞれ同等において、相対的にどちらがデータから見て確からしいかを判断するのがベイズ的な仮説検定(そもそも検定っていうのか?)になるのです。
さて、すでにベイズファクターの話をしましたが、これがベイズ的な仮説検定で利用できます。
モデルを所与としたときのデータの得られやすさを尤度と呼びましたが、その人が男性と仮定するときの「その格好のしやすさ」と、女性と仮定した時の「らしさ」をそれぞれ尤度として計算します。
そして、それぞれの尤度の比(対数を取れば差)をとれば、ベイズファクターです。これはつまり、「らしさ」を比較してどちらが大きいかを求めていることと同じです。
それぞれの仮説の「らしさ」はBICで計算できますから、BICの差(=対数ベイズファクターの2倍)をみればどちらの仮説が尤もらしいかがわかるというわけです。
BICの差は、以下のような解釈をするようです(豊田2008)。
0~2 大きい方がかろうじて優れている
2~5 大きい方が優れている
5~10 大きい方がかなり優れている
10以上 大きい方が非常に優れている
BICはサンプルサイズを考慮しているので、サンプルサイズが大きいほど強い証拠になりやすいです。
このように、従来の仮説検定といろいろ違いますが、まとめると
- 従来の方法は、帰無仮説を軸として対立仮説のありえなさを確率と有意水準で判断する。
- 一方、ベイズ法は両方の仮説を両方同等のものとして考慮し、仮説の相対的な強さを段階的に判断する
こんな感じでしょうか。
また、信用区間を用いれば、疑似的に母数=0の帰無仮説に対する仮説検定もできます。
95%信用区間に0が含まれていれば帰無仮説を採択、含まれていなければ対立仮説を採択、という具合です。
ただこのやり方はあまりベイズ的ではないかもしれませんね。
現状としてのベイズ推定の利点と欠点
これらを踏まえて、ベイズ推定の利点と欠点を考えてみます。
現状を踏まえたものを書いておきます。
利点
- 事前分布を上手く使えば、サンプルサイズが小さくてもそれなりに妥当な推定ができる
- 上に関連して、データを次々に足していけば、どんどん推定精度が上がる
- 帰無仮説を軸としないので、母数=0といった仮説を積極的に採択できる
- 推定値の分布に正規性を仮定していないので、より正確な区間推定ができる
- 不適解を簡単に回避できる
- 複雑なモデルも比較的簡単にモデリングできる
欠点
- 事前分布をどのように扱えばいいのか、まだ議論がある(事前分布の恣意的な利用に対する懸念など)
- 推定するための時間が長い(複雑なモデルのときは数時間かかることもある)
- ひどい場合、事後分布がいつまでたっても収束しないことがある
- 使い慣れた仮説検定と前提が違うので(またわかりやすい有意水準もない)、とっつきにくい
- 使い慣れた適合度やp値などの指標が使えないので、解釈や報告に慣れが必要
- 使えるソフトウェアがまだ限定されている
とまぁいろいろ欠点もありますが、それは利点の裏返しでもあります。僕はかなり未来ある方法だと個人的には思います。
なんだかんだと頻度主義の方法は残り続けるとは思いますが、研究の選択の幅が広がることはいいことだと思うので、一度ベイズ推定、試してはいかがでしょう。
関連ページ:心理学者のためのベイズ統計入門
2 thoughts on “従来の推定法とベイズ推定法の違い”