การประมาณอัตราส่วนความเสี่ยงที่ปรับแล้วในข้อมูลไบนารีโดยใช้การถดถอยแบบปัวซอง


9

ฉันสนใจที่จะประเมินอัตราส่วนความเสี่ยงที่ปรับแล้วซึ่งคล้ายกับวิธีที่เราประมาณการอัตราต่อรองที่ปรับแล้วโดยใช้การถดถอยโลจิสติกส์ วรรณกรรมบางฉบับ (เช่นนี้ ) บ่งชี้ว่าการใช้การถดถอยปัวซองกับข้อผิดพลาดมาตรฐานของฮิเบอร์ - ไวท์เป็นวิธีที่ใช้แบบจำลองในการทำสิ่งนี้

ฉันไม่พบวรรณกรรมเกี่ยวกับวิธีการปรับค่าความแปรปรวนร่วมต่อเนื่องที่มีผลต่อสิ่งนี้ การจำลองอย่างง่ายต่อไปนี้แสดงให้เห็นว่าปัญหานี้ไม่ตรงไปตรงมามาก:

arr <- function(BLR,RR,p,n,nr,ce)
{
   B = rep(0,nr)
   for(i in 1:nr){
   b <- runif(n)<p 
   x <- rnorm(n)
   pr <- exp( log(BLR) + log(RR)*b + ce*x)
   y <- runif(n)<pr
   model <- glm(y ~ b + x, family=poisson)
   B[i] <- coef(model)[2]
   }
   return( mean( exp(B), na.rm=TRUE )  )
}

set.seed(1234)
arr(.3, 2, .5, 200, 100, 0)
[1] 1.992103
arr(.3, 2, .5, 200, 100, .1)
[1] 1.980366
arr(.3, 2, .5, 200, 100, 1)
[1] 1.566326 

ในกรณีนี้อัตราส่วนความเสี่ยงที่แท้จริงคือ 2 ซึ่งสามารถกู้คืนได้อย่างน่าเชื่อถือเมื่อเอฟเฟกต์โควาเรียตมีขนาดเล็ก แต่เมื่อเอฟเฟกต์ covariate มีขนาดใหญ่สิ่งนี้จะบิดเบี้ยว ฉันคิดว่าสิ่งนี้เกิดขึ้นเพราะผลกระทบของความแปรปรวนร่วมสามารถผลักดันขึ้นกับขอบเขตบน (1) และสิ่งนี้ทำให้การประมาณค่าปนเปื้อน

ฉันได้ดูแล้ว แต่ไม่พบวรรณกรรมใด ๆ เกี่ยวกับการปรับค่าความแปรปรวนร่วมอย่างต่อเนื่องในการประมาณอัตราส่วนความเสี่ยงที่ปรับแล้ว ฉันตระหนักถึงการโพสต์ต่อไปนี้ในเว็บไซต์นี้:

แต่พวกเขาไม่ตอบคำถามของฉัน มีเอกสารเกี่ยวกับเรื่องนี้หรือไม่? มีข้อควรระวังที่ทราบว่าควรใช้สิทธิหรือไม่?


1
อาจเป็นที่สนใจของคุณ: aje.oxfordjournals.org/content/162/3/199.full
StatsStudent

นอกจากนี้คำถาม & คำตอบของstats.stackexchange.com/questions/18595/…อาจช่วยได้
mdewey

คำตอบ:


1

ฉันไม่รู้ว่าคุณยังต้องการคำตอบสำหรับคำถามนี้หรือไม่ แต่ฉันมีปัญหาคล้ายกันซึ่งฉันต้องการใช้การถดถอยแบบปัวซอง ในการรันโค้ดของคุณฉันพบว่าถ้าฉันตั้งค่ารุ่นเป็น

model <- glm(y ~ b + x, family=binomial(logit)

แทนที่จะเป็นตัวแบบการถดถอยปัวซองของคุณผลลัพธ์เดียวกันนั้นเกิดขึ้น: ค่าประมาณ OR คือ ~ 1.5 ตามแนวทางที่ 1 ดังนั้นฉันไม่แน่ใจว่าตัวอย่างของคุณให้ข้อมูลเกี่ยวกับปัญหาที่เป็นไปได้ด้วยการใช้ปัวซงถดถอยแบบไบนารี


1
ปัญหาของตัวแบบ logit ที่เหมาะสมในขณะที่มันไม่ได้นำไปสู่การทำนายความเสี่ยงที่มากกว่า 1 ก็คืออัตราส่วนอัตราต่อรองนั้นเป็นตัวประมาณความลำเอียงของอัตราส่วนความเสี่ยงและความลำเอียงเพิ่มขึ้นอย่างมากเมื่อผลลัพธ์กลายเป็นที่แพร่หลาย คุณสามารถระบุbinomial(link=log)ให้พอดีกับแบบจำลองความเสี่ยงสัมพัทธ์ แต่มันกลับมาบรรจบกันบ่อยครั้งเนื่องจากผลลัพธ์ที่คาดการณ์มากเกินไป
AdamO

1

ฉันพบว่าการใช้โอกาสสูงสุดโดยตรงกับฟังก์ชั่นความน่าจะเป็นที่เหมาะสมช่วยปรับปรุงการประเมินความเสี่ยงสัมพัทธ์อย่างมาก คุณสามารถระบุฟังก์ชันความเสี่ยงที่ถูกตัดทอนโดยตรงเป็นอัตราที่คาดการณ์ไว้สำหรับกระบวนการ

ป้อนคำอธิบายรูปภาพที่นี่

โดยปกติเราจะใช้ Hessian เพื่อสร้าง CIs สำหรับการประมาณการ ฉันยังไม่ได้สำรวจความเป็นไปได้ของการใช้นั่นเป็นเมทริกซ์ "B" (เนื้อ) ในข้อผิดพลาดของ Huber White และใช้ความเสี่ยงที่พอดีเพื่อรับเมทริกซ์ "A" (ขนมปัง) ... แต่ฉันสงสัยว่ามันจะใช้ได้! เป็นไปได้มากกว่าที่คุณสามารถใช้ bootstrap เพื่อรับข้อผิดพลาดของโมเดลซึ่งมีความทนทานต่อความสัมพันธ์แปรปรวนเฉลี่ยที่ผิดพลาด

## the negative log likelihood for truncated risk function
negLogLik <- function(best, X, y) { 
  pest <- pmin(1, exp(X %*% best))
  -sum(dpois(x = y, lambda = pest, log=TRUE))
}

set.seed(100)

sim <- replicate(100, {
  n <- 200
  X <- cbind(1, 'b'=rbinom(n, 1, 0.5), 'x'=rnorm(n))
  btrue <- c(log(0.3), log(2), 1)
  ptrue <- pmin(1, exp(X %*% matrix(btrue)))
  y <- rbinom(n, 1, ptrue) ## or just take y=ptrue for immediate results
  nlm(f = logLik, p = c(log(mean(y)),0,0), X=X, y=y)$estimate
})

rowMeans(exp(sim))

ให้:

> rowMeans(exp(sim))
[1] 0.3002813 2.0680780 3.0888280

สัมประสิทธิ์กลางให้สิ่งที่คุณต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.