Lojistik regresyon için güven aralıklarının hesaplanması


15

Ben maruz kalma has_xveya has_ybir kullanıcının bir şey tıklama olasılığını etkiler belirlemek için bir binom lojistik regresyon kullanıyorum . Modelim şu şekildedir:

fit = glm(formula = has_clicked ~ has_x + has_y, 
          data=df, 
          family = binomial())

Bu benim modelden çıktı:

Call:
glm(formula = has_clicked ~ has_x + has_y, 
    family = binomial(), data = active_domains)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.9869  -0.9719  -0.9500   1.3979   1.4233  

Coefficients:
                      Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -0.504737   0.008847 -57.050  < 2e-16 ***
has_xTRUE -0.056986   0.010201  -5.586 2.32e-08 ***
has_yTRUE  0.038579   0.010202   3.781 0.000156 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 217119  on 164182  degrees of freedom
Residual deviance: 217074  on 164180  degrees of freedom
AIC: 217080

Number of Fisher Scoring iterations: 4

Her katsayı önemli olduğundan, bu modeli kullanarak bu kombinasyonlardan herhangi birinin değerinin aşağıdaki yaklaşımı kullandığını söyleyebilirim:

predict(fit, data.frame(has_x = T, has_y=T), type = "response")

Std hakkında nasıl rapor verebileceğimi anlamıyorum. Tahmin hatası.

  1. Sadece kullanmam gerekiyor mu? Yoksa burada tarif edilen bir yaklaşımı kullanarak dönüştürmem gerekir mi?S E1.96SESE

  2. Her iki değişken için de standart hatayı anlamak istersem bunu nasıl değerlendirebilirim?

Bu sorunun aksine , hatanın üst ve alt sınırlarının yüzde olarak ne olduğunu anlamakla ilgileniyorum. Örneğin, tahminim değerini gösteriyor True,True, bunun için olduğunu hesaplayabilir miyim ? (% 0.3 benim fikrimi göstermek için seçildi)95 % I+/0.395%CI




@kjetilbhalvorsen, OP'nin bir tahmin aralığı istiyor gibi göründüğü, ancak sorunun kökü olabilecek günlük ölçeği yerine OR ölçeğinde çalışıyor gibi göründüğünden emin misiniz?
mdewey

2
Bir lojistik regresyonun ne kadar iyi tahmin ettiğini değerlendirmek istiyorsanız, genellikle tahmin + SE'den farklı önlemler kullanılır. Popüler bir değerlendirme ölçüsü, ilgili AUC ile ROC Eğrisini
isterler

1
Bu herhangi bir yardımcı olabilir mi? stackoverflow.com/questions/47414842/…
Xavier Bourret Sicotte

Yanıtlar:


24

Sorunuz, ilk başta kafa karıştırıcı olan Oranlar ve Olasılıklarla uğraştığınızdan kaynaklanabilir. Lojistik model hesaplamasının doğrusal olmayan bir dönüşümü olduğundan , güven aralıkları o kadar basit değildir.βTx

Arka fon

Lojistik regresyon modeli için şunu hatırlayın

  • Olasılık ve :(Y=1)p=eα+β1x1+β2x21+eα+β1x1+β2x2

  • Oran arasında :(Y=1)(p1p)=eα+β1x1+β2x2

  • in Günlük Oranları :(Y=1)log(p1p)=α+β1x1+β2x2

