最終更新 2025年5月14日
近年ではベイズ統計学の考え方を用いた統計モデリングが日本国内でも普及しつつあり、私も少しずつ勉強を進めています。
ここでは社会学や周辺分野の研究者がベイズ統計モデリングを行うためのごく基本的な知識や、ベイズ推定を簡単に行えるRパッケージを紹介します。
※以下は勉強中の内容ですので、不正確な記述もあるかもしれません。疑問を持った点については、「おすすめ文献」に挙げた著作などで確認されることをおすすめします。
統計学の主流派である頻度論の考え方では、パラメータは未知であるが固定された値であると考え、母集団から得られるデータはサンプリングによって確率的に変動するものと考えます。頻度論に基づいた統計分析では、最尤法などにより点推定を行った上で、区間推定や仮説検定を行うことが一般的です。
これに対して、ベイズ統計学ではパラメータを固定された値であるとは考えず、その推定には不確実性を伴うものと考えます。ベイズ統計学では、パラメータがどの範囲にどれくらいの見込みで存在するのかを確率分布を使って表現します。
ここで登場するのが有名な「事後確率分布 ∝ 尤度×事前確率分布」という式です。つまり、観測者がパラメータに対して想定している確率分布(事前分布)を、データから得られた尤度と組み合わせれれば、関心の対象である事後の確率分布(事後分布)を得られます(その際にはMCMCなどの手法を用います)。得られた事後分布は以下のようなプロットで表現することが可能です(Rのbayesplotパッケージを使用)。
一つ注意する点があるとすれば、事前分布の設定です。事前分布の設定は多かれ少なかれ分析結果に影響を与えますし、とくにサンプルサイズが小さい場合にはその影響はより大きくなる傾向があります。論文で分析結果を報告する際にはどのような事前分布を用いたかは明示する必要はあるでしょう。
ベイズ統計分析では、分析者が考える「パラメータが存在しうる範囲」を確率分布の形で表現する必要があります。たとえば、回帰係数の事前分布をNormal(0,1)と設定した場合には、分析者は「回帰係数は0付近に存在する可能性が最も高く、±1の範囲に2/3程度で存在すると見込まれるが、±2を超えることは滅多にない(1/20未満)であろう」と考えていることになります。
分析にこのような「主観的」な要素が入ってくることに違和感を感じる方もいらっしゃるかもしれません。実際にパラメータの存在しうるすべての範囲に同じ確率を想定する一様分布を使用する研究者もいます。しかし、事前分布は使い方によっては大きな武器にもなります。
事後分布をプロットした例(中心線が中央値で青い範囲が90%信用区間)
事後分布をもとに信用区間をプロットした例(丸が中央値で太い帯が50%、線が95%)
単純なモデルであれば、比較的に簡単な計算で事後分布を求めることも可能です。ただし、モデルが複雑である場合はそのようなわけにはいかないので、マルコフ連鎖モンテカルロ法(MCMC)の力を借りることになります。
詳細な説明は省きますが、事前分布と尤度を与えたうえでMCMCを用いると、事後分布の候補となる値を多数発生させることができます。この候補値を一定のルールで選抜したものが事後分布となります。
確率的プログラミング言語と呼ばれるStanやJAGSなどのソフトウェアは、専用のコードを書けばMCMCを自動で行ってくれます。ただし、コードを書くのは初心者にはハードルが高いかもしれません。そこで、これらのソフトを簡単に動かすことのできるRパッケージを紹介したいと思います。
社会学で最もよく用いられるのは、線形回帰分析やロジスティック回帰分析などの回帰モデリング、いわゆる一般化線形モデルでしょう。確率的プログラミング言語Stanや関連のRパッケージの登場により、一般化線形モデルをベイズ推定することは非常に容易になりました。ここでは2つのパッケージをご紹介します。
StanをRで簡単に動かすことのできるパッケージで、後で紹介するbrmsよりこちらの方が初心者向けだと思います。推定も非常に高速です。rstanarmではデフォルトで回帰係数にnormal(0, 2.5)、つまり平均0で標準偏差2.5の正規分布が設定されています。デフォルトの設定では平均や標準偏差はデータのスケールに沿って調整されます(rstanarmの事前分布の設定についてはこちらの解説ページもご覧ください)。
・brms
rstanarmと同じようにStanをRで簡単に動かすことのできるパッケージです。rstanarmよりもこちらの方が先に有名になった気がします。こちらの方がrstanarmよりも細かいところまで設定できます。回帰係数の事前分布はflat、つまり一様分布のようです(こちらを参照)。私自身はnormal(0, 2.5)やnormal(0, 1)に設定しなおして使っています。
ここ数年の統計学では多重代入法による欠損値補完も話題になっていますが、JointAIパッケージはMCMCで欠損値とパラメータを同時に推定してくれるという優れものです。裏ではJAGS(Just Another Gibbs Sampler)が動いているようなので、事前分布は標準偏差ではなく精度(分散の逆数)で指定することに注意しましょう。回帰係数の事前分布にはデフォルトで平均0、精度1e-04(標準偏差換算で100)の正規分布が設定されているようです(こちらを参照)。推定には少し時間がかかる気がします。
有限混合モデル(finite mixture model)など、潜在的なグループ変数を導入したモデルでもMCMCを用いたベイズ推定は力を発揮します。計量社会学では知られている手法では、潜在クラス分析やトピックモデルも広い意味では有限混合モデルの仲間と言えますが、これらの手法もMCMC(とくにギブスサンプリング)で推定できます。
有限混合モデルの有限とは、最初に決まった数のグループ数を指定することに由来します。これに対して、クラス数を試行錯誤しながら推定する無限混合モデル(別名ノンパラメトリックベイズ)もあります。無限混合モデルを用いる場合には、基本的にMCMCで推定する基本になると思います(有限混合モデルはEMアルゴリズムや変分ベイズで推定可能です)。
IMIFAというのは Infinite Mixtures of Infinite Factor Analysers、訳すと「無限因子による無限混合」のモデルです。簡単に言うと、たくさん量的変数があるときにこれを因子分析で次元削減しながら同時に混合モデルでクラスタリングするモデルを考えて、因子数/グループ数を試行錯誤しながらベイズで推定するというものです。
話がややこしくなりましたが、このパッケージでは因子分析を省略して混合モデルのみを推定することもできます。その場合も自分でグループ数を指定する有限混合と、グループ数を試行錯誤させる無限混合の両方が推定できます。つまり、オールインワンのパッケージのようです(多機能すぎて私もまだ使いこなせていません)。
潜在クラス分析は社会学でよく知られた方法ですが、質的変数(二値変数)が複数ある時にこの背後に潜在的なグループ(クラス)を想定して分析する手法です。BayesLCAはこの潜在クラス分析をMCMCでベイズ推定するためのパッケージです。使い方は比較的に分かりやすいのでおすすめです。ただし、共変量を使用した分析はできないので、JAGSなどを使って頑張って自分でコードを書いて推定するしかないようです(JAGSを使う場合はこちらの論文に解説があります)。
いわゆる文系人間(私を含む)でも読めそうなおすすめ文献を紹介します。ただし、高校文系数学の教科書レベルの知識と統計学・統計分析に関する基礎的な素養(社会調査士D科目やE科目程度)はおそらく必要となります。まずは『楽しみながら学ぶベイズ統計』とRegression and Other Storiesの2冊をおすすめします。
・ウィル・カート『楽しみながら学ぶベイズ統計』SBクリエイティブ
ベイズ統計学の基本的な考え方を数学的に難解な要素を使わずに説明している入門書で、最初に一冊読むならばこれがおすすめです。ただし、具体的な分析手法が解説されているわけではないので、あくまで入門用の一冊と考えましょう。
・Andrew Gelman, Jennifer Hill, Aki Vehtari, Regression and Other Stories, Cambridge University Press.
回帰分析の基礎を丁寧に分かりやすく解説した教科書ですが、ベイズ統計学がさりげなくかつ自然に導入されています(サンプルコードは主にRのrstanarmパッケージです)。回帰分析の学びなおしにもぴったりです。英語の本ということで尻込みされる方もいるかもしれませんが、私はこの本をいろいろな人に布教しています。翻訳が出るとさらに布教できるのですが…。
・ピーター・D・ホフ『標準 ベイズ統計学』朝倉書店
ベイズ統計分析の教科書で、数学的な部分も細かく解説されています。MCMCをパッケージを使わずに動かせるRコードが掲載されているので、手を動かしながら学ぶと理解が深まるでしょう。ただ、「標準」と名乗っているものの人文社会系では大学院レベルの内容ですので、いきなりこの本を読むと挫折するかもしれません。そのため、まずは上の2冊を読んだうえでこの本に挑戦することをおすすめします。
・Andrew Gelmanほか『ベイズデータ解析(第3版)』森北出版
原著はBDAの略称で知られるベイズ統計分析の名著で、2024年についに翻訳が出ました。原著(ハードカバー)も辞書のような厚さの本でしたが、翻訳もなんと888ページもあり、よくぞこの大著を…という思いです。ただ、通しで読むというよりは必要な部分を辞書的に引いて読むタイプの本かもしれません。大学生や大学院生が個人で購入するのは難しい価格ですので、大学の図書館や研究室にリクエストするのがよいでしょう。