Bagaimana memvisualisasikan kebaikan Bayesian of fit untuk regresi logistik

10

Untuk masalah regresi logistik Bayesian, saya telah membuat distribusi prediksi posterior. Saya sampel dari distribusi prediktif dan menerima ribuan sampel (0,1) untuk setiap pengamatan yang saya miliki. Memvisualisasikan kebaikan tidak terlalu menarik, misalnya:

masukkan deskripsi gambar di sini

Plot ini menunjukkan 10 000 sampel + titik datum yang diamati (cara di sebelah kiri dapat melihat garis merah: ya itulah pengamatan). Masalahnya adalah plot ini hampir tidak informatif, dan saya akan memiliki 23 di antaranya, satu untuk setiap titik data.

Apakah ada cara yang lebih baik untuk memvisualisasikan 23 titik data ditambah sampel posterior.


Upaya lain:

masukkan deskripsi gambar di sini


Upaya lain berdasarkan pada makalah di sini

masukkan deskripsi gambar di sini

Cam.Davidson.Pilon
sumber
1
Lihat di sini untuk contoh di mana teknik data-vis di atas bekerja.
Cam.Davidson.Pilon
Itu banyak ruang IMO terbuang! Apakah Anda benar-benar hanya memiliki 3 nilai (di bawah 0,5, di atas 0,5, dan pengamatan) atau hanya artefak dari contoh yang Anda berikan?
Andy W
Ini sebenarnya lebih buruk: Saya memiliki 8500 0s dan 1500 1s. Grafik hanya mendorong nilai-nilai ini untuk membuat histogram yang terhubung. Tapi saya setuju: banyak ruang terbuang. Sungguh, untuk setiap titik data saya bisa menguranginya menjadi proporsi (ex 8500/10000) dan pengamatan (baik 0 atau 1)
Cam.Davidson.Pilon
Jadi, Anda memiliki 23 titik data, dan berapa banyak prediktor? Dan apakah penyaluran prediksi posterior Anda untuk poin data baru atau untuk 23 yang Anda gunakan agar sesuai dengan model?
probabilityislogic
Plot Anda yang diperbarui dekat dengan apa yang akan saya sarankan. Apa yang mewakili sumbu x? Tampaknya Anda memiliki beberapa poin yang dipaksakan - yang dengan hanya 23 tampaknya tidak perlu.
Andy W

Jawaban:

5

Saya merasa Anda tidak cukup menyerahkan semua barang untuk situasi Anda, tetapi mengingat apa yang kami miliki di depan kami mari kita pertimbangkan kegunaan dot-plot sederhana untuk menampilkan informasi.

Dot Plot

Satu-satunya hal nyata untuk tidak ada di sini (yang mungkin bukan perilaku standar) adalah:

  • Saya menggunakan pengkodean yang berlebihan, bentuk dan warna, untuk membedakan antara nilai-nilai yang diamati dari tidak ada cacat dan cacat. Dengan informasi sederhana seperti itu, tidak perlu menempatkan titik pada grafik. Anda juga memiliki masalah ketika titik tersebut berada di dekat nilai tengah, perlu lebih banyak pencarian untuk melihat apakah nilai yang diamati adalah nol atau satu.
  • Saya mengurutkan grafik berdasarkan proporsi yang diamati.

Sortasi adalah kicker nyata untuk dot-plot seperti ini. Menyortir berdasarkan nilai proporsi di sini membantu dengan mudah mengungkap pengamatan residu yang tinggi. Memiliki sistem di mana Anda dapat dengan mudah mengurutkan berdasarkan nilai-nilai yang terkandung dalam plot atau dalam karakteristik eksternal dari kasing adalah cara terbaik untuk mendapatkan keuntungan.

Nasihat ini meluas ke pengamatan berkelanjutan juga. Anda bisa mewarnai / membentuk titik sesuai dengan apakah residu negatif atau positif, dan kemudian ukuran titik sesuai dengan residu absolut (atau kuadrat). Ini IMO tidak diperlukan di sini karena kesederhanaan nilai-nilai yang diamati.

