R言語のパッケージbootには、ブートストラップ法の適用むけと想定できるサンプルデータセット多数が含まれてます。ブートストラップ法の適用自体、忘却力の年寄には過ぎたる技なので毎回は行えてません。しかし今回のデータは「右打ち切りデータ」に対してブートストラップ法を適用するためのもののようです。ディープ過ぎ?
※「データのお砂場」投稿順Indexはこちら
※統計素人の老人は「右打ち切りデータ」に対してブートストラップ法の適用は試みておりません。ただただデータを愛でるのみ。
Channing House
今回のデータセットは例によって古いです。1960年代後半から1970年代前半にかけて取得されたデータです。解説ページが以下に。
『Channing House』というのは日本で言うところの「老人ホーム」の固有名称みたいです。その入居時の年齢相当データと退去(死亡による?)またはご存命の場合の年齢相当データを列挙したデータのようです。
野次馬根性、『Channing House』様について調べてみましたぞ。現存してました。カリフォルニア州パロアルト市、スタンフォード大にほど近い高級住宅地の一角に燦然とそびえております。スタンフォードの正門に向かってユニバーシティ・アベニューを行く途中でちょっと左折する感じ。当時だって相当に不動産は高かったのじゃないかと想像する地域なのですが、今となってはどのくらいか想像もつきませぬ。『Channing House』様のホームページを拝見する限り高級そうな雰囲気がありあり。お高いんでしょうな。ただし、建物そのものは当時のまま?立て替えてはいない?米国あるあるで米国は結構古い建物も多いものなあ。知らんけど。
まずは生データ
上記のようにシンプルなデータ・フレームで、例は5つ。因子型のsex列には男女の区別、entryとexitには入居時の「月齢」と退去(死亡による?)時の「月齢」またはご存命で入居継続されている場合の「月齢」が記されているようです。timeにはexitとentryの差が書かれており「入居期間」かと。最後のcensは右打ち切りデータ(つまりはご存命でデータは継続中)か否かのお印のようです。
しかしね、凡人は「月齢」で言われてもピンとこないっす。まずは「年齢」換算データをつめた作業用のデータセットを作りました。こんな感じ。
work <- data.frame(channing$sex, channing$entry/12, channing$exit/12, channing$cens) colnames(work) <- c("sex", "entryYear", "exitYear", "cens")
ちょっと集計、ちょっとグラフを描いてみる
今回は(も)最初から「右打ち切りデータ」に対するブートストラップ法の適用を諦めているので、ちょいと集計して、ちょいとプロットを行ってお茶を濁すの方針です。すみません。
まずは、以下の平均を求めてみました。
-
- 男女別の入居時年齢
- 男女別の継続入居?(存命)/退去(非存命)時年齢
入居時の年齢は男性の方が1歳ほど上だけれども75歳前後、死亡退去?時は女性81歳、男性83歳、右打ち切りにかかっている時の御年齢は女性83歳、男性82歳とな。
米国人は結構早死にの人が多いと思っていたのだけれど、約50年前でこれっていうのはそんなでもないような。ううむ、高級なところだからなあ、当時としても寿命が長い方じゃないだろうか。近くの地域でも東の方へ行くと大分違いそうな気がしないでもない。
それに女性の方が長命と思っていたけれどもこのデータだけからではそうとも言えない感じ。そこを確かめるにに必要なのが「右打ち切りデータ」に対するブートストラップ法の適用だろうか?知らんけど。
全データを色分けプロットしてみることにしてみました。処理はこんな感じ。
plot(work$entryYear, col=work$sex, ylim=c(60, 110), xlab="tenant index", ylab="age") par(new=T) plot(work$exitYear, col=(work$cen + 3), ylim=c(60, 110), ann=F) legend("topright", legend=c("Entry FeMale", "Entry Male", "Death", "Survival"), pch=1, col=1:4) title("Channing House")
以下では、男性の入居時年齢が赤丸、女性の入居時年齢が黒丸(成り行きで色をつけたら一般の男女の色分けとは逆になってしまった)、退去時年齢が緑、継続時年齢が青でプロットしてます。横軸はそれぞれの入居者様のインデックスです。
dplyrパッケージを使い以下のような処理をしてboxplot、お茶をにごしました。
exitMaleD <- work %>% filter(sex=="Male", cens==0) exitMaleS <- work %>% filter(sex=="Male", cens==1) exitFemaleD <- work %>% filter(sex=="Female", cens==0) exitFemaleS <- work %>% filter(sex=="Female", cens==1) boxplot(exitMaleD$exitYear, exitMaleS$exitYear, exitFemaleD$exitYear, exitFemaleS$exitYear, names=c("MaleD", "MaleS", "FemaleD", "FemaleS"), ylab="Age", main="Channing House, Exit Data")
こうしてみると、男性、女性、そしてご存命か否かもあんまり関係ない感じがする。。。