Lojistik regresyon için Bayesli uyum iyiliği nasıl görselleştirilir


10

Bayes lojistik regresyon problemi için posterior bir prediktif dağılım oluşturdum. Tahmin dağılımından örnek alıyorum ve sahip olduğum her gözlem için binlerce (0,1) örnek alıyorum. Uyumun iyiliğini görselleştirmek ilginç olmaktan daha azdır, örneğin:

resim açıklamasını buraya girin

Bu grafik, 10.000 örneği + gözlenen referans noktasını gösterir (soldaki yol kırmızı bir çizgi oluşturabilir: evet bu gözlemdir). Sorun şu ki bu arsa pek bilgilendirici değil ve her veri noktası için bir tane olmak üzere 23 tane olacak.

23 veri noktasını ve ayrıca posterior örnekleri görselleştirmenin daha iyi bir yolu var mı?


Başka bir girişim:

resim açıklamasını buraya girin


Buradaki makaleye dayanan başka bir girişim

resim açıklamasını buraya girin


1
Yukarıdaki veri-vis tekniğinin çalıştığı bir örnek için buraya bakın .
Cam.Davidson.Pilon

Bu boşa alan IMO bir sürü! Gerçekten sadece 3 değeriniz var mı (0,5'in altında, 0,5'in üzerinde ve gözlem) veya bu sadece verdiğiniz örneğin bir eseri mi?
Andy W

Aslında daha da kötüsü: 8500 0 ve 1500 1'lerim var. Grafik, bağlı bir histogram yapmak için bu değerleri iter. Ama katılıyorum: çok boşa boşa. Gerçekten, her veri noktası için bunu bir orana (örneğin 8500/10000) ve bir gözleme (0 veya 1)
azaltabilirim

23 veri noktanız var ve kaç tahminci var? Ve yeni veri noktaları için mi yoksa modele uymak için kullandığınız 23 için posterior öngörücü dağılımınız mı?
olasılık

Güncellenmiş arsa önereceğim şeye yakın. Yine de x ekseni neyi temsil ediyor? Görünüşe göre süper empoze edilmiş bazı noktalarınız var - sadece 23 ile gereksiz görünüyor.
Andy W

Yanıtlar:


5

Durumunuza tüm malları bırakmadığınızı hissediyorum, ancak önümüzde ne varsa , bilgileri görüntülemek için basit bir nokta grafiğinin faydasını düşünelim .

Nokta Grafiği

Burada olmayan tek gerçek şey (belki de varsayılan davranışlar değildir):

  • Gözlenen hiçbir kusur ve kusur değeri arasında ayrım yapmak için fazladan kodlamalar, şekil ve renk kullandım. Bu kadar basit bilgilerle, grafiğe bir nokta koymak gerekli değildir. Ayrıca nokta orta değerlere yakın olduğunda bir probleminiz var, gözlenen değerin sıfır mı yoksa bir mi olduğunu görmek daha fazla arama gerektirir.
  • Grafiği gözlemlenen orana göre sıraladım.

Sıralama, bunlar gibi nokta grafikleri için gerçek vurucu. Burada oran değerlerine göre sıralama, yüksek kalıntı gözlemlerini kolayca ortaya çıkarmaya yardımcı olur. Arsada veya kasaların dış özelliklerinde bulunan değerlere göre kolayca sıralayabileceğiniz bir sisteme sahip olmak, paranızın karşılığını almanın en iyi yoludur.

Bu tavsiye sürekli gözlemlere de uzanır. Kalıntıların negatif veya pozitif olup olmadığına göre noktaları renklendirebilir / şekillendirebilir ve daha sonra noktayı mutlak (veya kare) kalıntıya göre boyutlandırabilirsiniz. Bu, gözlemlenen değerlerin sadeliği nedeniyle burada IMO'ya gerek yoktur.


1
Bu çözümü ve içeriği beğendim, sadece diğer gönderileri bekliyorum. Teşekkürler Andy.
Cam.Davidson.Pilon

1
@ Cam.Davidson.Pilon - Diğer gönderileri de bekliyorum! Modelinizin yalnızca bir öngörücüsü olduğundan - tahmin edilen hata oranına göre sıralama, sıcaklığa göre sıralama ile eşanlamlı olur (monotonik bir etki varsayarak - grafiğinizde göründüğü gibi). Belki de biri, tahmin edilen oranı ve orijinal sıcaklığı (veya tamamen farklı bir şeyi) görmeye etkili bir şekilde izin veren başka bir çözümle birlikte gelecektir. Bu ekran kötü tahminleri görmek için iyidir, ancak doğrusal olmayan efektleri görmek gibi şeyler için çok iyi değildir.
Andy W

