ポアソンモデルを使用した発生率の計算:Cox PHモデルからのハザード比との関係


9

リスクの相対的な測定と絶対的な測定の両方を示すために、ハザード比に沿って示す発生率を計算したいと思います。他の研究で、そのような発生率は、モデルのフォローアップ時間をオフセットとしてポアソンモデルを使用して計算できることがわかりました。だから私は次のようにRでそれを試しました:

library(survival)

# Get example data
data(colon)
colon$status <- ifelse(colon$etype==1,0,1) # set to 0/1 (needed for poisson later on)

# Fit cox model for rx (age + sex adjusted)
coxph(Surv(time,status)~rx+sex+age, data=colon)
# HR (rxLev): 0.92  
# HR (rxLev+5FU): 0.74

# Get incidence rates using poisson models with same terms and log(time) as offset
mod <- glm(status~offset(log(time))+rx+sex+age, data=colon, family=poisson)

# Get rates using predict-function
Obs <- predict(mod, data.frame(time=1, rx="Obs", age=mean(colon$age),
                                   sex=mean(colon$sex)),  type="response")
Lev <- predict(mod, data.frame(time=1, rx="Lev", age=mean(colon$age), 
                                   sex=mean(colon$sex)),  type="response")
Lev5FU <- predict(mod, data.frame(time=1, rx="Lev+5FU", age=mean(colon$age), 
                                      sex=mean(colon$sex)),  type="response")

# Calculate incidence rate ratio's:
Lev/Obs # 0.98
Lev5FU/Obs # 0.84

発生率比は同じ条件のCox PHモデルのハザード比に似ていると思いますが、どういうわけかそれらは異なります。発生率の計算に正しいアプローチを使用していますか?

どんな助けでも大歓迎です!

回答:


11

私が見る限り、コードや計算に問題はありません。ただし、発生率を取得することにより、数行のコードをスキップできます。2つのモデルは異なる仮定を行っており、これは異なる結果をもたらす可能性があります。exp(coef(mod))

ポアソン回帰は、一定のハザードを想定しています。Coxモデルは、ハザードが比例していることのみを前提としています。一定のハザードの仮定が満たされている場合、この質問

Cox回帰には基礎となるポアソン分布がありますか?

コックスとポアソン回帰の間の接続を説明します。

シミュレーションを使用して、一定のハザードと非一定の(しかし比例的な)ハザードの2つの状況を調査できます。まず、ハザードが一定の母集団からのデータをシミュレートしましょう。ハザード比は

λ(t)=λ0exp(βx)

ここで、はパラメーターのベクトル、は共変量のベクトル、は固定の正の数です。したがって、ポアソン回帰のハザードの一定の仮定が満たされます。今、私たちは、分布関数という(Therneau、P.13により、多くの本で見つけ例えばモデリングの生存データを)事実を使用して、このモデルからシミュレートで生存期間の、危険などのように見つけることができますX λ 0 F λβxλ0Fλ

F(t)=1exp(0tλ(s) ds)

これで我々はまた、の逆見つけることができる、。この関数を使用して、均一な変数を描画し、を使用してそれらを変換することにより、正しいハザードで生存時間をシミュレートします。やってみましょう。F - 10 1 F - 1FF1(0,1)F1

library(survival)
data(colon)
data <- with(colon, data.frame(sex = sex, rx = rx, age = age))
n <- dim(data)[1]
# defining linP, the linear predictor, beta*x in the above notation
linP <- with(colon, log(0.05) + c(0.05, 0.01)[as.factor(sex)] + c(0.01,0.05,0.1)[rx] + 0.1*age)

h <- exp(linP)

simFuncC <- function() {
  cens <- runif(n) # simulating censoring times
  toe <- -log(runif(n))/h # simulating times of events
  event <- ifelse(toe <= cens, 1, 0) # deciding if time of event or censoring is the smallest
  data$time <- pmin(toe, cens)
  data$event <- event
  mCox <- coxph(Surv(time, event) ~ sex + rx + age, data = data)
  mPois <- glm(event ~ sex + rx + age, data = data, offset = log(time))
  c(coef(mCox), coef(mPois))
}

sim <- t(replicate(1000, simFuncC()))
colMeans(sim)

Coxモデルの場合、パラメーター推定の平均は次のとおりです。

        sex       rxLev   rxLev+5FU         age 
-0.03826301  0.04167353  0.09069553  0.10025534 

ポアソンモデルの場合

(Intercept)         sex       rxLev   rxLev+5FU         age 
-1.23651275 -0.03822161  0.03678366  0.08606452  0.09812454 

どちらのモデルでも、これは真の値に近いことがわかります。たとえば、男性と女性の差は-0.04であり、両方のモデルで-0.038と推定されます。これで、非定数ハザード関数で同じことができます

λ(t)=λ0texp(βx)

以前と同様にシミュレーションを行います。

simFuncN <- function() {
  cens <- runif(n)
  toe <- sqrt(-log(runif(n))/h)
  event <- ifelse(toe <= cens, 1, 0)
  data$time <- pmin(toe, cens)
  data$event <- event
  mCox <- coxph(Surv(time, event) ~ sex + rx + age, data = data)
  mPois <- glm(event ~ sex + rx + age, data = data, offset = log(time))
  c(coef(mCox), coef(mPois))
}

sim <- t(replicate(1000, simFuncN()))
colMeans(sim)

Coxモデルについては、

        sex       rxLev   rxLev+5FU         age 
-0.04220381  0.04497241  0.09163522  0.10029121  

ポアソンモデルの場合

(Intercept)         sex       rxLev   rxLev+5FU         age 
-0.12001361 -0.01937333  0.02028097  0.04318946  0.04908300

このシミュレーションでは、ポアソンモデルの平均は、Coxモデルの平均よりも明らかに真の値から離れています。絶え間ないハザードの仮定に違反しているため、これは当然のことです。

ハザードが一定の場合、生存時間関数は次の形式になります。S

S(t)=exp(αt)

特定の主題に依存するいくつかの正の場合、は凸です。Kaplan-Meier推定器を使用して元のデータの推定値を取得すると、次のようになります。S SαSS

ここに画像の説明を入力してください

この関数は凹型に見えます。これは何も証明しませんが、このデータセットでは一定のハザードの仮定が満たされておらず、2つのモデル間の不一致が説明されている可能性があるというヒントになる可能性があります。

私の知る限り、が癌の再発までの時間と死亡までの時間の両方に関するデータを保持している限り、データに関する最後のコメント(各値について2つの観測値があります)。上記では、まったく同じようにモデル化しています。それはおそらく良い考えではありません。i dcolonid

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.