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

医学情報処理演習第11回「クロス集計」課題解答例

2010年1月18日

課題

有名な古典的データだが,1910年の米国での結核死亡者数を分析する。ニューヨーク市は白人人口が4,675,174人,非白人人口が91,709人であり,結核による死亡者数はそれぞれ8,365人と513人であった。ヴァージニア州リッチモンドは白人人口が80,895人,非白人が46,733人であり,結核による死亡者数はそれぞれ131人と155人であった。このデータを用いて,以下の問いに解答せよ。

(1)ニューヨーク市とリッチモンドを合わせて,白人か非白人かという人種の違いと,結核による死亡に関連がないという帰無仮説を検定せよ。

(2)人種の違いを無視して,ニューヨーク市の死亡率がリッチモンドの死亡率の何倍か(率比)と差(寄与危険)を求めよ。

(3)(もし時間に余裕があれば)ニューヨークとリッチモンド別々に,それぞれ白人であることが結核による死亡オッズを何倍にするか(つまりオッズ比)を求めた上で,クロス集計表を併合しマンテル=ヘンツェルの検定をした上で,共通オッズ比を95%信頼区間とともに求めよ。

学籍番号・氏名とともに,下のフォームにRのコードと考察を貼り付けて送信せよ。

解答例

検定の有意水準をいくつにするか,問題に示されていないので,今回も通常の例にならい,以下すべての検定の有意水準は5%とする。

数学の文章題から式を読み取るのと同じように,なるべく文章のままRの式に置き換えていき,後でRの式を操作して必要な表を作っていくとよい。例えば,以下のようなコードを用いる(#で始まっている行は注釈であり実行されない)。

# 白人,非白人の順に数字を変数に付値していく
NYPOP <- c(4675174,91709)
NYTBD <- c(8365,513)
VRPOP <- c(80895,46733)
VRTBD <- c(131,155)
# (1)に答えるため,ニューヨーク市とリッチモンドのデータを足す
TOTALPOP <- NYPOP+VRPOP
TOTALTBD <- NYTBD+VRTBD
# (1)に答えるため,合計人口と合計結核死者数から,合計生存者数を求める
TOTALALIVE <- TOTALPOP-TOTALTBD
# (1)に答えるため,合計結核死者数と合計生存者数を列方向に結合する
XT <- cbind(TOTALTBD,TOTALALIVE)
# (1)に答えるため,できあがったクロス表の各次元のカテゴリに名前をつける
dimnames(XT) <- list(c("白人","非白人"),c("結核死亡","生存"))
# クロス集計表を表示する
print(XT)
# (1)に答えるため,独立性のカイ二乗検定を行う
chisq.test(XT)
# (2)に答えるため,NYとVRそれぞれについて白人と非白人のデータを足す
NYPOPA <- sum(NYPOP)
NYTBDA <- sum(NYTBD)
VRPOPA <- sum(VRPOP)
VRTBDA <- sum(VRTBD)
# (2)に答えるため,NYとVRそれぞれの死亡率を計算する
NYMR <- NYTBDA/NYPOPA
VRMR <- VRTBDA/VRPOPA
# (2)に答えるため,これらの比と差を計算する
print(NYMR/VRMR)
print(NYMR-VRMR)
# (3)に答えるため,NYとVR別々にクロス集計表を作る
NYXT <- matrix(c(NYTBD,NYPOP-NYTBD),2)
dimnames(NYXT) <- list(c("白人","非白人"),c("結核死亡","生存"))
VRXT <- matrix(c(VRTBD,VRPOP-VRTBD),2)
dimnames(VRXT) <- list(c("白人","非白人"),c("結核死亡","生存"))
# (3)に答えるため,NYとVRそれぞれのクロス集計表を表示してからfisher.test
print(NYXT)
fisher.test(NYXT)
print(VRXT)
fisher.test(VRXT)
# (3)に答えるため,クロス集計表を併合
CXT <- array(c(NYXT,VRXT),dim=c(2,2,2))
dimnames(CXT) <- list(c("白人","非白人"),c("結核死亡","生存"),c("NY","VR"))
# 併合した3次元の表を表示してからマンテル=ヘンツェルの検定
print(CXT)
mantelhaen.test(CXT)

計算結果は次のように表示される

# (1)
       結核死亡    生存
白人       8496 4747573
非白人      668  137774

        Pearson's Chi-squared test with Yates' continuity correction
data:  XT 
X-squared = 663.1003, df = 1, p-value < 2.2e-16
# (2)
NYMR/VRMR
[1] 0.831114
NYMR-VRMR
[1] -0.0003784546
# (3)前半
       結核死亡    生存
白人       8365 4666809
非白人      513   91196

        Fisher's Exact Test for Count Data
data:  NYXT 
p-value < 2.2e-16
alternative hypothesis: true odds ratio is not equal to 1 
95 percent confidence interval:
 0.2913452 0.3491197 
sample estimates:
odds ratio 
 0.3186486 

       結核死亡  生存
白人        131 80764
非白人      155 46578

        Fisher's Exact Test for Count Data
data:  VRXT 
p-value = 1.702e-09
alternative hypothesis: true odds ratio is not equal to 1 
95 percent confidence interval:
 0.3831561 0.6192823 
sample estimates:
odds ratio 
 0.4874118 
# (3)後半
, , NY

       結核死亡    生存
白人       8365 4666809
非白人      513   91196

, , VR

       結核死亡  生存
白人        131 80764
非白人      155 46578

        Mantel-Haenszel chi-squared test with continuity correction
data:  CXT 
Mantel-Haenszel X-squared = 658.1941, df = 1, p-value < 2.2e-16
alternative hypothesis: true common odds ratio is not equal to 1 
95 percent confidence interval:
 0.3175493 0.3774776 
sample estimates:
common odds ratio 
        0.3462192 

これらの結果から考察されるのは次のようなことである。100年前の米国において,(1)白人かどうかと結核で死亡したかどうかが独立であるという帰無仮説をカイ二乗検定した結果,有意確率は2.2×10-16未満であり,有意水準以下なので,人種と結核死亡には統計学的に有意な関連があった。(2)ニューヨーク市はリッチモンドに比べ,結核による死亡率が0.83倍であり,0.00038だけ低かった。この問題は点推定量だけを問うものであり,検定は求められていないので,これで十分であるが,もし検定するならばvcdライブラリを使って,死亡率比が1と差がないという帰無仮説の検定や,死亡率差が0と差がないという帰無仮説の検定をすべきである。(3)ニューヨーク市では白人の結核死亡は非白人の0.32倍(95%信頼区間は[0.29, 0.35])しかなく,リッチモンドでは白人の結核死亡は非白人の0.49倍(95%信頼区間は[0.38, 0.62])であった。同じ向きに関連があるかどうかを調べるのにマンテル=ヘンツェルのカイ二乗検定をすると,有意確率が2.2×10-16未満と有意水準以下なので,帰無仮説が棄却され,真の共通オッズ比が1に等しくないという対立仮説が採択される。共通オッズ比の点推定量が0.35なので,ニューヨーク市でもリッチモンドでも共通して,白人の結核死亡は非白人に比べ0.35倍(95%信頼区間が[0.31, 0.38])であったといえる。