データのお砂場(98) R言語、boot、ブートストラップ法の使い方? bootパッケージ

Joseph Halfmoon

このところbootパッケージ内のサンプルデータセットを扱いつつ、「例題ないよな」とか「bootの使い方書いてないよな」などと内心不貞腐れておりました。アルファベット順に読んできたからです。今回「boot」という項目に至り判明しました。すみません、私が悪うございました。ココに書いてあります。でも最初にココ読めと言ってよ。

※「データのお砂場」投稿順Indexはこちら

boot、Bootstrap Resampling関数

bootパッケージには多数のサンプルデータセットが格納されており、以下のPDFファイルの解説を参照することが可能です。

https://cran.r-project.org/web/packages/boot/boot.pdf

前回のbigcity データセットにつづき、boot という項目に至ってようやく判明しました。bootという項目は、bootパッケージの本命たるブートストラップ法を実施するための Bootstrap Resampling関数の説明が記されておるのであります。そしてここには「若干」ではあるものの処理例なども記載されており。最初にココ読むべきだったわ。

ブートストラップ法

統計素人の年寄がブツクサ言っても致しかたないので、Webをほんのちょっと当たったなかで、分かり易いと思ったページを以下に。「研究型データサイエンティストのブログ」様のページです。あざーす。

ブートストラップ法: リサンプリングを利用して母集団の特徴を推定

なお、上記ではPython使って処理を書かれてます。

一方R言語でのご先達様の記事が無いかと調べた中で「@saltcooky(saltcooky)」様の以下記事を参考にさせていただきました。これまたあざーす。

統計量のバラツキを知るためのブートストラップ法基礎 with R

PDFファイルに書かれていたExampleその1

さてね、問題のboot.pdfの項には、何やらびっしりとboot()関数の使い方が書き込まれてます。R言語にありがちな「あるある」です。パラメータが多すぎて一向に頭に入りませぬ。ましてや忘却力の老人です。最後を読むと最初は忘れてます。

気をとりなおしてExampleを見ると、ありました。複数のExampleが並んでます。どうもアルファベット順に見ていくとこれから見ることになるであろうサンプルデータセット名が並んでいる中で、city という名を発見。これはもしかして前回の bigcity データセットのことではないかしらん。列項目名も一緒だし。

ようやく発見した boot関数の使い方例、以下です。

Examples

たった2行かい。でも無いよりマシ。

bigcityサンプルデータセットに適用してみた

まずは先達のお教えに従いサンプルデータセットをヒストグラム化してみました。今回解析対象にするのは1920年のときの人口uと1930年の時の人口xの「比」であるので、以下のようにしてみました。

bigcity.ratio <- bigcity$x / bigcity$u
hist(bigcity.ratio, breaks=seq(0,25,0.5))

描かれたヒストグラムが以下に。前回も処理に困った「10年で驚異の25倍成長」を遂げた町(2千人が5万人になった。名前はインデックスなので具体都市名不明)のお陰もあり、とても正規分布とは言えないグラフであります。bigcityRatio_hist

まずはboot.pdfのExampleどおりに処理適用してみました。こんな感じ。bigcity_bootexample

originalが「比」の平均値、biasが「推定された偏り」、std.errorが「ブートストラップ分散推定」ってことですかい。理解しとりませんがな。

しかし、上みたいな数字だけだとサッパリです。以下ではプロットを挟んでみました。プロットすると分かったような気になるからねえ。bigcity_bootw

プロット結果が以下に。左のヒストグラムは多数回のリサンプリングを繰り返すとこんな感じに分布したってことなんだろうね。右のグラフの見方が分からんなあ。。。bigcity_bootw_plot

勿論、乱数使ったリサンプリングなので、計算繰り返すとグラフの形も結果の値も微妙に変わりますです。

boot.ciで、信頼区間を求めてみる

また、bootの次の次にboot.ci関数の説明があり、boot.ci使うと「信頼区間」を計算できるみたいです。しかしな、norm、basic, perc, bcaって4つもあるみたいだけれど、統計素人の年寄にはサッパリじゃよ。

bigcity_ci

まあ、bootパッケージのサンプルデータ、まだ沢山残っているし、順番にやっていったら分かるようになる?期待薄だな。

データのお砂場(97) R言語、bigcity、米国の都市の急成長? bootパッケージ へ戻る

データのお砂場(99) R言語、brambles、キイチゴ茎の空間分布? bootパッケージ へ進む