Rでのブートストラップ関数の使用方法
概要
Rでブートストラップを実行するコードを直接書くこともできるが、基本的に提供されている関数を利用することもできる。その過程は以下のようにシンプルだが、他の関数と使い方が大きく異なるため、初めは非常に慣れないはずだ。
ガイド
ステップ1.
求めたい統計量を返す関数boot.fn()を定義する。もちろん、ここでの関数の名前はどうでもいい。引数の中には、boot.fn<-function(dataset, index)
のように二番目のオプションindex
が必要だ。
ステップ2.
boot()
関数にオプションdata, Statistic, R
を設定して実行する。
data
はデータセット、Statistic
は**ステップ1.**で定義した関数、R
には繰り返し回数を入れる。
例
例を見ながら一つずつ進めてみよう。
Default
はデフォルトの状況とその条件のデータセットだ。当然ながらdefault
変数が従属変数で、実際にデフォルトに至るかの予測問題なので、ロジスティック回帰分析が適切だ。
ロジスティック回帰分析の結果は上のようだ。
ここでは回帰係数に対してブートストラップを使用する。
ブートストラップに使用する関数は、dataset
とindex
という2つの引数が必須だ。dataset
は元のデータを受け取り、index
はブートストラップによる再サンプリングのタプルを受け取ることになる。
return()
を見ればわかるが、この関数が返すのはモデルやサマリー全体ではなく、回帰係数で構成されたベクターだけだ。このように関数を形式的に定義する必要があるため、Rの基礎が不足しているとブートストラップの関数を理解するのが難しくなるかもしれない。統計学に精通していれば大きな問題はないが、少し難しいと感じても正常なので、自分を責めないようにしよう。
boot()
関数は、data
にデータセットを受け取り、Rに実行回数を受け取る。Statistic
オプションが受け入れるのはboot.fn()
が返す「ベクター」ではなく「そのままの関数」であるboot.fn
という点でよく間違える。
エラーが続けて出る場合、大体はここに問題がある。実行結果を見ると、最初の回帰係数からt1, t2, t3, t4と表示され、係数や標準誤差がはじめに行ったロジスティック回帰分析の結果と非常に似ていることが確認できる。ここでブートストラップを通じて得たいのは点推定値ではなくstd. errorである点に注意しよう。よく比較してみるとわかるが、originalというのはただの全データから得た回帰係数であり、ブートストラップ自体とは全く関係なく、必要ない。
コード
以下は例のコードだ。ブートストラップの場合、使い方が特異的すぎて理解が難しいなら、例を自分のケースに合わせて変えて使用するだけでもいい。