
前回は日本国政府ご提供の「実」統計データの地図描画機能などに触れさせていただきました。流石に機能充実。今回はシリーズ趣旨に戻りサンプルデータセットです。使用させていただくパッケージはMASSとな。どうもいろいろ盛り沢山なパッケージみたいです。その中でもABC順に舐めるので、今回はAIDS?病気のデータ、およよ。
※「データのお砂場」投稿順Indexはこちら
MASSパッケージ
CRAN上のMASSパッケージについてのページが以下に。
MASS: Support Functions and Datasets for Venables and Ripley’s MASS
上記を拝見するに、Venables先生とRipley先生が「S言語」のために作成された関数やらデータセットやらをまとめたパッケージらしいです。S言語は古のベル研にて開発された統計処理のための言語処理系らしいです。というかS言語をオープンソース化したものが、いつもお世話になっているR言語であるらしいです。そして元々は「S言語向き」に作成されたパッケージがこうしてR言語上でも使えておると。ありがたや。
Aids2
さて、MASSパッケージには非常に多数のサンプルデータセットが含まれているのですが、ABC順なのでその最初は Aids2 です。なぜ「2」がついているかと考えると、aidsというサンプルデータセットもあるからでないかと。以下の過去回で取り扱わせていただいております。
データのお砂場(92) R言語、aids、英国におけるAIDS診断と報告1983-1992年
またタイトルにAIDSは含まれませんが、以下の過去回もAids関係デス。
データのお砂場(106) R言語、cd4、HIVのお薬の効き具合?とな bootパッケージ
上記はbootパッケージ所蔵のサンプルデータセットです。
今回の、MASSパッケージ内の Aids2 サンプルデータセットについての解説ページが以下に。
オーストラリアにおける1991年7月1日以前のデータであるようです。今でこそ薬さえ服薬できれば(そのお金があれば)滅多に死亡しない病気になってますが、1991年というと「結構、致命的」な時代。ヤバイよ。
解説ページには処理例などの掲載はないのですが、このサンプルデータセットを対象に演習(日本語)をしているページがありました。神戸大で公衆衛生学を教えていらっしゃる「中澤港」先生の以下のページです。
医学情報処理演習:2011年度第12回課題解答例と主なコメント・質問への回答
上記を拝見するとこのデータから「生存時間解析」など行うのが本筋らしいですが、お惚け老人にはムツカシーです。そして、それを行うには「他のパッケージ」も必要になりそう。基本、追加パッケージのインストール無に「お楽」になでるだけという方針。今回はテキトーにグラフを描いてお茶を濁します。
先ずは生データ
パッケージをロード後、まずはデータをロードして中身を覗いてみたところが以下に。
サンプルデータセットの形式はデータフレーム。変数は7個あります。
-
- state、オストラリアの州の略記号など
- sex、性別
- diag、診断日
- death、死亡日、生存者の場合は最終診察日
- status、生死
- T.categ、感染経路?
- age、年齢
T.categについては略名で記されているので何だかよく分かりませぬ。また、解説のNoteに曰く、
This data set has been slightly jittered as a condition of its release, to ensure patient confidentiality.
ということで、真のデータではなく、ネット上ではよくある?「フェイク」噛ましてあるデータらしいです。
なお、state欄みるとNSW、ニューサウスウェールズ州が症例ダントツ。首都シドニーを擁する都会な州みたいです。
グラフを何点か
もとより難しい解析など諦めているので、まずは「クロス集計」してみました。男女別にA(存命)、D(死亡)の集計です。
table(Aids2$sex, Aids2$status)
極端に男女のサンプル数差があり。
とりあえず「D」カテゴリの方々についてのみ集計してみるので以下のような補助的なデータフレームを作成してみました。deadmanとな。不吉な。
deadman <- Aids2[Aids2$status=="D",] st <- deadman$death - deadman$diag df_st <- data.frame(st) names(df_st) <- c("SurvivalTime") deadman <- cbind(deadman, df_st)
上記の補助データを使って、男女別のBOXPLOTをしてみたのが以下に。
boxplot(deadman$SurvivalTime ~ deadman$sex, main="Survival Time", col=c("yellow", "orange"))
一方、診断日から死亡日までの期間を「患者と診断されてから死亡するまでの期間」とみなしてヒストグラムを集計する方法が以下に。
hist(deadman$SurvivalTime)
ヤバイ、ヒストグラムだよ。
また、年齢別にプロットしてみるのが以下に。
svt <- aggregate(deadman$SurvivalTime, by = list(age=deadman$age), mean) plot(svt, main="SurvivalTime", ylab="day(s)")
グラフが以下に。縦方向は「その年齢での平均の」生存期間(診断から死亡まで)っす。
やっぱり不吉なデータだったよ。