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

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

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

課題

http://phi.med.gunma-u.ac.jp/medstat/it2010-11.txtは,3つの変数JOB,HEALTH,WEALTHからなる架空のデータである。JOBは就業状態を意味し,workingとretiredの2つの値からなる。HEALTHは主観的健康状態を意味し,goodとbadの2つの値からなる。WEALTHは主観的な裕福さを意味し,richとpoorの2つの値からなる。HEALTHとWEALTHのクロス集計表を作成し,それら2つが独立であるという帰無仮説をフィッシャーの正確な検定で検定したところ,有意水準5%で帰無仮説が棄却されたので,JOBで層別して有職者(working)と退職者(retired)で別々にHEALTHとWEALTHが独立であるという帰無仮説をフィッシャーの正確な検定で検定したところ,いずれも有意でなかった。しかしマンテル=ヘンツェルの要約カイ二乗検定を行ったところ,有意水準5%で統計学的に有意な結果が得られた。以上の解析を実行するコードと解釈を以下に示す。

http://phi.med.gunma-u.ac.jp/medstat/it2010-11.txt is the tab-delimited text file, which is composed of 3 variables as JOB, HEALTH, and WEALTH. JOB means the status of "working" or "retired", HEALTH means subjective health status of "good" or "bad", and WEALTH means subjective wealth status of "rich" or "poor". This is imaginary data.

After reading the data, we made cross tabulation between HEALTH and WEALTH, then test the null-hypothesis that those 2 variables are independent each other, using Fisher's exact test. Consequently, the null-hypothesis was rejected at 5% level. Then we stratified the data by JOB, and tested the null-hypothesis that HEALTH and WEALTH is independent in either of "working" or "retired" by Fisher's exact test. The results were not significant in either of "working" or "retired". However, the pooled analysis using Mantel-Haentzel chi-square test resulted to reject the null-hypothesis. The code and result with its interpretation are shown below.

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

Please write the registry number and name, fill the boxes by adequate characters.


コードは以下の通り。

(The code is shown below.)

x <- read.delim("http://phi.med.gunma-u.ac.jp/medstat/it2010-11.txt") # read data into x
TAB <- xtabs(~Box A+Box B, data=x) # make a cross table of HEALTH and WEALTH
fisher.test(TAB)
TABS <- xtabs(~Box A+Box B+Box C, data=x)
fisher.test(TABS[,,"working"])
fisher.test(TABS[,,"retired"])
Box D(TABS)

以上の結果から,就業状態は主観的健康状態と主観的裕福さの関連について交絡因子になっているとBox E(1:いえる, 2:いえない)

Based on the above results, we Box E (1: can, 2: cannot) say that the job status is confounding the relationship between subjective health status and subjective wealth.

解答例

項目入力欄
Box AHEALTH
Box BWEALTH
Box CJOB
Box Dmantelhaen.test
Box E2

(注)クロス集計表を作る場合,通常,原因(要因曝露)を左(行の変数)に,結果(疾病)を上(列の変数)にとるので,(A)がWEALTH,(B)がHEALTHという考え方もありうる(それでもよい)。ここでは2つの理由から,どちらが上でどちらが左でも問題ない。第1の理由は,ここで検討しているのが「2つの変数の間に関連が無い」という帰無仮説であって,相関関係と同じく,数学的には向きを考慮しないからである。第2の理由は,WEALTHもHEALTHも同時に取られた「主観的」な値なので,必ずしも豊かさが健康に影響するという関連に限らず,健康だと感じているほどしっかり働けて豊かにもなるという因果の向きも想定可能だからである。

(注2)交絡要因は,原則として,原因と結果の両方に影響を与えている第3の要因である。結果を説明するモデルに,その要因を入れるか入れないかによって他の原因と結果との関係が違ってくるなら,一般に,その要因は交絡要因とみなすべきである。

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

クロス集計表の作り方がちょっと不安です。(結果と原因のどちらを列にするか)
上記(注)を参照してください。
先ほどの解答の【E】を間違えたので、再送します/Eの判断を自分でやった時には、間違えてしまった/マンテル=ヘンツェルの要約カイ二乗統計量とその検定がよくわかりませんでした。この検定の結果が有意なら交絡があるというわけではないんですか? どういう時に交絡があって、どういう時に交絡がないのかをもう一度説明してほしいです/マンテル=ヘンツェルの要約カイ二乗検定の話が、複雑でした・・・/mantelhaen.testが有意な結果だったので、最後(E)が2になるが少し混乱しましたが、説明で理解できました。
上記(注2)を参照してください。シンプソンのパラドックスのように,第3の変数を無視して単純にプールしたデータを分析した場合と,第3の変数で層別して分析した場合に,異なる関連性が見られた場合,その第3の変数は交絡要因になっている可能性があります。しかし,プールして分析した場合に有意な関連があったけれども,層別に分析した場合に有意ではないという場合,層別に使った変数が交絡要因である場合の他にも,層別することによってサンプルサイズが小さくなるので検出力が低下し,本当は関連があるのに統計学的に有意ではないということもありえます。このデータでは,マンテル=ヘンツェルの要約カイ二乗検定の結果が,プールして分析した場合とほぼ同等なので,層別変数であるJOBのどちらの層でもHEALTHとWEALTHには同じ向きに関連があると考えられます。つまり,層別変数は原因と結果の関係に影響していると言えないので,交絡要因であるとは言えないということになります。
三次元のクロス集計は理解が若干遅かったが、把握することができた。
3つ以上のカテゴリ変数の組み合わせを同時に考えるのは,なかなかイメージがつかみにくいと思いますが,講義中にも説明した通り,3次元の場合は,2次元の表が層として重なっていると考えるといいと思います。直接人数を入力する場合はarray()を使い,生データから集計するときはtable()に3つのベクトルをコンマで区切って渡すか,xtabs()でチルダ(~)の右側に3つのカテゴリ変数をプラス(+)でつないで渡せばいいです。

リンクと引用について