Andy W
sumber
1
Saya suka solusi dan konten ini, saya hanya menunggu kiriman lainnya. Terima kasih Andy.
Cam.Davidson.Pilon
1
@ Cam.Davidson.Pilon - Saya menunggu kiriman lainnya juga! Karena model Anda hanya memiliki satu prediktor - pengurutan berdasarkan proporsi cacat yang diprediksi akan identik dengan pengurutan berdasarkan suhu (dengan asumsi efek monoton - seperti yang muncul dalam grafik Anda). Mungkin seseorang akan datang dengan solusi lain yang secara efektif memungkinkan seseorang untuk melihat proporsi yang diprediksi dan suhu asli (atau sesuatu yang sama sekali berbeda). Tampilan ini bagus untuk melihat prediksi buruk, tetapi tidak terlalu baik untuk hal-hal seperti melihat efek non-linear.
Andy W
1
Saya senang memberi hadiah kepada Anda. Penyortiran adalah kunci untuk mempresentasikannya, dan kertas yang ditautkan dari posting Anda sebelumnya adalah apa yang akan saya gunakan. Terima kasih!
Cam.Davidson.Pilon
4

Cara yang biasa untuk memvisualisasikan kecocokan model regresi logistik Bayesian dengan satu prediktor adalah dengan merencanakan distribusi prediktif bersama dengan proporsi yang sesuai. (Tolong, beri tahu saya jika saya mengerti pertanyaan Anda)

Contoh menggunakan kumpulan data Bliss yang populer.

masukkan deskripsi gambar di sini

Kode di bawah ini dalam 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)
Cerberis
sumber
Saya bukan cowok R, bisakah Anda memberikan plot / output?
Cam.Davidson.Pilon
@ Cam.Davidson.Pilon Maaf, reputasi saya tidak memungkinkan saya untuk memasukkan plot. Tetapi idenya adalah untuk memetakan seluruh kurva dosis-respons bersama-sama dengan proporsi yang diamati.
Cerberis
Saya telah menambahkan gambar. Anda mengasumsikan struktur yang berbeda untuk data di mana OP tidak secara langsung meluas ke contoh Anda. Data OP akan seperti jika Anda ni = 23dan no = 7dan masing-masing 23 individu memiliki yang berbeda satu dose. Anda bisa membuat plot serupa untuk data OP, (poin ditempatkan pada 0 atau 1 pada sumbu Y, dan Anda plot fungsinya). Lihat beberapa contoh plot serupa untuk regresi logistik dalam referensi yang saya berikan pada jawaban ini .
Andy W
@AndyW Terima kasih untuk ini dan untuk klarifikasi juga.
Cerberis
@AndyW ah kertas yang Anda tautkan cukup berguna! Saya harus melihat lebih dekat pada mereka untuk melihat apakah saya bisa menerapkannya.
Cam.Davidson.Pilon
3

Saya menanggapi permintaan untuk teknik grafis alternatif yang menunjukkan seberapa baik peristiwa kegagalan yang disimulasikan cocok dengan peristiwa kegagalan yang diamati. Pertanyaan muncul dalam "Pemrograman Probabilistik dan Metode Bayesian untuk Peretas" ditemukan di sini . Inilah pendekatan grafis saya:

Kegagalan O-Ring Simulasi vs Diamati

Kode ditemukan di sini .

user35216
sumber
Menarik - dapatkah Anda menawarkan argumen mengapa menggunakan teknik ini? Terima kasih telah berbagi!
Cam.Davidson.Pilon
Ini adalah probabilistik, bukan hasil deterministik. Oleh karena itu, saya mencari representasi yang menyampaikan beberapa hal: 1) kisaran peristiwa yang diamati dan diprediksi; 2: distribusi probabilitas kegagalan yang diprediksi; 3) distribusi probabilitas prediksi kegagalan; dan 4) rentang di mana kegagalan lebih mungkin, non-kegagalan lebih mungkin, dan rentang di mana kemungkinan kegagalan dan non-kegagalan tumpang tindih. Grafik ini menunjukkan melakukan semua itu di mataku.
user35216
Beberapa tambahan / klarifikasi: 1) kisaran suhu peristiwa yang diamati dan diprediksi; 5) kegagalan yang diamati aktual dan non-kegagalan
user35216