線形回帰におけるベイズ変数選択

 回帰分析でよく生じる問題の一つとして、多くの潜在的な説明変数がある場合に、結果に最も関連のある説明変数の組合せを特定する変数選択の問題があります。 変数選択 (またはスパース回帰) は、研究者がモデルを解釈しやすくし、より安定した推論を提供します。

 Stata のベイズ推定において、線形モデルにベイズ変数選択を実装した新しいコマンド bayesselect が追加されました。 bayesselect は、lassobmaregress などの変数選択に関連する既存の Stata コマンドを補完します。

 bayesselect は、大域-局所縮小事前分布やスパイクアンドスラブ事前分布など、 係数に対して特別に設計されたさまざまな事前分布を使用することで、変数選択に柔軟なベイズアプローチを提供します。 bayesselect は Stata のベイズ推定コマンド群に統合されており、すべてのベイズ事後推定ルーチンと連携します。

操作例

 糖尿病データセット(diabetes)を使用します。このデータセットには、442 人の患者の病気の進行の記録と、 年齢、性別、BMI、血圧、血清の測定値などの制御因子が含まれています (Efron ら、2004)。

. webuse diabetes

 変数選択方法論の一般的な手順に従って、すべての変数は平均 0、標準偏差 1 になるように標準化されています。 対象となる結果変数は diabetes であり、他の 10 個の変数で回帰します。すべての共変量が同等の重要性を持つわけではないと想定し、 変数選択を実行することで、より効率的な推論と改善された予測を実現できます。

 bayesselect を使用したベイズ変数選択の実行は、Stata の他の回帰と同じくらい簡単です。 bayesselect の初期設定を使用し、再現性のために rseed() オプションを追加します。 モデルを適合させるときは、最後の観測値 (442 番目) を検証用として使用するため除外します。

. bayesselect diabetes age sex bmi bp serum1-serum6 in 1/441, rseed(19)

 bayesselect が使用する初期設定の変数選択事前分布は、馬蹄事前分布です (Carvalho 他 2009)。 これは、各係数に 1 つずつ局所縮小係数 λ を含む、いわゆる大域-局所縮小事前分布の特殊なケースです。 この事前分布の形式は、コマンドのモデルサマリで説明されています。

 縮小係数は選択確率に変換され、bayesselect の出力の最後の列にまとめられます。 出力内の説明変数は、推定値の選択確率の順に並べられます。選択確率が 0.5 を超える上位 3 つの説明変数は、 serum5, bmi, bp です。 これら 3 つの説明変数はすべて、結果にプラスの効果をもたらします。係数の事後平均推定値はそれぞれ 0.34、0.33、0.19 です。

 係数の表の下にある 2 番目の出力表では、bayesselect は定数項 _cons、分散 sigma2、 および大域縮小パラメータ τ の事後要約を報告します。

 予測が必要なので、まず bayesselect からのシミュレーション結果を保存する必要があります。

. bayesselect, saving(model1sim)

 これで、bayespredict コマンドを使用して、研究の最後の患者である観察 442 の病気の進行を予測できます。

. bayespredict double pmean1 in 442, mean

 計算された事後予測平均は、新しい変数 pmean1 に保存されます。この予測については後で説明します。

 もう 1 つの一般的な変数選択モデルは、スパイク・アンド・スラブ Lasso モデルです (Ročková and George 2018)。 このモデルを要求するには、bayesselectsslaplace オプションを指定します。

. bayesselect diabetes age sex bmi bp serum1-serum6 in 1/441, sslaplace rseed(19)

 スパイク・アンド・スラブ Lasso の出力は、馬蹄事前分布モデルの包含係数の代わりに、解釈しやすい包含確率を報告します。 予測子の Serum5、BMI、および BP はすべて、完全な包含 (1) を持ちます。 つまり、これら 3 つの予測子の重要性について不確実性はありません。 ただし、それらの係数推定値は、馬蹄モデルのものと似ています。 全体として、包含確率は、年齢の 0.1 から 1 までの範囲で、馬蹄モデルの包含係数 (0.2 から 0.7 の範囲) よりも広がっています。

 最後のシミュレーション結果を保存し、研究の最後の患者について予測してみましょう。

. bayesselect, saving(model2sim)
. bayespredict double pmean2 in 442, mean

 2 つの変数選択モデルの予測結果を比較するために、観測 442 の記録をリストします。

. list in 442

 スパイク・アンド・スラブモデルの予測 (-1.18) は、馬蹄モデルの予測 (-1.31) よりも真の値 (-1.23) に近いですが、 結論としてはどちらのモデルもこの患者の病気の進行の遅れを正しく予測しています。

参考

 さらに詳しい内容につきましては、下記のマニュアルをご覧ください。

Stata is a registered trademark of StataCorp LLC, College Station, TX, USA, and the Stata logo is used with the permission of StataCorp.

page_top_icon