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

医学情報処理演習:第10回課題の解答例

課題

日本初の疫学小説である川端裕人『エピデミック』(角川書店)には,謎の感染症の原因をクロス集計を使って探って行く場面が登場する。エピローグに出てくるジャーナリストが書いた情報を元にして,生データを想像すると,epidemic.txtのようになっているはずである(もちろん,作品中ではこの情報の他にも,年齢とか職業とか怪しげなミネラルウォータを飲んでいたかどうかといった情報がとられたことになっていたが,数字を再構築できるのはこれだけ)。

データファイル中の変数名は以下の通りである。PLACEがヒトの居住地で,作中XSARSと名づけられた謎の感染症の患者が集団発生した「石畳」か,それ以外の「石畳外」のどちらかの値をとる。PETCATがペットとしてネコを飼っているかどうか(1が飼っているでことを示し,0が飼っていないことを示す),XSARSは謎の感染症を発症したかどうか(1が患者,0が罹らなかった人を意味する),TOUCHCATは野ネコとの接触を含めて,日常的にネコに接しているかどうか(1が日常的に接していて,0が接していないことを示す)。

このデータから,物語の筋に従い,(1)まず石畳地区と石畳以外の地区で別々にペットとしてネコを飼っているかどうかと感染症を発症したかどうかのクロス集計を行ってオッズ比を求め,(2)石畳地区で日常的にネコに接しているかどうかと感染症を発症したかどうかのクロス集計を行ってオッズ比を求め,結果を考察せよ。

可能なら,地区を層別因子としてクロス集計表の併合を行い,マンテル=ヘンツェルの共通オッズ比を求め,考察を加えよ。

学籍番号・氏名とともに(注:絶対に忘れないこと!),下のフォームにRのコードと考察を貼り付けて送信せよ。

解答例

Rのコードは例えば以下のようになる。

dat <- read.delim("http://phi.med.gunma-u.ac.jp/medstat/epidemic.txt")
dat$PETCAT <- factor(dat$PETCAT,labels=c("なし","猫ペット有"))
dat$TOUCHCAT <- factor(dat$TOUCHCAT,labels=c("猫接触無","猫接触有"))
dat$XSARS <- factor(dat$XSARS,labels=c("健康","罹患"))
stonebase <- subset(dat,PLACE=="石畳")
outside <- subset(dat,PLACE=="石畳外")
print(d1 <- table(stonebase$XSARS,stonebase$PETCAT))
fisher.test(d1)
print(d2 <- table(outside$XSARS,outside$PETCAT))
fisher.test(d2)
print(d3 <- table(stonebase$XSARS,stonebase$TOUCHCAT))
fisher.test(d3)
library(vcd)
print(r1 <- oddsratio(d1,log=F))
confint(r1)
print(r2 <- oddsratio(d2,log=F))
confint(r2)
print(r3 <- oddsratio(d3,log=F))
confint(r3)
print(d4 <- table(dat$XSARS,dat$TOUCHCAT,dat$PLACE))
woolf_test(d4)
mantelhaen.test(d4)
mosaicplot(table(dat$PLACE,dat$TOUCHCAT,dat$XSARS), main="場所×猫との日常的接触有無\n×XSARS罹患有無")

0/1のままだと結果がみにくいので,まず変数を要因型に変えて,カテゴリに名前をつける。次に石畳だけのサブセットstonebaseと石畳外だけのサブセットoutsideを作る。

(1)猫をペットとして飼っているかどうかとXSARS罹患の有無とのクロス集計は,石畳地区では

       なし 猫ペット有
  健康   24         10
  罹患   14          4

石畳外では,

       なし 猫ペット有
  健康   18          7
  罹患    5          9

となる。オッズ比は,fisher.test()の結果では,石畳地区で0.69 [0.13, 3.00]だが,石畳外で4.43 [0.94, 23.8]となり,vcdライブラリのoddsratio()の結果では,石畳地区で0.69 [0.19, 2.47],石畳外で4.63 [1.20, 17.9]となる。石畳地区では猫をペットとして飼っているかどうかとXSARS罹患は関係ないが,石畳外では猫を飼っているとXSARS罹患リスクが4倍以上になることがわかる。

(2)石畳地区で日常的に猫に接しているかどうかとXSARS罹患のクロス集計をすると,

       猫接触無 猫接触有
  健康       19       15
  罹患        2       16

となる。オッズ比はfisher.test()では9.70 [1.83, 100.1],vcdライブラリのoddsratio()では10.13 [2.29, 44.9]となり,猫と日常的な接触があると,接触がない場合に比べてXSARSに約10倍罹患しやすくなることがわかる。

場所と猫との接触とXSARS罹患のモザイクプロット

石畳地区でも石畳外でも同じように猫との日常的な接触がXSARS罹患のリスク因子となっているかどうかを調べるため,地区を層別変数として3次元のクロス集計表を作ると,

, ,  = 石畳

      
       猫接触無 猫接触有
  健康       19       15
  罹患        2       16

, ,  = 石畳外

      
       猫接触無 猫接触有
  健康       18        7
  罹患        5        9

となる。石畳でも石畳外でもオッズ比が均質(三次元の交互作用がない)という帰無仮説をWoolfの検定で調べると,カイ二乗値が0.5154,有意確率が0.4728となり,帰無仮説は棄却されない。そこでマンテルヘンツェルの共通オッズ比を求めると,6.78 [2.39, 19.3]となり,地区による違いを考慮しても,猫との接触が日常的にあると,猫との接触が日常的にない場合に比べて,7倍近くXSARSに罹患しやすくなっていることがわかった。

(以下余談)ちなみに,ここまではっきりと,その疾病の罹患リスクを上げる要因がわかったら,公衆衛生学的には猫との接触を断つことが重要な対策となるので,ノラネコ捕獲とか猫に構わないように住民に健康教育をするとかいったことが次の手になるであろう。


リンクと引用について