データのお砂場(185) R言語、Aids2、昔のオーストラリアのAIDS事情?{MASS}

Joseph Halfmoon

前回は日本国政府ご提供の「実」統計データの地図描画機能などに触れさせていただきました。流石に機能充実。今回はシリーズ趣旨に戻りサンプルデータセットです。使用させていただくパッケージは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 サンプルデータセットについての解説ページが以下に。

Australian AIDS Survival Data

オーストラリアにおける1991年7月1日以前のデータであるようです。今でこそ薬さえ服薬できれば(そのお金があれば)滅多に死亡しない病気になってますが、1991年というと「結構、致命的」な時代。ヤバイよ。

解説ページには処理例などの掲載はないのですが、このサンプルデータセットを対象に演習(日本語)をしているページがありました。神戸大で公衆衛生学を教えていらっしゃる「中澤港」先生の以下のページです。

医学情報処理演習:2011年度第12回課題解答例と主なコメント・質問への回答

上記を拝見するとこのデータから「生存時間解析」など行うのが本筋らしいですが、お惚け老人にはムツカシーです。そして、それを行うには「他のパッケージ」も必要になりそう。基本、追加パッケージのインストール無に「お楽」になでるだけという方針。今回はテキトーにグラフを描いてお茶を濁します。

先ずは生データ

パッケージをロード後、まずはデータをロードして中身を覗いてみたところが以下に。Aids2RawData

サンプルデータセットの形式はデータフレーム。変数は7個あります。

    1. state、オストラリアの州の略記号など
    2. sex、性別
    3. diag、診断日
    4. death、死亡日、生存者の場合は最終診察日
    5. status、生死
    6. T.categ、感染経路?
    7. 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)

結果が以下に。AidsTable1

極端に男女のサンプル数差があり。

とりあえず「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"))

Aids2_SurvivalTime_Sex

一方、診断日から死亡日までの期間を「患者と診断されてから死亡するまでの期間」とみなしてヒストグラムを集計する方法が以下に。

hist(deadman$SurvivalTime)

描かれたヒストグラムは以下です。Aids2_SurvivalTime

ヤバイ、ヒストグラムだよ。

また、年齢別にプロットしてみるのが以下に。

svt <- aggregate(deadman$SurvivalTime, by = list(age=deadman$age), mean)
plot(svt, main="SurvivalTime", ylab="day(s)")

グラフが以下に。縦方向は「その年齢での平均の」生存期間(診断から死亡まで)っす。Aids2_SurvivalTime_Age

やっぱり不吉なデータだったよ。

データのお砂場(184) e-Stat、日本地図に実際の統計データを描く練習 へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です