değişkeninde bir birim artış ( ör. olduğu durumu düşünün, yeni oranlarx1x1+1

Odds(Y=1)=eα+β1(x1+1)+β2x2=eα+β1x1+β1+β2x2
  • Odds Ratio (OR) bu nedenle vardır

Odds(x1+1)Odds(x1)=eα+β1(x1+1)+β2x2eα+β1x1+β2x2=eβ1
  • Günlük Oran Oranı = β1

  • Göreceli risk veya (olasılık oranı) =eα+β1x1+β1+β2x21+eα+β1x1+β1+β2x2eα+β1x1+β2x21+eα+β1x1+β2x2

Yorumlama katsayıları

katsayı değerini nasıl yorumlardınız ? Diğer her şeyin sabit kaldığını varsayarsak:βj

  • her birim artış için log-odds oranı .xjβj
  • her birim artış için olasılık oranı .xjeβj
  • Her artış için gelen için ile olasılık oranı artarxjkk+ΔeβjΔ
  • Katsayı negatifse, bir artış , oran oranında bir azalmaya yol açar.xj

Tek bir parametre için güven aralıklarıβj

Sadece kullanmam gerekiyor mu? Yoksa burada tarif edilen bir yaklaşımı kullanarak SE'yi dönüştürmem gerekir mi?1.96SE

parametresi Maxiumum Olabilirlik Tahmini kullanılarak tahmin edildiğinden, MLE teorisi bize asimptotik olarak normal olduğunu söyler ve bu nedenle normal örnek almak için büyük örnek Wald güven aralığını kullanabilirizβj

βj±zSE(βj)

Hangi log-odds oranı güven aralığı verir. değişmezlik özelliğini kullanmak,

eβj±zSE(βj)

Bu oranlar konusunda bir güven aralığıdır. Bu aralıkların yalnızca tek bir parametre için olduğunu unutmayın.

Her iki değişken için de standart hatayı anlamak istersem bunu nasıl değerlendirebilirim?

Birkaç parametre eklerseniz Bonferroni prosedürünü kullanabilirsiniz, aksi takdirde tüm parametreler için olasılık tahminleri için güven aralığını kullanabilirsiniz

Çeşitli parametreler için Bonferroni prosedürü

Eğer parametreleri yaklaşık aile güven katsayısı ile tahmin edilecek olan , eklem Bonferroni güven sınırlarıg1α

βg±z(1α2g)SE(βg)

Olasılık tahminleri için güven aralıkları

Lojistik modeli, bir gözleme olasılık tahminini verir ve gerçek olasılığının bir frequentist aralığı oluşturmak amacı şekildeP r ( p Lp ppPr(pLppU)=.95

Uç nokta dönüşümü adı verilen bir yaklaşım şunları yapar:

  • (Wald CI kullanarak) doğrusal kombinasyonu için güven aralığının üst ve alt sınırlarını hesaplayınxTβ
  • Olasılıkları elde etmek için uç noktalarına monotonik bir dönüşüm uygulayın .F(xTβ)

Yana bir tekdüze dönüşümüPr(xTβ)=F(xTβ)xTβ

[Pr(xTβ)LPr(xTβ)Pr(xTβ)U]=[F(xTβ)LF(xTβ)F(xTβ)U]

Somut olarak bu, hesaplanması ve ardından alt ve üst sınırları elde etmek için sonuca logit dönüşümünün uygulanması anlamına gelir :βTx±zSE(βTx)

[exTβzSE(xTβ)1+exTβzSE(xTβ),exTβ+zSE(xTβ)1+exTβ+zSE(xTβ),]

tahmini yaklaşık varyansı, kullanılarak regresyon katsayılarının kovaryans matrisi kullanılarak hesaplanabilirxTβ

Var(xTβ)=xTΣx

Bu yöntemin avantajı, sınırların aralık dışında olmamasıdır(0,1)

Her birinin kendi varsayımları, avantajları ve sınırları olan delta yöntemini, önyükleme vb. Kullanarak başka yaklaşımlar da vardır.


Kaynaklar ve bilgi

Bu konuda en sevdiğim kitap Kutner, Neter, Li, Bölüm 14'ün "Uygulamalı Doğrusal İstatistiksel Modeller"

Aksi takdirde birkaç çevrimiçi kaynak vardır:


Bunun çoğu, OP'nin bilmesi için iyi bir şey olan katsayılar için CI ile ilgilidir, ancak ihtiyaç duyduğu şeyin bu olduğundan emin miyiz? Daha sonra bölüm bana daha alakalı görünüyor, ancak çok hızlı bir şekilde okunduğunda belki de farklılıklar atlanabilir mi?
mdewey

2
Evet, muhtemelen haklısınız - ancak log regresyonu için olasılıkları, log olasılıklarını ve olasılıkları anlamak geçmişte mücadele ettiğim bir şeydir - umarım bu yazı konuyu gelecekte birisine yardımcı olabilecek kadar iyi özetler. Belki bir CI sağlayarak soruyu daha açık bir şekilde cevaplayabilirdim ama kovaryans matrisine ihtiyacımız olacak
Xavier Bourret Sicotte

5

Tahminin% 95 güven aralığını elde etmek için logit ölçeğinde hesaplayabilir ve daha sonra bunları 0-1 olasılık ölçeğine dönüştürebilirsiniz. İşte titanik veri kümesini kullanan bir örnek.

library(titanic)
data("titanic_train")

titanic_train$Pclass = factor(titanic_train$Pclass, levels = c(1,2,3), labels = c('First','Second','Third'))

fit = glm(Survived ~ Sex + Pclass, data=titanic_train, family = binomial())

inverse_logit = function(x){
  exp(x)/(1+exp(x))
}

predicted = predict(fit, data.frame(Sex='male', Pclass='First'), type='link', se.fit=TRUE)

se_high = inverse_logit(predicted$fit + (predicted$se.fit*1.96))
se_low = inverse_logit(predicted$fit - (predicted$se.fit*1.96))
expected = inverse_logit(predicted$fit)

Ortalama ve düşük / yüksek% 95 CI.

> expected
        1 
0.4146556 
> se_high
        1 
0.4960988 
> se_low
        1 
0.3376243 

Ve sadece kullanmanın sonucu type='response',

predict(fit, data.frame(Sex='male', Pclass='First'), type='response')
        1 
0.4146556

predict(fit, data.frame(Sex='male', Pclass='First'), type='response', se.fit=TRUE)çalışacak.
Tony416
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.