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

医学情報処理演習第10回「計数データと比率の解析」課題解答例

2011年12月13日

課題

途上国のある村で年齢階級別の人口と死亡数を調べた結果,以下の表が得られたとする。作図した上で,年齢階級によって死亡率に差があるか検定せよ。もし有意水準5%で統計学的に有意な差があったら,どの年齢階級とどの年齢階級に差があるのかも検討せよ。

年齢階級(Age class)人口(Population)1年間の死亡者数(Annual death)
10歳未満(Less than 10 yr)20027
10歳〜29歳(10 to 29 yr)32020
30歳〜49歳(30 to 49 yr)12012
50歳以上(Equal or more than 50 yr)11022

解答例

項目解答例
解答(Rのコード)
pop <- c(200,320,120,110)
names(pop) <- c("10歳未満","10歳〜29歳","30歳〜49歳","50歳以上")
death <- c(27,20,12,22)
barplot(death/pop)
prop.test(death,pop)
pairwise.prop.test(death,pop)
解答(考察)

死亡率は10歳未満で0.135,10〜29歳で0.0625,30〜49歳で0.1,50歳以上で0.2であり,「異なる年齢階級間で死亡率に差が無い」帰無仮説の検定をすると,p-valueは0.0004であった。有意確率が有意水準5%より小さいので帰無仮説は棄却され,年齢階級によって死亡率には統計学的に有意な差があったといえる。

Holmの方法によって検定の多重性を調整した対比較の結果,10歳未満と10歳〜29歳の間と,10歳〜29歳と50歳以上の間で統計学的に有意な差があった(Holmの方法で調整したp値はそれぞれ0.0405と0.00037)が,それ以外の組み合わせでは差があるとはいえなかった。

主なコメント・要望・質問への回答

多重比較の結果にグループ名が表示されるようにできませんか?
実は簡単にできます。names(death) <- c("10歳未満","10歳〜29歳","30歳〜49歳","50歳以上")としておくだけでできました。こうすると,popには名前を付けなくても棒グラフの横軸にも名前が表示されますので,実は名前を付けるのはpopではなく,分子となるdeathの方が良かったようです。(両方に名前を付けても問題ありません)
今回のようなpdf形式の方がテキストを読むよりわかりやすい。(同様多数)
時間が許せば用意します。
コードを全部書く課題だと,正しいかどうかわからないので,これまでの形式の方がいい。(同様多数。しかし,類題があったのでわかりやすかったという意見も同じくらいありました)
1週間待たなくてもいいように,この解答例のページは火曜までにアップロードできるよう努力します。
コードを打つ課題の場合,赤い文字だけでいいのか,青い文字も必要かわからない。
コードとは,プロンプト(>)に対して打ち込む内容を指しますので,赤い文字だけです。青い文字は結果なので,コードという場合は含みません。スクリプトウィンドウに打ったものを,そのままコピーペーストすればいいと思います。
考察のところは結果も必要か?
ここに示した例のように,結果の要点を示すことは,考察を展開するために必要です。しかし,必ずしも結果の全てを提示しなくてもいいです。
難しくてわからなかった。
今回の課題は,形式としては講義内でやった例とまったく同じですし,そのことは何度も言ったのですが……。難しいという人は,どう難しいのか,どうわからないのかを書いてください。