logo

Rでのブートストラップ関数の使用方法 📂R

Rでのブートストラップ関数の使用方法

概要

Rでブートストラップを実行するコードを直接書くこともできるが、基本的に提供されている関数を利用することもできる。その過程は以下のようにシンプルだが、他の関数と使い方が大きく異なるため、初めは非常に慣れないはずだ。

ガイド

ステップ1.

求めたい統計量を返す関数boot.fn()を定義する。もちろん、ここでの関数の名前はどうでもいい。引数の中には、boot.fn<-function(dataset, index)のように二番目のオプションindexが必要だ。


ステップ2.

boot()関数にオプションdata, Statistic, Rを設定して実行する。

  • dataはデータセット、
  • Statisticは**ステップ1.**で定義した関数、
  • Rには繰り返し回数を入れる。

例を見ながら一つずつ進めてみよう。

20180507\_201348.png

Defaultはデフォルトの状況とその条件のデータセットだ。当然ながらdefault変数が従属変数で、実際にデフォルトに至るかの予測問題なので、ロジスティック回帰分析が適切だ。

20180507\_202245.png

ロジスティック回帰分析の結果は上のようだ。

ここでは回帰係数に対してブートストラップを使用する。

20180507\_202409.png

ブートストラップに使用する関数は、datasetindexという2つの引数が必須だ。datasetは元のデータを受け取り、indexはブートストラップによる再サンプリングのタプルを受け取ることになる。

return()を見ればわかるが、この関数が返すのはモデルやサマリー全体ではなく、回帰係数で構成されたベクターだけだ。このように関数を形式的に定義する必要があるため、Rの基礎が不足しているとブートストラップの関数を理解するのが難しくなるかもしれない。統計学に精通していれば大きな問題はないが、少し難しいと感じても正常なので、自分を責めないようにしよう。

20180507\_202925.png

boot()関数は、dataにデータセットを受け取り、Rに実行回数を受け取る。Statisticオプションが受け入れるのはboot.fn()が返す「ベクター」ではなく「そのままの関数」であるboot.fnという点でよく間違える。

エラーが続けて出る場合、大体はここに問題がある。実行結果を見ると、最初の回帰係数からt1, t2, t3, t4と表示され、係数や標準誤差がはじめに行ったロジスティック回帰分析の結果と非常に似ていることが確認できる。ここでブートストラップを通じて得たいのは点推定値ではなくstd. errorである点に注意しよう。よく比較してみるとわかるが、originalというのはただの全データから得た回帰係数であり、ブートストラップ自体とは全く関係なく、必要ない。

コード

以下は例のコードだ。ブートストラップの場合、使い方が特異的すぎて理解が難しいなら、例を自分のケースに合わせて変えて使用するだけでもいい。