No.20758 オッズ比  【赤岳】 2014/01/21(Tue) 18:25

いつもお世話になっております。
解析ソフト間の結果は必ずしも一致しないことは多く経験することかと思いますが,あまりに一致しないので,その理由をご存知の方がおられればご教示ください。
Rで
> a<-c(9,169)
> b<-c(1,177)
> fisher.test(data.frame(a,b))
Fisher's Exact Test for Count Data

data: data.frame(a, b)
p-value = 0.01978
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
1.276341 414.644547
sample estimates:
odds ratio
9.381727
という結果が得られますが,SASでオッズ比を求めると,
OR=9.4260, 95CI=1.1815 - 75.2025
となります。
オッズ比を求めるのに,Rでのfisherのデフォルトの結果を利用するのは間違いなのでしょうか。

No.20759 Re: オッズ比  【青木繁伸】 2014/01/21(Tue) 18:56

4つのセルを
a b
c d
とすると,

普通の求め方は,定義通りだと,(a/b) / (c/d)
> (9/1)/(169/177)
[1] 9.426036
計算順序を変えて,(a*d) / (b*c)
> (9*177)/(1*169)
[1] 9.426036
補正をする場合にはそれぞれに 0.5 を加えてから,上の式により計算する。
どれかが 0 のときには必ず補正する。

http://aoki2.si.gunma-u.ac.jp/R/odds-ratio.html
> odds.ratio(9, 1, 169, 177)
$or
[1] 9.426036

$conf
下側信頼限界値 上側信頼限界値
90%信頼区間 1.6497871 53.85552
95%信頼区間 1.1814782 75.20253
99%信頼区間 0.6152153 144.42122
99.9%信頼区間 0.2885025 307.97005
R はこれとは違うアルゴリズムで求めている。
オンラインヘルプに曰く,

estimate
an estimate of the odds ratio. Note that the conditional Maximum Likelihood Estimate (MLE) rather than the unconditional MLE (the sample odds ratio) is used.

どちらが間違えているというものではない。

No.20760 Re: オッズ比  【赤岳】 2014/01/21(Tue) 19:17

青木先生,

ご提示いただいたプログラムで確認しました。
確かに,SASの結果とは一致しました。
この方がすっきりします。いずれにせよ良し悪しはないということですね。
安心しました。

また,0が有る場合ですが,SASではどれかが0の場合0.5を加えず,算出不能となります。
ご教示ありがとうございました。

> odds.ratio(6,172,0,178)
$or
[1] 13.45217

$conf
下側信頼限界値 上側信頼限界値
90%信頼区間 1.1957528 151.3365
95%信頼区間 0.7520881 240.6114
99%信頼区間 0.3038766 595.5082
99.9%信頼区間 0.1061614 1704.5837

SASの場合
「0セルのため計算していないリスク推定値があります。」

No.20761 Re: オッズ比  【青木繁伸】 2014/01/21(Tue) 20:55

> 0が有る場合ですが,SASではどれかが0の場合0.5を加えず,算出不能となります。

それも,一つの,見識でしょう

No.20763 Re: オッズ比  【赤岳】 2014/01/22(Wed) 10:20

青木先生,
ありがとうございました。

● 「統計学関連なんでもあり」の過去ログ--- 046 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る