평신도의 관점에서 최대 가능성 추정 (MLE)에 대해 누구든지 자세히 설명 할 수 있습니까? 수학적 도출이나 방정식으로 가기 전에 기본 개념을 알고 싶습니다.
평신도의 관점에서 최대 가능성 추정 (MLE)에 대해 누구든지 자세히 설명 할 수 있습니까? 수학적 도출이나 방정식으로 가기 전에 기본 개념을 알고 싶습니다.
답변:
데이터가 있다고 가정 해보십시오. 데이터가 가우시안 (Gaussian)과 같은 분포에서 나온다고 가정 해 봅시다. 데이터가 올 수있는 무한한 수의 서로 다른 가우시안이 있습니다 (가우스 분포가 가질 수있는 무한한 수의 평균과 분산의 조합에 해당). MLE는 (의 정확한 의미 데이터와 "가장 일치"입니다 가우시안 (즉, 평균과 분산) 선택할 것입니다 일치는 아래 설명 참조).
따라서 의 데이터 세트가 있다고 가정하십시오 . 해당 데이터가 올 수있는 가장 일관된 가우시안의 평균은 3이고 분산은 16입니다. 다른 가우시안에서 샘플링되었을 수 있습니다. 그러나 평균이 3이고 분산이 16 인 것은 다음과 같은 의미에서 데이터와 가장 일치 합니다. 관찰 한 특정 값을 얻을 가능성은 다른 선택보다이 평균 및 분산 선택에서 더 큽니다.
회귀로 이동 : 평균이 상수 대신 평균은 회귀 방정식으로 지정된 데이터의 선형 함수입니다. 따라서 이전부터 와 함께 와 같은 데이터가 있다고 가정합니다 . 이 가우스 평균은 이제 적합 회귀 모형 . 여기서
GLM으로 이동 : 가우스를 다른 분포 (지수 계열의)로 대체합니다. 평균은 이제 회귀 방정식에 의해 지정된 것처럼 링크 함수에 의해 변환 된 데이터의 선형 함수입니다. 따라서 . 여기서 로짓 (이항 데이터 포함)입니다.
MLE (Maximum Likelihood Estimation)는 관측 된 데이터를 설명 하는 가장 가능성있는 기능 을 찾는 기술 입니다. 수학이 필요하다고 생각하지만 겁내지 마십시오!
평면 에 점들이 있고 데이터에 가장 적합한 함수 매개 변수 및 를 알고 싶다고 가정 해 봅시다 (이 경우에는 함수를 지정하도록 지정했기 때문에 함수를 알고 있습니다) 예, 그러나 나와 함께 견딜 수 있습니다).
data <- data.frame(x = runif(200, 1, 10))
data$y <- 0 + beta*data$x + rnorm(200, 0, sigma)
plot(data$x, data$y)
MLE를 수행하려면 함수 형태에 대해 가정해야합니다. 선형 모형에서 점은 평균 및 분산 : 정규 (가우스) 확률 분포를 따르는 것으로 가정합니다 . 이 확률 밀도 함수의 방정식은 다음과 같습니다.
우리가 찾으려는 것은 모든 점 확률을 최대화 하는 매개 변수 및 입니다 . 이것은 "가능성"함수입니다.
이것을 하여 R의 함수로 코딩 할 수 있습니다 .
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)
보시다시피이 표면 어딘가에 최대 지점이 있습니다. R의 내장 최적화 명령으로이 지점을 지정하는 매개 변수를 찾을 수 있습니다. 이것은 실제 매개 변수 을 발견하는 데 합리적으로 가깝습니다.
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) 추정치는 모수의 다른 가능한 값과 비교하여 실제 관측 된 데이터가 가장 가능성이 높은 모수의 값입니다.
아이디어는 0이 아닌 (아마도 작은) 확률로 실제로 관측 된 데이터로 이어질 수있는 많은 "true"매개 변수 값이 있다는 것입니다. 그러나 ML 추정치는 관측 된 데이터가 가장 높은 확률로 이어지는 매개 변수 값을 제공합니다.
실제로 데이터를 생성했을 가능성이 가장 큰 매개 변수의 값과 혼동해서는 안됩니다!
나는이 구분에 관한 Sober (2008, pp. 9-10)의 다음 구절을 좋아한다. 이 구절에서, 우리는 로 표시된 관측 된 데이터 와 로 가정 된 가설이 있습니다.H
"우도"는 기술 용어라는 것을 기억해야합니다. H, Pr (O | H)의 가능성과 H, Pr (H | O)의 사후 확률은 다른 양이며 다른 값을 가질 수 있습니다. H의 가능성은 O가 H에 부여 할 확률이 아니라 H가 O에 부여 할 확률입니다. 집의 다락방에서 소음이 들린다 고 가정합니다. 당신은 볼링에 그렘린이 있다는 가설을 고려합니다. 다락방에 그렘린 볼링이 있으면 아마도 소음이있을 것이므로이 가설의 가능성은 매우 높습니다. 그러나 확실히 당신은 소음 때문에 볼링에 그렘린이있을 가능성이 매우 높다고 생각하지 않습니다. 이 예에서 Pr (O | H)는 높고 Pr (H | O)는 낮습니다. 그렘린 가설은 (기술적 인 의미에서) 가능성은 높지만 확률은 낮습니다.
위의 예에서 ML은 그렘린 가설을 선호합니다. 이 특별한 코믹한 예에서는 분명히 나쁜 선택입니다. 그러나 더 현실적인 다른 많은 경우에 ML 추정치는 매우 합리적인 것일 수 있습니다.
참고
Sober, E. (2008). 증거와 진화 : 과학의 논리. 케임브리지 대학 출판부.
MLE는 관찰 한 데이터를 관찰 할 확률을 최대화하는 관심있는 매개 변수의 값입니다. 다시 말해, 관측 된 데이터가 관측 될 가능성이 가장 큰 것은 매개 변수의 값입니다.
이다 (많은) 수학을 사용하지 않고 무언가를 말할 수 있지만, 최대 우도의 실제 통계 애플리케이션을 위해 당신은 수학을해야합니다.
최대 우도 추정은 철학자들이 최선의 설명 또는 납치에 대한 추론 이라고 부르는 것과 관련이 있습니다. 우리는 이것을 항상 사용합니다! 최대 가능성 은 납치 라고 말하지는 않으며 , 그 용어는 훨씬 넓으며, 베이지안 추정의 일부 사례 (경험적 사전)도 아마도 납치로 보일 수 있습니다. http://plato.stanford.edu/entries/abduction/#Aca 에서 가져온 일부 예 참조 https://en.wikipedia.org/wiki/Abductive_reasoning (컴퓨터 과학에서 "abduction"은 확률 모델.)
또 다른 예 : 당신은 유치원에서 일하고, 언젠가 아이가 이상한 방식으로 걷기 시작하여 다리를 부러 뜨렸다 고 말합니다. 당신은 검사하고 잘못된 것을 발견합니다. 그런 다음 자녀가 설명 된대로 자주 행동하기 때문에 부모 중 한 명이 다리를 부러 뜨렸다는 것을 합리적으로 추론 할 수 있습니다. 이는 "최상의 설명에 대한 추론"과 (비공식적 인) 최대 가능성의 사례입니다. (물론, 그 설명이 잘못되었을 수도 있습니다. 확실하지는 않습니다. 납치 / 최대 가능성은 결론을 내릴 수 없습니다).
납치는 데이터에서 패턴을 찾은 다음 이러한 패턴을 가능하게 만들 수있는 가능한 이론을 검색하는 것입니다. 그런 다음 관찰 가능한 패턴을 최대한 가능하게하는 가능한 설명을 선택하는 것이 최대 가능성 일뿐입니다!
과학에서 납치의 주요 예는 진화 입니다. 진화를 의미하는 단 하나의 관측은 없지만 진화는 관측 된 패턴을 다른 설명보다 더 가능성이 높습니다.
또 다른 전형적인 예는 의학적 진단입니까? 관찰 가능한 증상 패턴을 가장 가능성이 높은 의학적 상태는 무엇입니까? 다시, 이것은 또한 최대 가능성입니다! 또는이 경우 베이지안 추정이 더 적합 할 수 있으므로 다양한 가능한 설명의 사전 확률을 고려해야합니다. 그러나 우리는 통계 모델의 자연스러운 한 부분으로 볼 수있는 실험 전과를 가질 수있다이 경우에는 전문적는, 그리고 우리가 전화 모델은 , 우리가 전화를 이전하는 것은 어떤 임의의 (*) 통계 규칙이다.
MLE에 대한 평신도 용어 설명에 대한 원래의 질문으로 돌아가려면, 간단한 예가 하나 있습니다. 6 살과 7 살인 딸들이이 질문을했습니다. 우리는 2 개의 항아리 (2 개의 신발 상자)를 만들었습니다. 하나는 검은 공 2 개, 빨간색 8 개, 다른 번호는 전환 된 숫자입니다. 그런 다음 항아리를 섞어서 무작위로 항아리를 그립니다. 그런 다음 우리는 그 항아리에서 무작위로 공 하나를 가져 왔습니다. 빨간색이었습니다.
그런 다음 물었다 : 당신은 어떤 항아리에서 빨간 공이 그려 졌다고 생각합니까? 1 초 정도 생각한 후, 그들은 (합창단에서) 대답했습니다 : 8 개의 빨간 공을 가진 사람으로부터!
나는 물었다 : 왜 그렇게 생각 하는가? 그리고 약 1 초 후에 다시 (인코 이어) 다시 : "그러므로 빨간 공을 그리는 것이 더 쉽습니다!". 즉, 더 쉬울수록 더 가능성이 높습니다 . 그것은 최대 가능성 (확률 모델을 작성하는 것은 쉬운 연습)이었으며, "최상의 설명에 대한 추론", 즉 납치입니다.
(*) 왜 "임의"라고 말합니까? 의학적 진단 문제를 계속하기 위해 환자는 의사가 이전에 보지 못한 상태를 진단하기가 어려운 사람이라고 말합니다. 그런 다음 환자와의 대화에서 그가 짧은 시간 전에 열대 아프리카의 어느 곳을 방문했을 때 발생합니다. 그것은 새로운 자료이지만, 전형적인 모델 (이러한 상황에서 사용되는, 공식적이든 비공식적이든)에 미치는 영향은 말라리아와 같은 열대성 질병이 이제 더 높아질 것이므로 어려운 설명을 미리 변경하는 것입니다. 사전 확률. 따라서 새로운 데이터 가 이전 의 분석에 들어갑니다 .
데이터가 알 수없는 매개 변수와 확률 분포에서 오는 경우 의 최대 우도 추정 당신이 실제로 가장 가능성이 관측 데이터를 만드는 것을입니다.θ
경우에 데이터가 확률 분포로부터 독립 샘플 인 경우, (주어진 값에 대한 우도 ()의 주어진 값에 대한 모든 관측 확률 함께 곱하여 ) - 단지 조인트 확률의 전체 샘플의. 그리고 최대 값 인 의 값은 최대 가능성 추정치입니다.θ θ
(데이터가 연속적인 경우 '확률'에 대해 '확률 밀도'를 읽습니다. 따라서 인치로 측정하면 밀도는 인치당 확률로 측정됩니다.)
게임을 해보자 : 나는 어두운 방에 있는데 아무도 내가 무엇을하는지 볼 수 없지만 (a) 주사위를 던져 '1'을 '성공'으로 계산하거나 (b) 동전을 던져 저는 머리 수를 '성공'으로 계산합니다.
내가 말했듯이 두 가지 중 하나를 볼 수는 없지만 하나의 정보 만 제공합니다. 주사위를 100 번 던지거나 동전을 100 번 던졌으며 17 번의 성공을 거두었다고합니다 .
문제는 내가 주사위를 던 졌는지 동전을 던 졌는지 추측하는 것입니다.
당신은 아마 주사위를 던졌다 고 대답 할 것입니다.
만약 당신이, 만약 당신이 100 개의 실험에서 17 번의 성공을 관찰한다면, 내가 동전을 던졌던 것보다 주사위를 던졌을 가능성이 더 높기 때문에 아마도 당신은 '가능성을 최대화함으로써 추측을했을 것입니다.
그래서 당신이 한 일은 100에서 17 번의 성공을 볼 가능성이 가장 높은 '성공 가능성'(주사위는 1/6, 동전은 1/2)의 가치를 취하는 것입니다. 주사위를 100 번 던질 때 '1'의 17 배가 될 확률은 100 번의 동전 던지기 중 17 개의 머리를 가질 확률보다 높습니다.
알 수없는 mean 정규 분포에서 나온 일부 데이터 있다고 가정 해보십시오 . 값이 무엇인지 알고 싶지만 그것을 달성하는 방법을 모릅니다. 당신이 할 수있는 한 가지 값을 시도 하고 그중 가장 좋은 것을 확인하는 것입니다. 그러나이를 위해서는 어떤 값이 "더 나은"값인지 확인하는 방법이 필요합니다. 우도 함수 을 사용하면 데이터가 제공 될 가능성이 가장 높은 값을 확인할 수 있습니다. 이를 위해 주어진 값 의 확률 함수 하에서 추정 된 데이터 포인트의 확률을 사용합니다 .
또는 로그 가능성 :
이 함수를 사용 하여 가능성을 최대화하는 값 , 즉 데이터가 가장 많은 값을 확인 합니다. 보시다시피, 이것은 확률의 곱 또는 로그 확률의 합 (로그 우도)으로 달성 할 수 있습니다. 이 예에서 는 정규 분포에 대한 확률 밀도 함수 이지만 접근 방식은 훨씬 더 복잡한 문제로 확장 될 수 있습니다.
실제로 추정 된 값을 가능성 함수에 플러그인하지 않고 관심있는 매개 변수의 최대 가능성 추정값을 제공하는 것으로 알려진 다른 통계적 접근법을 사용합니다. 문제에 따라 다양한 접근 방식이 있습니다. 일부는 간단하고 복잡합니다 ( 자세한 내용은 Wikipedia 를 확인 하십시오). 아래에서는 ML이 실제로 작동하는 방법에 대한 간단한 예를 제공합니다.
예
먼저 가짜 데이터를 생성합니다.
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
검은 선은 서로 다른 값에서 로그 우도 함수의 추정치를 보여줍니다 . 플롯 적색 라인은 마크 (실제로 정확하게 산술 평균과 동일 값 최우 추정기이다 의 ), 폭력 탐색와 추정 로그 우도 함수의 가장 높은 지점에서 알고리즘.optimize
이 예에서는 여러 방법을 사용하여 가능성 함수를 최대화하여 값의 "최상의"값을 찾는 값을 찾는 방법을 보여줍니다.
당신이 원하는대로, 나는 매우 순진한 용어를 사용할 것입니다. 일부 데이터를 수집하고 일부 확률 분포를 따르는 것으로 가정합니다. 그러나 일반적으로 그러한 표본에서 해당 분포의 모수를 모릅니다. 모수는 데이터에 대해 가정 한 확률 분포의 "인구 특성"입니다. 예를 들어, 음모 또는 사전 지식은 데이터가 정규 분포로 간주된다고 제안합니다. 평균과 분산은 정규 분포를 나타내는 두 개의 모수입니다. ,하자 파라미터들의 집합. 따라서 매개 변수 세트 주어지면 데이터 를 관측 할 수있는 합동 확률에 의해 주어진 .
가능성은 "데이터를 관찰 할 확률"이므로 조인트 pdf와 동일합니다 (이산 분포 조인트 pmf의 경우). 그러나 매개 변수 또는 의 함수로 표현됩니다 . 그래서이 특정 데이터에 대한 당신의 값을 찾을 수 있습니다 설정 있는 최대입니다. 즉, 이 특정 데이터 집합을 관찰 할 확률이 최대 인 를 찾을 수 있습니다. 따라서 "최대 가능성"이라는 용어가옵니다. 이제 이 최대화 되는 세트를 찾습니다 . 이 최대 인 를 최대 가능성 추정치라고합니다. θ L ( θ ) θ { μ , σ 2 } L { μ , σ 2 } L ( θ )
동전이 있다고 가정하십시오. 던지면 머리 나 꼬리가 생길 수 있습니다. 그러나 그것이 공정한 동전인지는 모릅니다. 그래서 당신은 그것을 1000 번 던졌습니다. 그것은 머리로 1000 번 나오고 결코 꼬리로 나타나지 않습니다.
자, 이것이 실제로 머리 / 꼬리에 대해 50/50의 기회를 가진 공정한 동전 일 가능성이 있지만, 그렇지 않은 것 같습니까? 공정한 동전을 1000 번 던질 수 있고 머리가 오지 않을 확률은 이며 실제로는 매우 작습니다.
MLE는 다음 과 같은 상황에서 최상의 결과 를 찾도록 도와줍니다. 결과가있을 때 해당 결과를 제공 할 가능성이 가장 큰 매개 변수 값을 파악하려고합니다. 여기서 우리는 2000 토스 중 2,000 머리가 - 그래서 우리는 무엇을 찾기 위해 MLE를 사용하는 것이 머리에 걸릴 확률이 최고 2,000 토스에서 2000 헤드를 받고 설명합니다합니다.
그것은의 최대 가능성 견적 . 현재보고있는 결과를 생성 했을 가능성 이 가장 높은 모수 (여기서는 확률 분포 함수)를 추정 합니다.
이 예를 마무리하기 위해 MLE을 취하면 2000 번의 헤드에서 2000 번의 헤드를 얻는 데 가장 적합한 헤드를 얻을 확률 이 됩니다.
MLE를 이해하는 방법은 다음과 같습니다. 자연이 원하는 것을 볼 수 있습니다. 당신이 보는 것은 사실입니다. 이러한 사실에는이를 생성 한 기본 프로세스가 있습니다. 이 프로세스는 숨겨져 있고 알려지지 않았으며 발견되어야합니다. 그렇다면 문제는 다음과 같습니다. 관찰 된 사실을 고려할 때 프로세스 P1이이를 생성했을 가능성은 무엇입니까? 프로세스 P2가 프로세스를 생성했을 가능성은 무엇입니까? 그리고 ... 이런 가능성 중 하나는 최대가 될 것입니다. MLE는 최대 가능성을 추출하는 함수입니다.
동전 던지기를 생각하십시오. 동전은 편향되어 있습니다. 편견의 정도를 아는 사람은 없습니다. o (모든 꼬리)에서 1 (모든 머리)까지 가능합니다. 공정한 코인은 0.5 (머리 / 꼬리도 동일하게)입니다. 10 번의 토스를하고 7 번의 헤드를 관찰하면 MLE는 10 번의 토스에서 7 번의 헤드를 관찰 할 가능성이 더 큰 편향입니다.