Artan hasta sayısını hesaba katmak için binom modelinde ofset kullanma


18

Benden iki ilgili soru. Bir sütunda (aralık 10-17 hasta) çok sayıda hasta ve o gün bir olayın olup olmadığını gösteren 0 ve 1'leri içeren bir veri çerçevem ​​var. Hasta sayısındaki olayın olasılığını azaltmak için bir binom modeli kullanıyorum. Bununla birlikte, daha fazla hasta olduğunda, kaçınılmaz olarak daha fazla olay olacağı gerçeğini ayarlamak istiyorum, çünkü koğuştaki toplam hasta süresi o gün daha yüksektir.

Yani böyle bir ofset binomial modelini kullanıyorum (R-kodu):

glm(Incident~Numbers, offset=Numbers, family=binomial, data=threatdata)

Sorularım:

  1. Tam olarak aynı değişkenleri tahmin etmek ve dengelemek uygun mudur? Olay olasılığındaki tonik artışı kısmi olarak belirlemek ve esasen bir şey olup olmadığını görmek istiyorum. Bana mantıklı geliyor ama yanlış olduğumda biraz temkinliyim.

  2. Ofset doğru bir şekilde belirlenmiş mi? Poisson modellerinde okuyacağını biliyorum

    offset=log(Numbers)
    

Burada bir eşdeğeri olup olmadığını bilmiyorum ve Google ile herhangi bir binom ofseti bulamıyorum (büyük sorun, tabii ki iyi değil negatif binom almaya devam olmasıdır).


2
Ayarlamak istediğiniz şey değil, tam olarak ölçmek istediğiniz şey değil - yani "olay" olasılığı hasta sayısıyla nasıl artar?
B_Miner

1
B_Miner'ın noktasını yankılamam gerekiyor. Bu durumda ofset kullanıldığında / neden kullanıldığında kafanızın karıştığını düşünüyorum. Ofseti olan modeliniz, hasta # sayısının bir fonksiyonu olarak olay olasılığı için size uygun değerler verecektir. Farklı bir işlevsel formla ilgileniyorsanız, bilimsel olarak ilginç olan şeylere dayalı dönüşümleri (log veya # 'un üstelemesi gibi) düşünün.
AdamO

Olaylar hakkında bir şeyler anlatabilir misiniz? Bir olay bir hastayla mı yoksa bir bütün olarak koğuşla ilgili bir şey mi? Hastalarla ilgili ise,> 1 olayın olması mümkün mü Hasta yoksa, bir olayın olması imkansız mıdır?
atiretoo

1
Görünüşe göre cevabım 'yeterli detay içermiyor'. Her iki soruya da teorik bir gelişme, çalıştırılabilir kod ve cevaplar sağladım.
konjugateprior

1
Üzgünüm, Eşlenik Öncesi, cevabınız harika. "Yeterli ayrıntı yok" şey lütuf eklendi etiketi (yani göndermeden önce vardı). Birisinin daha iyi bir yanıt vermesi durumunda ödülün sona erdiğini kabul edeceğim, ancak bu olası değildir ve sizinki çok yararlıdır, teşekkür ederim.
Chris Beeley

Yanıtlar:


17

N gün hasta koğuşta verilen bir olayın olasılığıyla ilgileniyorsanız, aşağıdaki gibi bir model istersiniz:

mod1 <- glm(incident ~ 1, offset=patients.on.ward, family=binomial)

ofset denemeleri temsil eder incident, ya 0 ya da 1'dir ve bir olayın olasılığı sabittir (olay oluşturma eğiliminde heterojenlik yoktur) ve hastalar olaylara neden olmak için etkileşime girmez (bulaşma yok). Alternatif olarak, bir olayın şansı küçükse, bu sizin içindir (veya olay sayılarını bize söylemeden eşleştirdiyseniz), Poisson formülasyonunu tercih edebilirsiniz.

log.patients.on.ward <- log(patients.on.ward)
mod2 <- glm(incident ~ 1, offset=log.patients.on.ward, family=poisson)

aynı varsayımların geçerli olduğu yerlerde. Ofset hasta sayısı oransal / çarpımsal bir etkiye sahip olduğundan ofset günlüğe kaydedilir.

