ตัวอย่างง่ายๆที่แสดงให้เห็นถึงข้อดีของรูปแบบเฉลี่ยของ Bayesian (BMA)


12

ฉันกำลังผสมผสานวิธีการแบบเบอเซียนโมเดลเฉลี่ย (BMA) ในการวิจัยของฉันและอีกไม่นานจะมีการนำเสนอเกี่ยวกับงานของฉันกับเพื่อนร่วมงานของฉัน อย่างไรก็ตาม BMA ไม่ได้เป็นที่รู้จักกันดีในสาขาของฉันดังนั้นหลังจากนำเสนอพวกเขาด้วยทฤษฎีทั้งหมดและก่อนที่จะนำไปใช้กับปัญหาของฉันจริง ๆ ฉันต้องการนำเสนอตัวอย่างที่เรียบง่ายและให้คำแนะนำเกี่ยวกับสาเหตุที่ BMA ทำงาน

ฉันกำลังคิดเกี่ยวกับตัวอย่างง่าย ๆ ที่มีสองแบบให้เลือก แต่แบบจำลองการสร้างข้อมูลที่แท้จริง (DGM) นั้นอยู่ที่ไหนสักแห่งในระหว่างนั้นและหลักฐานไม่ได้ให้ประโยชน์อย่างใดอย่างหนึ่งกับพวกเขา ดังนั้นหากคุณเลือกหนึ่งและดำเนินการต่อจากพวกเขาคุณจะไม่สนใจความไม่แน่นอนของแบบจำลองและทำผิดพลาด แต่ BMA ถึงแม้ว่าตัวแบบที่แท้จริงไม่ได้เป็นส่วนหนึ่งของชุดแบบจำลองอย่างน้อยก็ให้ความหนาแน่นหลังพารามิเตอร์ที่น่าสนใจ ตัวอย่างเช่นมีการพยากรณ์อากาศสองครั้งในแต่ละวัน (A และ B) และต้องการพยากรณ์อากาศที่ดีที่สุดดังนั้นในสถิติแบบดั้งเดิมคุณจะต้องพยายามค้นหาพยากรณ์ที่ดีที่สุดระหว่างสองคนนี้ แต่จะเป็นอย่างไรหากความจริงอยู่ที่ไหนสักแห่งระหว่าง (นั่นคือบางครั้ง A ถูกต้องบางครั้ง B) แต่ฉันทำมันไม่เป็นทางการ บางอย่างเช่นนั้น แต่ฉันเปิดกว้างต่อความคิด ฉันหวังว่าคำถามนี้เฉพาะเจาะจงมาก!

ในวรรณคดีฉันไม่พบตัวอย่างที่ดีจากสิ่งที่ฉันได้อ่าน:

  • Kruschke (2011)ในขณะที่การแนะนำที่ดีเกี่ยวกับสถิติ Bayesian ไม่ได้มุ่งเน้นไปที่ BMA อย่างแท้จริงและตัวอย่างการโยนเหรียญที่เขามีในบทที่ 4 นั้นยอดเยี่ยมสำหรับการแนะนำสถิติ Bayesian แต่ไม่ได้โน้มน้าวให้นักวิจัยคนอื่นใช้ BMA ("ทำไมฉันถึงมีสามรุ่นอีกครั้งหนึ่งพูดว่าเหรียญยุติธรรมและสองคนบอกว่ามันลำเอียงในทิศทางใดทิศทางหนึ่ง?")
  • สิ่งอื่น ๆ ทั้งหมดที่ฉันอ่าน ( Koop 2003 , Koop / Poirier / Tobias (2007) , Hoeting et al. (1999)และอื่น ๆ อีกมากมาย) เป็นข้อมูลอ้างอิงที่ดีมาก แต่ฉันไม่ได้พบตัวอย่างของเล่นง่ายๆในพวกเขา

แต่บางทีฉันอาจพลาดแหล่งข้อมูลที่ดีที่นี่

ดังนั้นใครบ้างที่มีตัวอย่างที่ดีที่เขาหรือเธอใช้ในการแนะนำ BMA? บางทีโดยการแสดงโอกาสและผู้โพสต์ด้วยเพราะฉันคิดว่ามันจะเป็นคำแนะนำที่ค่อนข้าง


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

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

คำตอบ:


8

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

รหัส R ที่ฉันใช้สำหรับสิ่งนี้แสดงไว้ด้านล่าง หวังว่ามันจะเป็นแรงบันดาลใจให้คุณ!

# The sample size
n <- 100

# The 'true' coefficient vector
Beta <- cbind(c(-1.5, 0.45, -3))

# Generate the explanatory variables which have an effect on the outcome
set.seed(1)
X <- cbind(rnorm(n, 0, 1), rnorm(n, 4, 2), rnorm(n, 0.5, 1))

# Convert this into probabilities
prob <- 1/(1+exp(-X %*% Beta))

# Generate some uniform numbers. If the elements are smaller than the corresponding elements in the prob vector, then return 1.
set.seed(2)
runis <- runif(n, 0, 1)
y <- ifelse(runis < prob, 1, 0)

