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

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

第7回に出てきた関数と文の主なものはこちらを参照されたい。

課題

http://phi.med.gunma-u.ac.jp/medstat/p07.txtはパプアニューギニアのある言語族の居住する4つの村で測定した成人男性の血液のヘモグロビン濃度のデータである。変数VILは村落番号を意味し,変数HBはヘモグロビン濃度(g/dL)を示す。村落間でヘモグロビン濃度の平均値に差が無いという帰無仮説を,有意水準5%で検定した結果,5%水準で統計学的に有意な差がみられたので,どの階級とどの階級の間に差があるのかについて,検定の多重性をHolmの方法で調整した多重比較を実行した。以上を実行するコードと出力結果とその解釈を下に示す。

(http://phi.med.gunma-u.ac.jp/medstat/p07.txt is the tab-delimited text file, which is the result of hemoglobin concentration in 4 villages of Papua New Guinea. The variable VIL means the number of village, and the variable HB means hemoglobin concentration (g/dL). As the result of testing the null hypothesis that there is no significant difference of mean heamoglobin concentration among these villages, the null-hypothesis was rejected at 5% significance level, so that we conducted multiple comparison with Holm's method between all combinations of villages. The code and result with its interpretation are shown below.)

学籍番号・氏名とともに,下のフォームと解釈文を穴埋めして送信せよ。

(Please write the registry number and name, fill the boxes A to E, and click [submit] button.)


コードは以下の通り。

(The code is shown below.)

x <- read.delim("http://phi.med.gunma-u.ac.jp/medstat/p07.txt") # read data into x
Mx <- tapply(x$HB,x$VIL,mean) # Calculate means of HB by VIL
Sx <- tapply(x$HB,x$VIL,sd) # Calculate unbiased standard deviations of HB by VIL
Ix <- 1:4+0.1
stripchart(HB ~ BoxA, data=x, method="jitter", vert=TRUE) # Draw stripcharts of HB by VIL
points(Ix, Mx, pch=18, cex=2) # Add the means of DBP for each AC, black diamond, double size
arrows(Ix, Mx-Sx, Ix, Mx+Sx, angle=90, code=3) # Add error bars of DBP for each AC
bartlett.test(HB ~ VIL, data=x) # Test the equal variances hypothesis by Bartlett's test
BoxB(HB ~ VIL, data=x) # Test the equal means hypothesis by Welch's one-way ANOVA
pairwise.t.test(x$HB,x$VIL) # Conducts multiple comparison of mean HBs among all possible pairs of VILs

グラフを見ると,村落番号がBoxC村落ほどヘモグロビン濃度が低い傾向があるようにみえる。バートレットの検定の結果をみると,p-valueはBoxDであり,5%水準で有意ではない。Welchの拡張による一元配置分散分析の結果は,p-valueが7.034e-11と0.05より小さいので,有意水準5%で,ヘモグロビン濃度の平均値には村落の違いが有意に影響しているといえる。そこで次に,どの村とどの村の間でヘモグロビン濃度に統計学的に有意な差があるのかを調べるため,Holmの方法で調整した多重比較の結果を示す。

(The stripcharts shows that the BoxC the number of VILs are, hemoglobin levels tend to be lower. As the result of Bartlett's test, p-value was BoxD, which means non-significant difference among variances at 5% level. As the result of Welch's one-way ANOVA, p-value was 7.034e-11, which is less than 0.05, so that there was statistically significant difference of means of HBs among 4 VILs. The result of multiple comparison adjusted by Holm's method is shown below.)

Pairwise comparisons using t tests with pooled SD 

data:  x$HB and x$VIL 

   1       7       9      
7  0.71    -       -      
9  1.3e-05 2.1e-05 -      
13 8.0e-15 8.8e-15 6.4e-09

P value adjustment method: holm

BoxEの組み合わせを除くすべての村間で有意差があると言える。

(Consequently, statistically significant difference at 5% level was found except between BoxE.

解答例

項目入力欄
Box AVIL
Box Boneway.test
Box C大きい
Box D0.2927
Box E1と7

大抵の人が正解でしたが,oneway.testのところをbartlett.testと誤っている人が散見されました。Box Eの解答について,有意なものがないのではないかとコメントした学生がいましたが,おそらく浮動小数点表示の読み方を誤解したものと思います。例えば,1.3e-05は,1.3×10-5という意味ですので,当然0.05よりはずっと小さな値です。

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

もう少しじっくりと,理解重視で進めてほしい。
進度については学生によって受け止め方が異なるので難しいところです。ここでアンケートをとってみます。進度についてどう感じていますか?
速いちょうどいい遅い
検定法を頭に入れるのは難しい/試験のときは関数を覚えておかなくてはいけない?/まとめ表をみながらでもOK?
試験は持ち込み可ですし,コンピュータはネットワークにつながっているので,webを検索しながら解答してもいいです。友達にやってもらうのはダメですが,検索も含めて自力でやればOKです。統計処理を実際にやる場合も,詳細オプションまで覚えている必要はないのは当然として,関数名も何となくこんな感じだったかなというのを覚えておいて,使う前に,?関数名でヘルプを確認して使えばいいわけです。
課題は結果だけ与えられていて、「以下と同じ結果が得られるRのコードを書きなさい。」というような形式で、演習の時間を使って問題を解くようにしていただけると実学として身につくと思います。
その通りかもしれません。一度試しにやってみましょうか?
全群比較ではペリの方法が一番検出力があると記憶しています。
その通りですが,pairwise.*.testでサポートされていないことと,原理がBonferroniやHolmほどシンプルではないことと,まだ使われている論文が多くないことから,ペリの方法の説明はしませんでした。コントロール群との比較についてのDunnettの方法なども可能ですが,同様な理由から説明しませんでした。

リンクと引用について