ใครสามารถอธิบายให้ฉันอย่างละเอียดเกี่ยวกับการประมาณค่าความน่าจะเป็นสูงสุด (MLE) ในแง่ของคนธรรมดา ฉันต้องการทราบแนวคิดพื้นฐานก่อนที่จะเข้ามาทางคณิตศาสตร์หรือสมการ
ใครสามารถอธิบายให้ฉันอย่างละเอียดเกี่ยวกับการประมาณค่าความน่าจะเป็นสูงสุด (MLE) ในแง่ของคนธรรมดา ฉันต้องการทราบแนวคิดพื้นฐานก่อนที่จะเข้ามาทางคณิตศาสตร์หรือสมการ
คำตอบ:
สมมติว่าคุณมีข้อมูล สมมติว่าคุณยินดีสมมติว่าข้อมูลมาจากการแจกจ่ายบางอย่าง - อาจเสียน มีจำนวนไม่ จำกัด ของ Gaussians ที่แตกต่างกันซึ่งข้อมูลอาจมาจาก (ซึ่งสอดคล้องกับการรวมกันของจำนวนวิธีการและความแปรปรวนที่การแจกแจงแบบเกาส์นั้นมีไม่สิ้นสุด) MLE จะเลือก Gaussian (เช่นความหมายและความแปรปรวน) ที่ "สอดคล้องกันมากที่สุด" กับข้อมูลของคุณ (ความหมายที่แม่นยำของความสอดคล้องนั้นอธิบายไว้ด้านล่าง)
ดังนั้นจะบอกว่าคุณได้มีชุดข้อมูลของ\} Gaussian ที่สอดคล้องกันมากที่สุดซึ่งข้อมูลนั้นอาจมามีค่าเฉลี่ย 3 และความแปรปรวนเท่ากับ 16 มันอาจถูกสุ่มตัวอย่างจาก Gaussian อื่น ๆ แต่สิ่งหนึ่งที่มีค่าเฉลี่ย 3 และความแปรปรวนเท่ากับ 16 นั้นสอดคล้องกับข้อมูลมากที่สุดในแง่ต่อไปนี้ความน่าจะเป็นที่จะได้ค่าคุณสังเกตเห็นนั้นมีค่ามากกว่าด้วยตัวเลือกค่าเฉลี่ยและความแปรปรวนมากกว่าตัวเลือกอื่น ๆy
การย้ายไปสู่การถดถอย: แทนที่จะเป็นค่าคงที่ค่าเฉลี่ยคือฟังก์ชันเชิงเส้นของข้อมูลตามที่ระบุโดยสมการการถดถอย ดังนั้นสมมติว่าคุณมีข้อมูลเช่นพร้อมกับจากก่อนหน้านี้ ค่าเฉลี่ยของ Gaussian นั้นตอนนี้เป็นโมเดลการถดถอยแบบโดยที่ บีตาบีตา = [ - 1.9 , 0.9 ]
ย้ายไปยัง GLMs: แทนที่ Gaussian ด้วยการแจกแจงแบบอื่น (จากตระกูลชี้แจง) ค่าเฉลี่ยตอนนี้เป็นฟังก์ชันเชิงเส้นของข้อมูลตามที่ระบุโดยสมการถดถอยแปลงโดยฟังก์ชันลิงก์ ดังนั้นมันคือโดยที่สำหรับ logit (พร้อมข้อมูลทวินาม)
การประมาณความน่าจะเป็นสูงสุด (MLE) เป็นเทคนิคในการค้นหา ฟังก์ชันที่เป็นไปได้มากที่สุดที่จะอธิบายข้อมูลที่สังเกตได้ ฉันคิดว่าคณิตศาสตร์เป็นสิ่งจำเป็น แต่อย่าปล่อยให้มันทำให้คุณกลัว!
สมมติว่าเรามีชุดของจุดในระนาบและเราต้องการทราบพารามิเตอร์ของฟังก์ชันβและσที่น่าจะพอดีกับข้อมูลมากที่สุด (ในกรณีนี้เรารู้จักฟังก์ชันเพราะผมระบุให้สร้างตัวอย่างนี้ แต่ทนกับฉัน)
data <- data.frame(x = runif(200, 1, 10))
data$y <- 0 + beta*data$x + rnorm(200, 0, sigma)
plot(data$x, data$y)
linear.lik <- function(theta, y, X){
n <- nrow(X)
k <- ncol(X)
beta <- theta[1:k]
sigma2 <- theta[k+1]^2
e <- y - X%*%beta
logl <- -.5*n*log(2*pi)-.5*n*log(sigma2) - ( (t(e) %*% e)/ (2*sigma2) )
return(-logl)
}
surface <- list()
k <- 0
for(beta in seq(0, 5, 0.1)){
for(sigma in seq(0.1, 5, 0.1)){
k <- k + 1
logL <- linear.lik(theta = c(0, beta, sigma), y = data$y, X = cbind(1, data$x))
surface[[k]] <- data.frame(beta = beta, sigma = sigma, logL = -logL)
}
}
surface <- do.call(rbind, surface)
library(lattice)
wireframe(logL ~ beta*sigma, surface, shade = TRUE)
linear.MLE <- optim(fn=linear.lik, par=c(1,1,1), lower = c(-Inf, -Inf, 1e-8),
upper = c(Inf, Inf, Inf), hessian=TRUE,
y=data$y, X=cbind(1, data$x), method = "L-BFGS-B")
linear.MLE$par
## [1] -0.1303868 2.7286616 1.3446534
lm
summary(lm(y ~ x, data))
##
## Call:
## lm(formula = y ~ x, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.3616 -0.9898 0.1345 0.9967 3.8364
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.13038 0.21298 -0.612 0.541
## x 2.72866 0.03621 75.363 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.351 on 198 degrees of freedom
## Multiple R-squared: 0.9663, Adjusted R-squared: 0.9661
## F-statistic: 5680 on 1 and 198 DF, p-value: < 2.2e-16
data$y <- 0 + beta*data$x + rnorm(200, 0, sigma2)
หรือไม่? และมี0 +
ประโยชน์อย่างไร
beta
และsigma2
จะต้องมีการกำหนดรหัสนี้เพื่อให้ทำงานได้ ฉันซ่อนไว้เพื่อให้เราสามารถ "ค้นพบ" พารามิเตอร์ซึ่งแทบไม่เป็นที่รู้จักเมื่อคุณเรียกใช้ MLE
0 +
ทุกอย่างไม่ได้ทำอะไรเลย ฉันรวมมันเพียงเพราะแบบจำลองการถดถอยมักจะมีการสกัดกั้น และถ้า MLE กำลังพยายามที่จะเพิ่มประสิทธิภาพbeta
, sigma2
และ alpha
ฉันไม่สามารถแสดงให้เห็นพล็อตผิวสวย (ยกเว้นกรณีที่คุณรู้ของแพคเกจ R ที่จะพล็อตในสี่มิติ!)
ค่าประมาณความน่าจะเป็นสูงสุด (ML) ของพารามิเตอร์คือค่าของพารามิเตอร์นั้นซึ่งข้อมูลที่สังเกตได้จริงของคุณน่าจะเป็นไปได้มากที่สุดเมื่อเทียบกับค่าอื่น ๆ ที่เป็นไปได้ของพารามิเตอร์
แนวคิดคือมีจำนวนพารามิเตอร์ "จริง" ที่อาจนำไปสู่ข้อมูลที่คุณสังเกตเห็นโดยมีความน่าจะเป็นที่ไม่เป็นศูนย์ แต่การประมาณ ML ให้ค่าพารามิเตอร์ที่จะนำไปสู่ข้อมูลที่คุณสังเกตเห็นซึ่งมีความน่าจะเป็นสูงสุด
สิ่งนี้จะต้องไม่สับสนกับค่าของพารามิเตอร์ที่น่าจะทำให้ข้อมูลของคุณเป็นจริง!
คุณต้องจำไว้ว่า "โอกาส" เป็นศัพท์ทางเทคนิค ความน่าจะเป็นของ H, Pr (O | H) และความน่าจะเป็นหลังของ H, Pr (H | O) เป็นปริมาณที่แตกต่างกันและพวกเขาสามารถมีค่าที่แตกต่างกัน ความน่าจะเป็นของ H คือความน่าจะเป็นที่ H ให้กับ O ไม่ใช่ความน่าจะเป็นที่ O สร้างความสัมพันธ์กับ H สมมติว่าคุณได้ยินเสียงดังมาจากห้องใต้หลังคาของบ้าน คุณพิจารณาสมมติฐานที่ว่ามี gremlins อยู่ที่นั่นโบว์ลิ่ง ความเป็นไปได้ของสมมติฐานนี้สูงมากเนื่องจากหากมี gremlins โบว์ลิ่งอยู่ในห้องใต้หลังคาอาจจะมีเสียงรบกวน แต่แน่นอนคุณไม่คิดว่าเสียงจะทำให้เป็นไปได้มากว่ามี gremlins อยู่ที่นั่นโบว์ลิ่ง ในตัวอย่างนี้ Pr (O | H) สูงและ Pr (H | O) ต่ำ สมมติฐานของโสมมีความเป็นไปได้สูง (ในแง่เทคนิค) แต่มีความน่าจะเป็นต่ำ
ในแง่ของตัวอย่างข้างต้น ML จะสนับสนุนสมมติฐานของ Gremlin ในตัวอย่างตลกนี้โดยเฉพาะนั่นเป็นตัวเลือกที่ไม่ดีอย่างชัดเจน แต่ในกรณีที่เป็นจริงอื่น ๆ อีกมากมายการประมาณ ML อาจเหมาะสมอย่างยิ่ง
การอ้างอิง
Sober, E. (2008) หลักฐานและวิวัฒนาการ: ตรรกะที่อยู่เบื้องหลังวิทยาศาสตร์ สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์
MLE คือค่าของพารามิเตอร์ของดอกเบี้ยที่เพิ่มความน่าจะเป็นในการสังเกตข้อมูลที่คุณสังเกตได้ กล่าวอีกนัยหนึ่งมันเป็นค่าของพารามิเตอร์ที่ทำให้ข้อมูลที่สังเกตได้น่าจะเป็นที่สังเกต
เป็นไปได้ที่จะพูดอะไรบางอย่างโดยไม่ใช้คณิตศาสตร์ (มาก) แต่สำหรับการใช้งานทางสถิติที่เกิดขึ้นจริงซึ่งมีความเป็นไปได้สูงสุดที่คุณต้องการคณิตศาสตร์
การประมาณค่าความน่าจะเป็นสูงสุดเกี่ยวข้องกับสิ่งที่นักปรัชญาเรียกอนุมานกับคำอธิบายที่ดีที่สุดหรือการลักพาตัว เราใช้สิ่งนี้ตลอดเวลา! หมายเหตุฉันไม่ได้บอกว่าความเป็นไปได้สูงสุดคือการลักพาตัวคำนั้นกว้างกว่ามากและบางกรณีของการประมาณแบบเบย์ (ด้วยการประจักษ์ก่อน) อาจถูกมองว่าเป็นการลักพาตัว ตัวอย่างบางส่วนนำมาจาก http://plato.stanford.edu/entries/abduction/#Aca ดูเพิ่มเติมที่ https://en.wikipedia.org/wiki/Abductive_reasoning (ในวิทยาศาสตร์คอมพิวเตอร์ "การลักพาตัว" ยังใช้ในบริบทของการไม่ใช้ แบบจำลองความน่าจะเป็น)
อีกตัวอย่างหนึ่ง: คุณทำงานในโรงเรียนอนุบาลและวันหนึ่งเด็กก็เริ่มเดินไปในทางที่แปลกและบอกว่าเขาขาหัก คุณตรวจสอบและพบว่าไม่มีอะไรผิดปกติ จากนั้นคุณสามารถอนุมานได้ว่าผู้ปกครองคนใดคนหนึ่งของเขาหักขาเนื่องจากเด็ก ๆ มักจะทำตามที่อธิบายไว้นั่นคือ "การอนุมานถึงคำอธิบายที่ดีที่สุด" และตัวอย่างของโอกาสสูงสุด (ไม่เป็นทางการ) (และแน่นอนว่าคำอธิบายนั้นอาจผิดก็น่าจะเป็นไปได้เท่านั้นไม่แน่ใจความน่าจะเป็นการลักพาตัว / สูงสุดไม่สามารถให้ข้อสรุปที่แน่นอนได้)
การลักพาตัวคือการค้นหารูปแบบในข้อมูลแล้วค้นหาทฤษฎีที่เป็นไปได้ที่อาจทำให้รูปแบบเหล่านั้นเป็นไปได้ จากนั้นเลือกคำอธิบายที่เป็นไปได้ซึ่งทำให้รูปแบบที่สังเกตได้น่าจะเป็นไปได้มากที่สุดเป็นเพียงโอกาสสูงสุด!
ตัวอย่างที่สำคัญของการลักพาตัวในด้านวิทยาศาสตร์เป็นวิวัฒนาการ ไม่มีใครสังเกตเพียงนัยเดียวที่บอกถึงวิวัฒนาการ แต่วิวัฒนาการทำให้รูปแบบที่สังเกตได้น่าจะเป็นไปได้มากกว่าคำอธิบายอื่น ๆ
อีกตัวอย่างทั่วไปคือการวินิจฉัยทางการแพทย์? เงื่อนไขทางการแพทย์ที่เป็นไปได้ที่ทำให้รูปแบบการสังเกตของอาการน่าจะเป็นที่สุด? อีกครั้งนี่เป็นโอกาสสูงสุด! (หรือในกรณีนี้การประมาณแบบเบย์อาจจะเหมาะสมกว่าเราต้องคำนึงถึงความน่าจะเป็นก่อนหน้าของคำอธิบายต่าง ๆ ที่เป็นไปได้) แต่ที่เป็นวิชาในกรณีนี้เราสามารถมีไพรเออร์เชิงประจักษ์ซึ่งสามารถมองเห็นเป็นส่วนหนึ่งของธรรมชาติของแบบจำลองทางสถิติและสิ่งที่เราเรียกรูปแบบสิ่งที่เราเรียกก่อนเป็นบางส่วนโดยพลการ (*) การประชุมทางสถิติ
เพื่อกลับไปที่คำถามดั้งเดิมเกี่ยวกับคำอธิบายของคนธรรมดาของ MLE ต่อไปนี้เป็นตัวอย่างง่ายๆ: เมื่อลูกสาวของฉันอายุ 6 และ 7 ปีฉันถามพวกเขา เราทำโกศสองอัน (สองกล่องใส่รองเท้า) ในที่หนึ่งเราใส่ลูกบอลสีดำ 2 อันสีแดง 8 อันในจำนวนที่เปลี่ยนไป จากนั้นเราผสมโกศและเราวาดโกศหนึ่งแบบสุ่ม จากนั้นเราก็สุ่มลูกบอลหนึ่งลูกออกจากโกศ มันเป็นสีแดง
จากนั้นฉันถามว่า: โกศไหนที่คุณคิดว่าลูกบอลสีแดงถูกดึง? หลังจากนั้นประมาณหนึ่งวินาทีพวกเขาก็ตอบ (ในคณะนักร้องประสานเสียง): จากลูกบอลสีแดง 8 ลูก!
จากนั้นฉันถามว่า: ทำไมคุณคิดอย่างนั้น และอีกครั้งหลังจากนั้นประมาณหนึ่งวินาที (inchoir อีกครั้ง): "เพราะงั้นมันก็ง่ายกว่าที่จะวาดลูกบอลสีแดง!" นั่นคือง่าย = น่าจะเป็นมากขึ้น นั่นเป็นโอกาสสูงสุด (มันเป็นแบบฝึกหัดง่ายๆในการเขียนแบบจำลองความน่าจะเป็น) และมันคือ "การอนุมานถึงคำอธิบายที่ดีที่สุด" นั่นคือการลักพาตัว
(*) ทำไมฉันถึงพูดว่า "ชอบใจ" เพื่อดำเนินการต่อปัญหาการวินิจฉัยทางการแพทย์กล่าวว่าผู้ป่วยเป็นคนที่มี difficlt บางอย่างเพื่อวินิจฉัยสภาพที่แพทย์ไม่ได้เห็นก่อนหน้านี้ จากนั้นพูดในการพูดคุยกับผู้ป่วยมันเกิดขึ้นว่าเขาไปเยี่ยมบางแห่งในเขตร้อนของแอฟริกาเมื่อไม่นานมา นั่นเป็นข้อมูลใหม่ แต่ผลกระทบในแบบจำลองทั่วไป (ใช้ในสถานการณ์แบบนี้ไม่ว่าจะเป็นทางการหรือไม่เป็นทางการ) ก็คือการเปลี่ยนคำอธิบายที่ยากลำบากก่อนหน้านี้เนื่องจากโรคเขตร้อนเช่นมาลาเรียจะสูงขึ้น ความน่าจะเป็นก่อนหน้า ดังนั้นใหม่ข้อมูลเข้าสู่การวิเคราะห์ในส่วนก่อน
(หากข้อมูลเป็น 'ความหนาแน่นของความน่าจะเป็น' อ่านอย่างต่อเนื่องสำหรับ 'ความน่าจะเป็น' ดังนั้นหากพวกเขาวัดเป็นนิ้วความหนาแน่นจะถูกวัดในความน่าจะเป็นต่อนิ้ว)
มาเล่นเกม: ฉันอยู่ในห้องมืดไม่มีใครเห็นสิ่งที่ฉันทำ แต่คุณรู้ว่า (a) ฉันโยนลูกเต๋าและนับจำนวน '1' เป็น 'ความสำเร็จ' หรือ (b) ฉันโยนเหรียญ และฉันนับจำนวนหัวเป็น 'ความสำเร็จ'
อย่างที่ฉันบอกไปแล้วคุณไม่เห็นว่าทั้งสองฉันทำอะไร แต่ฉันให้ข้อมูลเพียงชิ้นเดียว: ฉันบอกคุณว่าฉันโยนลูกเต๋า 100 ครั้งหรือโยนเหรียญ 100 ครั้งและฉันประสบความสำเร็จ 17 ครั้ง .
คำถามคือการเดาว่าฉันโยนลูกเต๋าหรือโยนเหรียญ
คุณอาจจะตอบว่าฉันโยนลูกเต๋า
ถ้าคุณทำเช่นนั้นคุณอาจจะ 'เดาได้โดยการเพิ่มความน่าจะเป็นมากที่สุด' เพราะถ้าฉันสังเกตการทดลอง 17 ครั้งที่สำเร็จ 100 ครั้งมีแนวโน้มว่าฉันจะโยนลูกเต๋ามากกว่าที่ฉันโยนเหรียญ
ดังนั้นสิ่งที่คุณทำคือนำค่าของ 'ความน่าจะเป็นของความสำเร็จ' (1/6 สำหรับลูกเต๋าและ 1/2 สำหรับเหรียญ) ที่ทำให้มีโอกาสมากที่สุดที่จะสังเกตเห็น 17 ความสำเร็จใน 100 'มีแนวโน้มมากขึ้น' หมายถึง โอกาสที่คุณมี 17 ครั้งต่อ '1' ใน 100 การโยนลูกเต๋าสูงกว่าโอกาสที่จะมี 17 หัวจากการโยนเหรียญ 100 ครั้ง
หรือบันทึกความน่าจะเป็น:
ตัวอย่าง
ก่อนอื่นให้สร้างข้อมูลปลอมขึ้นมา:
set.seed(123)
x <- rnorm(1000, 1.78)
llik <- function(mu) sum(log(dnorm(x, mu)))
ll <- vapply(seq(-6, 6, by=0.001), llik, numeric(1))
plot(seq(-6, 6, by=0.001), ll, type="l", ylab="Log-Likelihood", xlab=expression(mu))
abline(v=mean(x), col="red")
เช่นเดียวกับที่จะประสบความสำเร็จได้เร็วขึ้นกับขั้นตอนวิธีการเพิ่มประสิทธิภาพที่จะมองหาค่าสูงสุดของการทำงานในวิธีที่ฉลาดมากขึ้นที่จะบังคับเดรัจฉาน มีหลายตัวอย่างเช่นหนึ่งในพื้นฐานที่สุดใน R คือoptimize
:
optimize(llik, interval=c(-6, 6), maximum=TRUE)$maximum
ตัวอย่างนี้แสดงวิธีที่คุณสามารถใช้หลายวิธีในการค้นหาค่าที่เพิ่มฟังก์ชั่นโอกาสในการหาค่า "ดีที่สุด" ของพารามิเตอร์ของคุณ
สมมติว่าคุณมีเหรียญ การโยนมันสามารถให้ทั้งหัวหรือก้อยได้ แต่คุณไม่รู้ว่ามันเป็นเหรียญที่ยุติธรรมหรือไม่ ดังนั้นคุณจึงโยน 1,000 ครั้ง มันขึ้นมาเป็นหัว 1000 ครั้งและไม่เป็นหาง
MLE พยายามช่วยคุณค้นหาคำอธิบายที่ดีที่สุดในสถานการณ์เช่นนี้ - เมื่อคุณมีผลลัพธ์บางอย่างและคุณต้องการทราบว่ามูลค่าของพารามิเตอร์ใดที่น่าจะให้ผลลัพธ์มากที่สุด ที่นี่เรามี 2,000 หัวจากการโยน 2000 - ดังนั้นเราจะใช้ MLE เพื่อค้นหาความน่าจะเป็นในการรับหัวที่ดีที่สุดอธิบายการรับ 2000 หัวจากการโยน 2000 ครั้ง
มันเป็นประมาณการสูงสุดโอกาส โดยประมาณพารามิเตอร์ (ที่นี่คือฟังก์ชันการแจกแจงความน่าจะเป็น) ซึ่งมักจะสร้างผลลัพธ์ที่คุณกำลังดูอยู่
วิธีที่ฉันเข้าใจ MLE คือ: คุณจะได้เห็นสิ่งที่ธรรมชาติต้องการให้คุณเห็นเท่านั้น สิ่งที่คุณเห็นคือข้อเท็จจริง ข้อเท็จจริงเหล่านี้มีกระบวนการพื้นฐานที่สร้างขึ้น กระบวนการเหล่านี้ถูกซ่อนอยู่ไม่ทราบว่าจะต้องมีการค้นพบ จากนั้นคำถามคือ: จากข้อเท็จจริงที่สังเกตได้ความเป็นไปได้ที่กระบวนการ P1 สร้างขึ้นจะเป็นอย่างไร โอกาสที่โพรเซส P2 สร้างมันคืออะไร? และอื่น ๆ ... หนึ่งในโอกาสเหล่านี้จะเป็นไปได้สูงสุด MLE เป็นฟังก์ชั่นที่ดึงความเป็นไปได้สูงสุด
คิดถึงการโยนเหรียญ เหรียญมีอคติ ไม่มีใครรู้ถึงระดับความลำเอียง มันอาจมีตั้งแต่ o (ทุกก้อย) ถึง 1 (ทุกหัว) เหรียญยุติธรรมจะ 0.5 (หัว / หางมีโอกาสเท่ากัน) เมื่อคุณทำการโยน 10 ครั้งและคุณสังเกตเห็น 7 หัวดังนั้น MLE คือระดับความลำเอียงซึ่งมีแนวโน้มที่จะสร้างความจริงที่สังเกตได้จาก 7 หัวในการโยน 10 ครั้ง