# Add the nonsense variables
X <- cbind(X, rpois(n, 3))        # Redundant variable 1 (x4)
X <- cbind(X, rexp(n, 10))        # Redundant variable 2 (x5)
X <- cbind(X, rbeta(n, 3, 10))    # Redundant variable 3 (x6)
X <- cbind(X, rbinom(n, 10, 0.5)) # Redundant variable 4 (x7)
X <- cbind(X, rpois(n, 40))       # Redundant variable 5 (x8)
X <- cbind(X, rgamma(n, 10, 20))  # Redundant variable 6 (x9)
X <- cbind(X, runif(n, 0, 1))     # Redundant variable 7 (x10)


# The BMA
library(BMA)
model <- bic.glm(X, y,  glm.family="binomial", factor.type=FALSE, thresProbne0 = 5, strict = FALSE)

# The frequentist model
model2 <- glm(y~X, family = "binomial")

old.par <- par()
par(mar=c(3,2,3,1.5))
plot(model, mfrow=c(2,5))
par(old.par)

summary(model)
summary(model2)

2
นั่นเป็นตัวอย่างที่ดีดังนั้น +1 สำหรับมัน อย่างไรก็ตามในขณะที่คุณชี้ให้เห็นแล้วมันไม่ได้ช่วยให้ผู้อื่นเชื่อในการใช้ BMA ที่จริงแล้วฉันเรียกใช้และใช้เวลาในการโน้มน้าวใจฉันว่า BMA ดีกว่าแนวทางแบบคลาสสิก: โมเดลที่ดีที่สุดไม่ใช่โมเดลจริง (โมเดลที่ดีที่สุดมีเพียง x2 และ x3) และพารามิเตอร์สำหรับ model2 ไม่ใช่ อย่างน้อยสำหรับพารามิเตอร์ที่เกี่ยวข้อง อย่างไรก็ตามมันแสดงให้เห็นถึงพารามิเตอร์ที่สำคัญบางอย่างที่ x5 และ x6 ซึ่งไม่ควรอยู่ที่นั่นและ BMA ทำงานได้ยอดเยี่ยมในการบอกคุณว่านี่ไม่สำคัญดังนั้นจึงเป็นข้อดีสำหรับ BMA
Christoph_J

2

ทรัพยากรที่ยอดเยี่ยมสำหรับสิ่งนี้คือ:
แบบจำลอง Bayesian Averaging with BMS โดย Stefan Zeugner (2012)

มันใช้ R-package BMSสามารถดูข้อมูลเพิ่มเติมได้ที่นี่:
http://bms.zeugner.eu/

แบบฝึกหัดบนมือสองแบบสำหรับการทำซ้ำตัวอย่างจริงกับแพ็คเกจสามารถพบได้ที่นี่:

แรงบันดาลใจทั่วไปและปัจจุบันแนะนำวิธีการแบบเบย์เป็นกระดาษต่อไปนี้:

เวลาได้มาแล้ว: วิธีการแบบเบส์สำหรับการวิเคราะห์ข้อมูลในองค์กรวิทยาศาสตร์โดย John K. Kruschke, Herman Aguinis และ Harry Joo


ขอบคุณสำหรับลิงค์ แต่มันไม่ใช่สิ่งที่ฉันตามมา ฉันรู้จริงและใช้แพคเกจก่อน (มันยอดเยี่ยม) และฉันยอมรับว่าเอกสารของพวกเขานั้นให้คำแนะนำจริงๆ แต่อีกครั้งผู้เขียนตั้งใจที่จะไม่โน้มน้าวใจใครสักคน (หวังว่าในเวลาไม่ถึง 5 นาที) ทำไมพวกเขาจึงควรใช้ BMA แต่เนื่องจากพวกเขาต้องการใช้มันจะทำอย่างไรกับแพ็คเกจของพวกเขา ดังนั้นพวกเขาเริ่มต้นด้วยattitudeตัวอย่างและถ้าคุณเลื่อนดูลิงก์แรกของคุณไม่มีโต๊ะหรือรูปที่คุณจะกรีดร้อง: "Geez ฉันดีใจที่ได้ใช้ BMA!"
Christoph_J

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

3
@Christoph_J: คุณรู้บทความนี้: indiana.edu/~kruschke/articles/KruschkeAJ2012.pdf - มันไม่ได้เกี่ยวกับกทม. มากนัก แต่เกี่ยวกับการโน้มน้าวใจคนให้ใช้วิธีการแบบเบย์ในตอนแรก - บางทีนี่อาจเป็นสิ่งที่มีประโยชน์สำหรับ คุณ :-)
vonjd

1
ฉันไม่รู้ว่ามันเป็นบทความแนะนำที่ดีสำหรับวิธีการแบบเบย์ดังนั้น +1 สำหรับลิงก์ ขอบคุณ
Christoph_J

@Christoph_J: ฉันแก้ไขโพสต์ตามนั้น: +1 ของคุณสำหรับคำตอบใช้งานไม่ได้มันยังคงเป็น 0 (?!?) ดังนั้นคุณช่วยได้โปรดทำอีกครั้ง - ขอบคุณ :-)
vonjd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.