Poisson regresyonunu kullanarak ikili verilerde düzeltilmiş risk oranlarını tahmin etme


9

Lojistik regresyon kullanarak birinin ayarlanmış bir oran oranını nasıl tahmin ettiğine benzer şekilde ayarlanmış bir risk oranını tahmin etmekle ilgileniyorum. Bazı literatür (ör. Bu ), Huber-White standart hatalarıyla Poisson regresyonunun kullanılmasının bunu yapmak için model tabanlı bir yol olduğunu göstermektedir

Sürekli ortak değişkenler için ayarlamanın bunu nasıl etkilediğine dair literatür bulamadım. Aşağıdaki basit simülasyon, bu sorunun çok basit olmadığını göstermektedir:

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 

Bu durumda, gerçek risk oranı 2'dir ve bu, değişken değişken küçük olduğunda güvenilir bir şekilde geri kazanılır. Ancak, ortak değişken etkisi büyük olduğunda, bu bozulmaya başlar. Bunun var olduğunu varsayıyorum çünkü ortak değişken üst sınıra (1) karşı itebilir ve bu tahminin kontamine olmasını sağlar.

Düzeltilmiş risk oranı tahmininde sürekli ortak değişkenler için ayarlama hakkında herhangi bir literatür araştırdım ancak bulamadım. Bu sitede aşağıdaki yayınların farkındayım:

ama soruma cevap vermiyorlar. Bu konuda herhangi bir makale var mı? Uygulanması gereken bilinen herhangi bir uyarı var mı?



Ayrıca bu Soru-Cevap istatistikleri.stackexchange.com/questions/18595/… yardımcı olabilir.
mdewey

Yanıtlar:


1

Bu soruya hala bir cevaba ihtiyacınız olup olmadığını bilmiyorum, ancak Poisson regresyonunu kullanmak istediğim benzer bir sorunum var. Kodunuzu çalıştırırken, modeli şu şekilde ayarlarsam

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

Poisson regresyon modeliniz yerine, aynı sonuç ortaya çıkar: ce yaklaşımı 1 olarak tahmin edilen OR ~ 1.5'tir. Bu nedenle, örneğin, ikili sonuçlar için Poisson regresyonunun kullanılmasıyla ilgili olası bir sorun hakkında bilgi sağladığından emin değilim.


1
Bir logit modelin takılmasındaki sorun, 1'den büyük öngörülen risklere yol açmasa da, olasılık oranının risk oranının taraflı bir tahmincisi olması ve sonuç daha yaygın hale geldikçe önyargı önemli ölçüde artmasıdır. binomial(link=log)Göreceli bir risk modeline gerçekten uymayı belirtebilirsiniz , ancak sonucu tahmin etmek nadiren birleşir.
AdamO

1

Doğru olasılık fonksiyonu ile doğrudan maksimum olasılığın kullanılmasının göreceli risk tahminini büyük ölçüde iyileştirdiğini görüyorum. Kesik risk fonksiyonunu doğrudan işlem için tahmini oran olarak belirtebilirsiniz.

resim açıklamasını buraya girin

Genellikle Hessian'ı tahmin için CI'ler oluşturmak için kullanırız. Ben Huber White hata "B" matris (et) olarak kullanma ve "A" matris (ekmek) almak için takılan riskleri kullanma olasılığını araştırmadım ... ama işe yarayabilir şüpheli! Daha uygun bir şekilde, yanlış tanımlanmış bir ortalama varyans ilişkisine dayanıklı model hataları elde etmek için bir önyükleme kullanabilirsiniz.

## 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))

verir:

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

Orta katsayı istediğinizi verir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.