1
Ödülünü sana verdiğim için mutluyum. Sıralama, onu sunmanın anahtarıdır ve önceki yayınınızla bağlantılı kağıt kullanacağım şeydir. Teşekkürler!
Cam.Davidson.Pilon

4

Bayes lojistik regresyon modelinin bir öngörücü ile uyumunu görselleştirmenin olağan yolu, öngörücü dağılımı karşılık gelen oranlarla birlikte çizmektir. (Lütfen, sorunuzu anladıysam bana bildirin)

Popüler Bliss'in veri kümesini kullanan bir örnek.

resim açıklamasını buraya girin

Aşağıdaki kod R:

library(mcmc)

# Beetle data

ni = c(59, 60, 62, 56, 63, 59, 62, 60) # Number of individuals
no = c(6, 13, 18, 28, 52, 53, 61, 60) # Observed successes
dose = c(1.6907, 1.7242, 1.7552, 1.7842, 1.8113, 1.8369, 1.8610, 1.8839) # dose

dat = cbind(dose,ni,no)

ns = length(dat[,1])

# Log-posterior using a uniform prior on the parameters

logpost = function(par){
var = dat[,3]*log(plogis(par[1]+par[2]*dat[,1])) + (dat[,2]-dat[,3])*log(1-plogis(par[1]+par[2]*dat[,1]))

if( par[1]>-100000 ) return( sum(var) )
else return(-Inf)
}

# Metropolis-Hastings
N = 60000

samp <- metrop(logpost, scale = .35, initial = c(-60,33), nbatch = N)

samp$accept

burnin = 10000
thinning = 50

ind = seq(burnin,N,thinning)

mu1p =   samp$batch[ , 1][ind]

mu2p =   samp$batch[ , 2][ind]


# Visual tool

points = no/ni
# Predictive dose-response curve
DRL <- function(d) return(mean(plogis(mu1p+mu2p*d)))
DRLV = Vectorize(DRL)

v <- seq(1.55,2,length.out=55)
FL = DRLV(v)

plot(v,FL,type="l",xlab="dose",ylab="response")
points(dose,points,lwd=2)

Ben bir R adamı değilim, çizim / çıktı sağlayabilir misiniz?
Cam.Davidson.Pilon

@ Cam.Davidson.Pilon Üzgünüm, itibarım araziler eklememe izin vermiyor. Ancak fikir, tüm doz-cevap eğrisini gözlemlenen oranlarla birlikte çizmektir.
Cerberis

Resmi ekledim. OP'lerin doğrudan örneğinize uzanmadığı veriler için farklı bir yapı olduğunu varsayıyorsunuz. OP'nin verileri sizin ni = 23ve no = 723 bireyin her biri farklıysa benzer olacaktır dose. Yine de OP verileri için benzer bir çizim yapabilirsiniz (noktalar Y ekseninde 0 veya 1'e yerleştirilir ve işlevi çizersiniz). Bu cevaba verdiğim referanslarda lojistik regresyon için benzer grafiklerin bazı örneklerine bakın .
Andy W

@AndyW Bunun için ve açıklama için teşekkürler.
Cerberis

@AndyW ah bağladığınız kağıtlar oldukça faydalı! Onları uygulayıp uygulayamayacağımı görmek için bunlara daha yakından bakmam gerekecek.
Cam.Davidson.Pilon

3

Simüle edilmiş başarısızlık olaylarının gözlemlenen başarısızlık olaylarıyla ne kadar iyi eşleştiğini gösteren alternatif grafik teknikleri talebine yanıt veriyorum. Sorusu ortaya çıkan "Olasılık Programlama ve Hackerlar Bayes Yöntemleri" bulundu burada . İşte benim grafik yaklaşımım:

Simüle Edilmiş ve Gözlemlenen O-Ring Arızaları

Kod burada bulundu .


İlginç - bu tekniği neden kullanacağınız konusunda herhangi bir argüman sunabilir misiniz? Paylaşım için teşekkürler!
Cam.Davidson.Pilon

Bu olasılıklı bir sonuçtur, deterministik bir sonuç değildir. Bu nedenle, birkaç şeyi ileten bir temsil aradım: 1) gözlemlenen ve tahmin edilen olayların aralığı; 2: öngörülen hataların olasılık dağılımı; 3) öngörülen arızaların olasılık dağılımı; ve 4) başarısızlığın daha muhtemel olduğu, başarısızlığın daha muhtemel olduğu aralıklar ve başarısızlık ve başarısızlık olasılığının çakıştığı aralıklar. Bu grafik tüm bunları gözlerime gösteriyor.
user35216

Birkaç ilave ekleme / açıklama: 1) gözlemlenen ve tahmin edilen olayların sıcaklık aralığı; 5) gerçek gözlenen arızalar ve arızalar
user35216
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.