ロジスティック回帰係数からオッズ比を使用してリスク比を計算する


8

バイナリ固定因子予測子が1つだけのバイナリロジスティック回帰があります。私がカイ二乗法またはフィッシャーの正確確率検定としてそれを行わない理由は、ランダムな要因もいくつかあるためです(個人ごとに複数のデータポイントがあり、個人はグループに属していますが、係数や有意性は気にしません)これらの確率変数の場合)。R glmerでこれを行います。

予測因子の係数と関連する信頼区間をオッズ比ではなくリスク比として表現できるようにしたいと思います。これは(おそらくあなたではなく私の聴衆にとって)リスク比がはるかに理解しやすいためです。ここでのリスク比は、予測子が0ではなく1の場合に、結果が0ではなく1になる確率の相対的な増加です。

オッズ比は、exp()を使用して係数と関連するCIから取得するのは簡単です。オッズ比をリスク比に変換するには、「RR = OR /(1 – p +(px OR))を使用できます。ここで、pはコントロールグループのリスクです」(出典:http://www.r- bloggers.com/how-to-convert-odds-ratios-to-relative-risks/)。しかし、コントロールグループのリスクが必要です。これは、私の場合、予測子が0の場合に結果が1になる可能性を意味します。モデルの切片係数は、実際にはこのチャンスのオッズであると考えているので、これを取得するには、prob = odds /(odds + 1)を使用します。リスク比率の中心的な見積もりが行く限り、私はこれについてはかなり遠いところにいます。ただし、切片係数にも独自のCIが関連付けられているため、心配なのは関連する信頼区間です。切片の中央推定値を使用する必要がありますか、それとも保守的であるために、切片CIの制限を使用して相対リスクCIを最も広くする必要がありますか?それとも私は間違った木を完全に吠えていますか?



これは決してその質問の複製ではありません。私はオッズ比を取得するのに問題はありません、それは私が疑問に思っているリスク比です。それらはその質問では言及されていません。
アモルフィア2015年

回答:


5

Zhang 1998は当初、リスク比のCIを計算する方法を提示しており、オッズ比にCIの下限と上限を使用できることを示唆しています。

この方法は機能せず、偏りがあり、一般にリスク比95%CIの保守的でない(厳しすぎる)推定値を生成します。これは、正しく示唆しているように、切片項と勾配項の間の相関関係によるものです。オッズ比がCIの低い値に向かう傾向がある場合、インターセプト項は増加して、曝露レベルが0の人々の全体的な有病率が高くなり、逆にCIの値が高くなります。これらのそれぞれは、CIの下限と上限にそれぞれつながります。

質問に完全に回答するには、正しい信頼区間を得るために、結果のベースラインの有病率に関する知識が必要です。ケースコントロール研究からのデータは、これを通知するために他のデータに依存します。

または、パラメーター推定の完全な共分散構造がある場合は、デルタ法を使用できます。ORからRRへの変換(バイナリの露出と単一の予測子を持つ)の同等のパラメーター化は次のとおりです。

RR=1+exp(β0)1+exp(β0β1)

そして、多変量デルタ法とを示す中心極限定理を使用するを使用すると、近似正規分布の分散を取得できます。n([β^0,β^1][β0,β1])DN(0,I1(β))RR

表記上、これはバイナリ露出と一変量ロジスティック回帰でのみ機能することに注意してください。デルタ法と連続共変量およびその他の調整変数の限界標準化を利用する簡単なRトリックがいくつかあります。ただし、簡潔にするため、ここでは説明しません。

ただし、相対リスクとその標準誤差をRのモデルから直接計算する方法はいくつかあります。以下の2つの例を示します。

x <- sample(0:1, 100, replace=T)
y <- rbinom(100, 1, x*.2+.2)
glm(y ~ x, family=binomial(link=log))
library(survival)
coxph(Surv(time=rep(1,100), event=y) ~ x)

http://research.labiomed.org/Biostat/Education/Case%20Studies%202005/Session4/ZhangYu.pdf


0

AdamO(または誰か!)、私を助けてくれませんか?私はAdamOのコードに基づいてこの再現可能な例を作成しました:

 set.seed(12345)
 group <- sample(0:1, 100, replace=T)

 set.seed(9485735)
 y <- rbinom(100, 1, x*.2+.2)

 group[group == 0] <- "A"
 group[group == 1] <- "B"

 table(y, group)
   group
y    A  B
  0 31 38
  1 17 14

 (14/38) / (17/31)           # Odds ratio (group B relative to A)
[1] 0.6718266



 lr <- glm(y ~ group, family=binomial(link=logit)) 
 exp(lr$coefficients)
(Intercept)      groupB 
  0.5483871   0.6718266 

この例は、ロジスティック回帰から計算されたオッズ比が、手動で計算されたオッズ比と一致することを示しています。ただし、Coxモデルによって計算された相対リスクは、手動で計算された相対リスクと一致しません。

      (14/(14+38)) / (17/(17+31)) # Relative risk (group B relative to A)
[1] 0.760181

library(survival)
 coxph(Surv(time=rep(1,100), event=y) ~ group)

Call:
coxph(formula = Surv(time = rep(1, 100), event = y) ~ group)

         coef exp(coef) se(coef)    z    p
groupB -0.326     0.722    0.361 -0.9 0.37

Likelihood ratio test=0.82  on 1 df, p=0.364
n= 100, number of events= 31 

私は何か見落としてますか?


あなたは質問に答える以上に質問をしています。
マイケルR.チェニック2018

あなたは正しいマイケルです。問題は、コメントフィールドがこのような構造化された投稿を投稿できないことです。
Luc、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.