วิธีการเห็นภาพความดีแบบเบย์ของความเหมาะสมสำหรับการถดถอยโลจิสติก


10

สำหรับปัญหาการถดถอยแบบลอจิสติกแบบเบย์ฉันได้สร้างการแจกแจงการคาดการณ์หลัง ฉันสุ่มตัวอย่างจากการแจกแจงแบบคาดการณ์และได้รับตัวอย่างจำนวนมาก (0,1) สำหรับการสังเกตแต่ละครั้งที่ฉันมี การแสดงให้เห็นถึงความดีงามของพอดีนั้นน้อยกว่าที่น่าสนใจตัวอย่างเช่น

ป้อนคำอธิบายรูปภาพที่นี่

พล็อตนี้แสดงตัวอย่าง 10,000 ตัวอย่าง + จุดข้อมูลที่สังเกตได้ (วิธีทางซ้ายสามารถสร้างเส้นสีแดงได้: ใช่แล้วนั่นคือการสังเกต) ปัญหาคือว่าพล็อตนี้ไม่ค่อยให้ข้อมูลและฉันจะมี 23 อันหนึ่งอันสำหรับแต่ละจุดข้อมูล

มีวิธีที่ดีกว่าในการมองเห็นจุดข้อมูล 23 จุดพร้อมตัวอย่างหลังหรือไม่


ความพยายามอื่น:

ป้อนคำอธิบายรูปภาพที่นี่


ความพยายามอื่นขึ้นอยู่กับกระดาษที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


1
ดูที่นี่สำหรับตัวอย่างที่ใช้เทคนิค data-vis ข้างต้น
Cam.Davidson.Pilon

นั่นเป็นพื้นที่ว่างเปล่า IMO! คุณมี 3 ค่าจริง ๆ (ต่ำกว่า 0.5, สูงกว่า 0.5, และการสังเกต) หรือว่าเป็นเพียงสิ่งประดิษฐ์ของตัวอย่างที่คุณให้มา?
Andy W

ในความเป็นจริงมันแย่กว่าเดิม: ฉันมี 8500 0 และ 1,500 1 กราฟจะผลักดันค่าเหล่านี้เพื่อสร้างฮิสโตแกรมที่เชื่อมต่อ แต่ฉันเห็นด้วย: พื้นที่ว่างเปล่ามากมาย จริงๆสำหรับแต่ละจุดข้อมูลฉันสามารถลดสัดส่วน (อดีต 8500/10000) และการสังเกต (ทั้ง 0 หรือ 1)
Cam.Davidson.Pilon

คุณมีจุดข้อมูล 23 จุดและมีผู้ทำนายกี่คน และการกระจายการทำนายหลังของคุณสำหรับจุดข้อมูลใหม่หรือสำหรับ 23 ที่คุณใช้เพื่อให้พอดีกับรูปแบบ?
ความน่าจะเป็นทางการ

พล็อตที่อัปเดตของคุณนั้นใกล้เคียงกับที่ฉันจะแนะนำ แม้ว่าแกน x เป็นตัวแทนอะไร ดูเหมือนว่าคุณมีบางประเด็นที่กำหนดอย่างยอดเยี่ยมซึ่งมีเพียง 23 ข้อที่ไม่จำเป็น
Andy W

คำตอบ:


5

ฉันมีความรู้สึกว่าคุณไม่ยอมแพ้ทุกอย่างกับสถานการณ์ของคุณ แต่ให้สิ่งที่เรามีต่อหน้าเราให้พิจารณาประโยชน์ของdot-plot ง่ายๆเพื่อแสดงข้อมูล

พล็อตจุด

สิ่งเดียวเท่านั้นที่ไม่ได้อยู่ที่นี่ (นั่นอาจไม่ใช่พฤติกรรมเริ่มต้น) คือ:

  • ฉันใช้การเข้ารหัสซ้ำซ้อนรูปร่างและสีเพื่อแยกแยะระหว่างค่าที่สังเกตได้โดยไม่มีข้อบกพร่องและข้อบกพร่อง ด้วยข้อมูลง่ายๆเช่นนี้การวางจุดบนกราฟจึงไม่จำเป็น นอกจากนี้คุณมีปัญหาเมื่อจุดอยู่ใกล้กับค่ากลางมันต้องใช้การค้นหาเพิ่มเติมเพื่อดูว่าค่าที่สังเกตได้เป็นศูนย์หรือหนึ่ง
  • ฉันเรียงกราฟิกตามสัดส่วนที่สังเกต

การเรียงลำดับเป็นนักเตะตัวจริงสำหรับดอทแปลงเช่นนี้ การเรียงลำดับตามค่าสัดส่วนที่นี่จะช่วยให้ค้นพบสิ่งที่เหลืออยู่สูงได้อย่างง่ายดาย การมีระบบที่คุณสามารถจัดเรียงตามค่าที่มีอยู่ในพล็อตหรือในลักษณะภายนอกของเคสได้อย่างง่ายดายเป็นวิธีที่ดีที่สุดในการได้รับผลตอบแทนจากเงินของคุณ

คำแนะนำนี้รวมถึงการสังเกตอย่างต่อเนื่องเช่นกัน คุณสามารถกำหนดสี / รูปร่างของจุดตามว่าส่วนที่เหลือเป็นลบหรือบวกจากนั้นปรับขนาดของจุดตามส่วนที่เหลือของสัมบูรณ์ (หรือกำลังสอง) IMO นี้ไม่จำเป็นที่นี่เนื่องจากความเรียบง่ายของค่าที่สังเกตได้


1
ฉันชอบวิธีแก้ปัญหาและเนื้อหานี้ฉันแค่รอส่งอื่น ๆ ขอบคุณแอนดี้
Cam.Davidson.Pilon

