群馬大学 | 医学部 | サイトトップ | 医学情報処理演習

医学情報処理演習:2011年度第3回課題解答例

課題

Rに元々組み込まれているデータairqualityは,1973年5月1日から9月30日まで154日間のニューヨーク市の大気環境データである。含まれている変数は,次のとおりである。

このデータについて,月別にオゾン濃度の記述統計量(サンプルサイズ,平均値,標準偏差,第1四分位,中央値,第3四分位)を求めるコードは以下のように書ける。ただし,わざとBoxで穴をあけてある。

descstat <- function(X) {
XX <- X[!is.na(X)] # 欠損値を除去する(excluding missing values)
Q5S <- BoxA(XX)
res <- c(BoxB(XX), BoxC(XX), sd(XX), Q5S[2], Q5S[3], Q5S[4])
names(res) <- c("N","Mean","SD","Q1","Median","Q3")
return(res) }

tapply(airquality$Ozone, airquality$BoxD, descstat)

それぞれのBoxに入る正しい関数名または変数名を解答せよ。また,求めた記述統計量からいえることを文章で記せ。さらに,もしあれば感想・要望・質問などとともに下のフォームから送信せよ。学籍番号と氏名の入力を忘れないこと。

(The program listed above is to calculate descriptive statistics (sample size, mean, unbiased standard deviation, 1st and 3rd quartiles, and median) of body mass index (BMI) for married and single subjects, separately. Please fill appropriate functions or variables in the boxes. In addition, please explain what the results mean.)

解答例

項目解答
BoxAfivenum
BoxBlength
BoxCmean
BoxDMonth
結果からいえること(What the result means)一目でわかるのは,7月と8月のオゾン濃度が他の月より高いことである。ただし丁寧に見ると,中央値のピークは7月だが平均値の最大は8月にあり,8月にはオゾン濃度が非常に高い外れ値の日があることが示唆される(ヒストグラムを見れば一目瞭然である)。不偏標準偏差も7月より8月の方が大きい。もうひとつ気になるのは,6月のサンプルサイズが小さいことである。欠損値が非常に多いことがわかるが,原因は不明である。

主なコメントへの回答

2回目と3回目は逆の方が良かったという感想がありましたが,図示によりデータの大まかな性状を把握してから記述統計という形でデータを集約するので,順番は現行通りでいいと判断しています。

Rの[ ]によるベクトルの一部の参照ですが,[!is.na()]のように式を入れるのが気持ち悪いため,C++でコードを書いてくれた人がいました。実はRでもCやC++のように明示的にforループで条件判定するような書き方もできますが,Rらしい書き方をする方が速いのでそうしています。

定時に入室してもコンピュータの起動に時間がかかって出席登録が遅れた場合の扱いですが,5分遅れまでは出席としたいと思います。


リンクと引用について