İkinci modele genişleyerek, belki de sadece artan hasta sayıları nedeniyle beklenenden daha fazla olay . Yani, belki hastalar etkileşir veya heterojendir. Yani dene

mod3 <- glm(incident ~ 1 + log.patients.on.ward, family=poisson)

Katsayı ise log.patients.on.ward , sabitlendiği 1'den önemli ölçüde farklıysa, mod2heterojenlik ve bulaşma olmadığı varsayımlarınızla ilgili bir şey gerçekten yanlış olabilir. Ve elbette bu ikisini (ya da birini diğer eksik değişkenlerden) ayırt edemeseniz de, şimdi koğuşta olan hasta sayısının ne kadar artırıldığının, bir olayın üzerinde ne olacağının oranını / olasılığını ne kadar artırdığını tahmin edersiniz. şanstan beklemek. Parametrelerin uzayından 1-coef(mod3)[2]itibaren aralık türetilebilir confint.

Alternatif olarak, doğrudan log miktarı ve katsayısı ile çalışabilirsiniz. Sadece koğuştaki hasta sayısını kullanarak olay olasılığını tahmin etmek istiyorsanız, bu model bunu yapmanın basit bir yolu olacaktır.

Sorular

  1. Ofsetinizde bağımlı değişkenler olması doğru mu? Bana çok kötü bir fikir gibi geliyor, ama zorunda olduğunu görmüyorum.

  2. Poisson regresyon modellerindeki dengeleme exposureaslında log(exposure). Belki de offsetR'nin Binom regresyon modellerinde kafa karıştırıcı bir şekilde kullanılması temel olarak deneme sayısını göstermenin bir yoludur. Her zaman, cbind(incidents, patients.on.ward-incidents)ofset olarak tanımlanan ve hiçbir bağımsız değişken ile değiştirilebilir . Şöyle düşünün: Poisson modelinde log link fonksiyonunun arkasında sağ tarafa girer ve Binomial modelde logit link fonksiyonunun önünde sol tarafa girer.


18

Poisson regresyonlarında ofsetler

Poisson regresyonunda neden bir denge kullandığımıza bakalım. Genellikle bunun maruz kalma kontrolünü yapmasını istiyoruz. Let maruz birimi başına başlangıç hızı olabilir ve t aynı birimlerle pozlama süresi. Beklenen olay sayısı λ × t olacaktır .λtλ×t

Bir GLM modelinde, beklenen değeri bir bağlantı fonksiyonu kullanarak modelleyiyoruz , yanig

g(λti)=log(λti)=β0+β1x1,i+

burada , bireysel i için maruz kalma süresidir ve x i , bireysel i için ortak değişken değerdir . Üç nokta basitçe eklemek istediğimiz ek regresyon terimlerini gösterir.tiixii

Yukarıdaki ifadeyi basitleştirebiliriz

log(λ)=log(ti)+β0+β1x1,i+

biz tahmin edilecektir model parametrelerinin herhangi birine göre bir ürün olup olduğu gibi sadece bir "ofset" Poisson regresyon ilave edilir.log(ti)

Binom Regresyonu

Genellikle bir logit bağlantısı kullanan bir binom regresyonunda:

g(pi)=logit(pi)=log(pi1pi)=β0+β1x1,i+

Sabit bir ofset üretecek için bir model türetmenin zor olacağını görebilirsiniz .pi

Örneğin, bir olasılığıdır herhangi bir günde hasta ı bir olay vardır. O gün mevcut olan hastaların bireysel bir işlevi olacaktır. Jboman'ın belirttiği gibi, en az bir olayın olasılığını doğrudan belirlemek yerine, hiçbir insidansın iltifatını türetmek daha kolaydır. pii

Let bir hastanın olasılığının olması j günde bir olay olan i . Günde bir olay olan herhangi bir hasta olasılığı i olacak Π K i j = 1 ( 1 - p * i , j ) , N i günde hasta sayısı i . İltifatla, en az bir hastanın bir olaya yakalanma olasılığı, p i = 1 - N i =pi,jjiij=1Ni(1pi,j)Nii

pi=1j=1Ni(1pi,j).

pi=1(q)Ni,
q=1pp olduğu ortak insidans olasılığı.

pig(pi)log((q)N1)

Sonuç olarak, bu durumda bir ofset kullanamayız.

p