1
@ Cam.Davidson.Pilon - ฉันกำลังรอส่งอื่น ๆ ด้วย! เนื่องจากแบบจำลองของคุณมีตัวทำนายเพียงตัวเดียว - การเรียงลำดับตามสัดส่วนของข้อบกพร่องที่คาดการณ์จะมีความหมายเหมือนการเรียงลำดับตามอุณหภูมิ บางทีบางคนอาจจะมาพร้อมกับโซลูชันอื่นที่ช่วยให้ใครเห็นทั้งสัดส่วนที่คาดการณ์และอุณหภูมิดั้งเดิม (หรือบางอย่างแตกต่างกันอย่างสมบูรณ์) จอแสดงผลนี้เหมาะสำหรับการมองเห็นการคาดการณ์ที่ไม่ดี แต่ไม่ดีสำหรับสิ่งต่าง ๆ เช่นการเห็นเอฟเฟกต์ที่ไม่ใช่เชิงเส้น
Andy W

1
ฉันยินดีที่จะมอบรางวัลให้คุณ การเรียงลำดับเป็นกุญแจสำคัญในการนำเสนอและเอกสารที่เชื่อมโยงจากโพสต์ก่อนหน้าของคุณคือสิ่งที่ฉันจะใช้ ขอบคุณ!
Cam.Davidson.Pilon

4

วิธีปกติในการมองเห็นภาพความพอดีของโมเดลการถดถอยแบบโลจิสติกส์แบบเบย์กับตัวทำนายหนึ่งคือวางแผนการแจกแจงการทำนายพร้อมกับสัดส่วนที่สอดคล้องกัน (โปรดแจ้งให้เราทราบหากฉันเข้าใจคำถามของคุณ)

ตัวอย่างการใช้ชุดข้อมูล Bliss ยอดนิยม

ป้อนคำอธิบายรูปภาพที่นี่

รหัสด้านล่างใน 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)

ฉันไม่ใช่คน R คุณสามารถให้พล็อต / เอาต์พุตได้ไหม
Cam.Davidson.Pilon

@ Cam.Davidson.Pilon ฉันขอโทษชื่อเสียงของฉันไม่อนุญาตให้มีการแปลง แต่ความคิดคือการเขียนกราฟการตอบสนองของยาทั้งหมดพร้อมกับสัดส่วนที่สังเกตได้
Cerberis

ฉันเพิ่มรูปภาพแล้ว คุณถือว่าโครงสร้างที่แตกต่างกันสำหรับข้อมูลที่ OP ไม่ได้ขยายตัวอย่างของคุณโดยตรง ข้อมูลของ OP จะเป็นเช่นหากคุณni = 23และno = 7และแต่ละคน 23 doseคนมีที่แตกต่างกัน คุณสามารถสร้างพล็อตที่คล้ายกันสำหรับข้อมูลของ OP ได้ (จุดนั้นวางไว้ที่ 0 หรือ 1 บนแกน Y และคุณวางแผนฟังก์ชั่น) ดูตัวอย่างบางส่วนของแปลงที่คล้ายกันสำหรับการถดถอยโลจิสติกในการอ้างอิงที่ฉันให้กับคำตอบนี้
Andy W

@AndyW ขอบคุณสำหรับสิ่งนี้และขอชี้แจงเช่นกัน
Cerberis

@ Andy เอกสารที่คุณลิงค์มีประโยชน์มากเลยทีเดียว! ฉันจะต้องตรวจสอบสิ่งเหล่านั้นอย่างละเอียดเพื่อดูว่าฉันสามารถนำไปใช้ได้หรือไม่
Cam.Davidson.Pilon

3

ฉันกำลังตอบสนองต่อคำขอสำหรับเทคนิคกราฟิกทางเลือกที่แสดงว่าเหตุการณ์ความล้มเหลวที่จำลองได้ดีเพียงใดนั้นตรงกับเหตุการณ์ความล้มเหลวที่สังเกตได้ คำถามที่เกิดขึ้นใน "การเขียนโปรแกรมและวิธีการน่าจะเป็นแบบเบย์สำหรับแฮกเกอร์" พบที่นี่ นี่คือวิธีกราฟิกของฉัน:

จำลองเทียบกับความล้มเหลวของโอริงที่สังเกตได้

รหัสพบที่นี่


น่าสนใจ - คุณสามารถเสนอเหตุผลใด ๆ ในการใช้เทคนิคนี้ได้หรือไม่? ขอบคุณสำหรับการแบ่งปัน!
Cam.Davidson.Pilon

นี่เป็นความน่าจะเป็นไม่ใช่ผลที่แน่นอน ดังนั้นฉันจึงมองหาตัวแทนที่สื่อถึงหลายสิ่ง: 1) ช่วงของเหตุการณ์ที่สังเกตและทำนายไว้; 2: การแจกแจงความน่าจะเป็นของความล้มเหลวที่คาดการณ์ไว้; 3) การแจกแจงความน่าจะเป็นของการทำนายความล้มเหลว และ 4) ช่วงที่ความล้มเหลวมีแนวโน้มมากขึ้นไม่มีความล้มเหลวมีแนวโน้มมากขึ้นและช่วงที่ความล้มเหลวและโอกาสที่ไม่ใช่ความล้มเหลวทับซ้อนกัน กราฟนี้แสดงให้เห็นทุกอย่างที่อยู่ในสายตาของฉัน
35216

เพิ่มเติมเล็กน้อย / ชี้แจงเพิ่มเติม: 1) ช่วงอุณหภูมิของเหตุการณ์ที่สังเกตและคาดการณ์; 5) ความล้มเหลวที่สังเกตได้จริงและไม่ใช่ความล้มเหลว
user35216
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.