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

医学情報処理演習:2011年度第12回の関数

今回使った関数や文の主なものをまとめます (A selected summary of functions and statements used in the 12th practice is shown here.)

今回の内容は,第10章クロス集計のうち,疫学研究における効果の指標と関連性の評価を扱います。

この場合,クロス表は,要因とみなされるものの有無を左(つまり行の変数),疾病や死亡など結果の有無を上(つまり列の変数)として作成します。交絡があれば3次元目以降の変数とします。

結果(疾病)の有無
合計
要因(曝露)の有無abm1
cdm2
合計n1n2N

上の2×2クロス集計表を考えます。横断的研究(断面研究)の場合は,要因の有無と結果の有無を,どちらも属性として同時に調べます。従って,Nはサンプルサイズとして決まっていますが,調査をしてみるまでは,m1, m2, n1, n2は決まりません。症例対照研究の場合は,結果の有無別にサンプリングするので,n1とn2は予め決まっています。逆に臨床試験(とくにRCT)では曝露の有無をランダムに割り付けますし,コホート研究では曝露の有無別にサンプリングするので,予めm1とm2が決まっています。

「要因がある場合に,要因がない場合に比べて,結果がある可能性がどれくらい大きいか」を調べるには,臨床試験やコホート研究ならば,(a/m1)が(c/m2)の何倍かという「リスク比」(相対リスクともいいます)や,(a/m1)と(c/m2)の差によって与えられる「リスク差」(超過危険とか寄与危険ともいいます)によって示すことができますが,断面研究や症例対照研究では,(a/m1)が曝露群のリスクを意味しないので,リスク比やリスク差を直接求めることができません。しかし,リスクがある程度小さい場合,(a/c)が(b/d)の何倍かという(数学的には(a/b)/(c/d)とも一致し,ad/bcとなる)オッズ比を求めれば,これがリスク比の近似となることがわかっています。稀な疾患でコホート研究を行うのは効率が悪いので,症例対照研究によって効率よくその疾病の要因を探ることが行われるのです。

関数名(name)機能(effect)使い方(usage)
riskratio()
(* fmsbパッケージ)
リスク比を計算する。library(fmsb); riskratio(a, c, m1, m2)とする。つまり,引数は病気かつ曝露あり,病気ありかつ曝露なし,曝露あり全体,曝露なし全体,の順に4つ,コンマで区切って与える。リスク比の点推定量,95%信頼区間,「リスク比が1」という帰無仮説を検定したp値などが表示される。
pvalueplot()
(* fmsbパッケージ)
p値関数をプロットする。library(fmsb); pvalueplot(TAB, plot.OR=FALSE)により,Rothman KJが推奨しているp値関数を描画する。TABは2×2のクロス集計表である。リスク比についてのp値関数を描画する場合はオプションplot.OR=FALSEとし(デフォルトなので打たなくてもよい),オッズ比についてのp値関数を描画する場合はオプションplot.OR=TRUEとする。
oddsratio()
(* fmsbパッケージ)
オッズ比を計算するlibrary(fmsb); oddsratio(a, c, b, d)とする。つまり,引数は2×2クロス集計表の数字を病気かつ曝露あり,病気で曝露なし,病気でなくて曝露あり,病気も曝露もなし,の順に4つ,コンマで区切って与える。周辺度数を含むクロス集計表を表示し,オッズ比,95%信頼区間,「オッズ比が1」という帰無仮説を検定したp値などを表示する。オッズ比の計算は定義通りad/bcで行い,信頼区間の計算は対数変換を用いている。
fisher.test()フィッシャーの正確な検定を行い,2×2表のときはオッズ比とその信頼区間も求めるこの関数で求められるオッズ比は非心超幾何分布を用いた最尤法による最尤推定値であり,単純なad/bcとは異なる。
oddsratio
(* vcdパッケージ)
オッズ比または対数オッズ比を計算する引数は2×2クロス集計表(行列として与えてもよい)。log=FALSEオプションをつけると通常のオッズ比を計算し,デフォルトのlog=TRUEだと対数オッズ比を計算する。ただし2×2のセルのどれかが0のときは,すべてに0.5を足した値で計算される。
confint()信頼区間を計算するoddsratio()関数の結果を与えると,オッズ比の信頼区間を計算して表示する
summary()オブジェクトの詳細を表示するlibrary(vcd); summary(oddsratio())で,「対数オッズ比が0」(つまり,オッズ比が1ということ)という帰無仮説の検定結果が示される。ただしoddsratio()にlog=FALSEオプションをつけると検定はされない。

リンクと引用について