2
+1, @Rider_X sitesine hoş geldiniz. Umarım gelecekte daha fazla cevap bekleyebiliriz.
gung - Monica'yı eski durumuna döndürün

1
@gung - Teşekkürler! Yararlı bir cevap olduğunu düşündüğüm hakkında fazla bir şey duymamıştım, bu yüzden çok fazla geri dönmedim. Bunu değiştirmek zorunda kalacağım. Saygılarımızla.
Rider_X

2
+1 Hangi kod ve komutların kullanılacağını göstermek yerine (veya ek olarak) teori ve muhakemeyi açıklayan cevapları gerçekten takdir ediyorum .
whuber

9

Bu cevap iki bölümden oluşur, birincisi soruya doğrudan bir cevap ve ikincisi önerdiğiniz modelle ilgili bir yorum.

İlk bölüm Numbers, denklemin rh'leri üzerinde bir ofset olarak kullanılması ile ilgilidir . Bunu yapmanın etkisi, tahmini katsayısından 1 çıkarmak Numbers, böylece ofsetin etkisini tersine çevirmek ve sonuçları başka şekilde değiştirmeyecektir. Aşağıdaki örnek, birkaç satır alakasız çıktı kaldırıldığında bunu göstermektedir:

library(MASS)
Numbers <- rpois(100,12)
p <- 1 / (1 + exp(0.25*Numbers))
y <- rbinom(100, Numbers, p)
Incident <- pmin(y, 1) 

> summary(glm(Incident~Numbers, family="binomial"))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.3121  -1.0246  -0.8731   1.2512   1.7465  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)  0.99299    0.80624   1.232   0.2181  
Numbers     -0.11364    0.06585  -1.726   0.0844 . <= COEFFICIENT WITH NO OFFSET TERM
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 135.37  on 99  degrees of freedom
Residual deviance: 132.24  on 98  degrees of freedom
AIC: 136.24

> summary(glm(Incident~Numbers, offset=Numbers, family="binomial"))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.3121  -1.0246  -0.8731   1.2512   1.7465  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.99299    0.80624   1.232    0.218    
Numbers     -1.11364    0.06585 -16.911   <2e-16 *** <= COEFFICIENT WITH OFFSET TERM
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 342.48  on 99  degrees of freedom
Residual deviance: 132.24  on 98  degrees of freedom
AIC: 136.24

Sayı katsayısı ve boş sapma (ve t-istatistiği hariç her şeyin nasıl aynı olduğuna dikkat edin, çünkü hala -1 yerine 0'a karşı test ediyor.)

t1(1pt)NtNttpttlog(1(1pt)Nt)/Ntlog(1pt)tNtNt

Ayrıca, hasta başına olasılığın hastadan hastaya değiştiğinden şüphelenilebilir, bu da daha karmaşık, hiyerarşik bir modele yol açacaktır, ancak burada buna girmeyeceğim.

Her durumda, bu ve gözlemlediğiniz hasta sayısının sınırlı aralığı göz önüne alındığında, logit ölçeğinde doğrusal olan bir model kullanmak yerine, ilişki hakkında parametrik olmamak ve hasta sayısını üçe ayırmak daha iyi olabilir veya 10-11, 12-13, 14-15 ve 16-17 gibi dört grup, bu gruplar için kukla değişkenler oluşturur, ardından sağ tarafta kukla değişkenlerle lojistik regresyonu çalıştırır. Bu, "sistem 16 hastaya aşırı yüklenir ve olaylar önemli ölçüde artmaya başlar" gibi doğrusal olmayan ilişkilerin yakalanmasını daha iyi sağlayacaktır. Çok daha geniş bir hasta yelpazeniz varsa, genelleştirilmiş bir katkı modeli önerebilirim, örneğin, 'mgcv' paketinden 'gam'.


0

Bir günlük bağlantısı belirtmek ve bir Poisson modeli için olduğu gibi ofseti tutmak en basit gibi görünüyor.


2
Eminim haklısın, ama benim yararım için bu nasıl bir Poisson? OP'nin ikili bir sonuca sahip bir veri seti olduğu anlaşılıyor. Bu glm olur mu (Olay ~ Sayılar, ofset = log (Sayılar), aile = poisson, veri = tehdit verileri) ??
B_Miner
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.