バギング(Bagging; Bootstrap Aggregating)は、予測精度を高めたり、予測の信頼性を確認したりするための手法です。ニューラルネットワークやパーティション(分類木・回帰木)などの、不安定なモデルに対して特に役立ちます。
バギングでは、元データから復元抽出をM回行います。抽出されたデータセットのサイズは、元のデータセットのサイズと同じです。次に、抽出された各データセットにモデルをあてはめます。その結果、元のデータセットの各行に対してM個の予測が生成されます。最終的な予測値は、M個の予測の平均値になります。
バギングは、多くの分析プラットフォームで使用できます。バギングを使用するには、「予測プロファイル」の赤い三角ボタンをクリックし、メニューから[バギング予測の保存]を選択します。「バギング」ウィンドウが開き、次のオプションが表示されます。
ブートストラップ標本数
データからの無作為抽出と、そこからのモデルの生成といった一連の処理を反復する回数を設定します。大きい数を設定したほうが、予測が正確になります。デフォルトでは、100に設定されています。
乱数シード値
分析結果を再現したい場合は、乱数シード値を設定しておき、後で分析を行うときに同じ乱数シード値を入力します。デフォルトでは、乱数シード値は設定されていません。
小数の重み
Bayes流のバギングを行います。この方法では、ブートストラップを実行するたびに、各データ行にゼロでない、小数の重みが割り当てられます。各抽出において、小数の重みで重み付けられたデータ行からモデルが推定され、予測値が算出されます。デフォルトではこのオプションは選択されておらず、単純なバギングが行われます。
ヒント: [小数の重み]オプションは、分析に使用したデータの標本サイズが小さい場合や、ロジスティック回帰における分離(separation)を懸念する場合に、使用してください。
[小数の重み]で生成される重みは、全体では標本サイズと同じになるようになっています。[小数の重み]では、ブートストラップの各抽出において、各データ行に対して小数の重みが求められます。これらの重みの合計は、モデルの推定で使用された標本サイズnになっています。重みの計算方法の詳細については、小数の重みの計算を参照してください。
予測式の保存
バギングの予測値を計算式として保存します。このオプションは、バギングを実行できる分析プラットフォームのうちの一部でのみ、使用できます。
注: [予測式の保存]を使用できない場合は、予測値だけが保存されるというメッセージが表示されます。
バギングを実行すると、元のデータテーブルに新しい列が自動的に作成されます。M回の各抽出から得られたそれぞれの予測式は、非表示の列として保存されます。それらの平均である最終的な予測値は、「予測式 <列名> バギング平均」という列名で保存されます。最終的な予測値の標準偏差は、「標準偏差 <列名> バギング」という列名で保存されます。最終的な予測値の標準誤差は、「標準誤差 <列名> バギング平均」という列名で保存されます。標準誤差は、標準偏差をで割った値です。なお、「<列名>」は、バギングの対象となっている応答変数の列名です。
標準誤差は、予測精度を検討するために役立ちます。標準誤差がごく小さい場合は、そのデータ行に対する予測が精確であることを表します。バギングの詳細については、Hastie et al.(2009)を参照してください。
図3.17 バギングの列