誰もが素人の言葉で最尤推定(MLE)について詳しく説明してもらえますか?数学的導出または方程式に入る前に、基礎となる概念を知りたいと思います。
誰もが素人の言葉で最尤推定(MLE)について詳しく説明してもらえますか?数学的導出または方程式に入る前に、基礎となる概念を知りたいと思います。
回答:
データがあるとします。データが何らかの分布(おそらくはガウス分布)からのものであると仮定したいとします。データの元になる可能性のある無限の数の異なるガウス分布があります(ガウス分布が持つことができる無限の数の平均と分散の組み合わせに対応します)。MLEは、データと「最も一貫性のある」ガウス分布(平均と分散)を選択します(一貫性の正確な意味については、以下で説明します)。
したがって、データセットがあるとします。そのデータが得られる可能性のある最も一貫性のあるガウスは、平均が3、分散が16です。他のガウスからサンプリングされた可能性があります。ただし、平均が3で分散が16であるものは、次の意味でデータと最も整合性があります。観察した特定の値を取得する確率は、この平均と分散の選択の方が他の選択よりも大きくなります。Y
回帰への移行:平均が定数である代わりに、平均は回帰方程式で指定されたデータの線形関数です。したがって、ようなデータと以前のがあるとしましょう。そのガウス分布の平均は、近似回帰モデルになりました。ここで、 β β = [ - 1.9 、0.9 ]
GLMへの移行: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)
MLEを実行するには、関数の形式について仮定する必要があります。線形モデルでは、点は平均および分散正規(ガウス)確率分布に従うと仮定します: 。この確率密度関数の式は次のとおりです。σ 2 Y = N(X β 、σ 2)1
見つけたいのは、すべての点についてこの確率を最大化するパラメーターおよびです。これは「尤度」関数、
これを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
(あなたが4次元でプロットするRパッケージの知っている限り!)、私はかなり表面プロットを表示しませんでした
パラメーターの最尤(ML)推定値は、実際に観測されたデータが最も可能性が高いパラメーターの値であり、パラメーターの他の可能な値と比較しています。
その考えは、実際の観測データにゼロ以外の(おそらく小さな)確率でつながる可能性のある「真の」パラメーター値がいくつもあるということです。ただし、ML推定では、観測データに最も高い確率でつながるパラメーター値が提供されます。
これは、実際にデータを生成した可能性が最も高いパラメーターの値と混同しないでください!
この区別について、Sober(2008、pp。9-10)からの次の文章が好きです。この文章では、で示される観測データと示される仮説があります。H
「可能性」は専門用語であることを覚えておく必要があります。Hの尤度Pr(O | H)とHの事後確率Pr(H | O)は異なる量であり、異なる値を持つことができます。Hの可能性は、HがOに与える確率ではなく、HがOに与える確率です。家の屋根裏部屋からノイズが聞こえるとします。あなたはボウリングにグレムリンがあるという仮説を考えます。屋根裏部屋でグレムリンがボウリングしている場合は、おそらくノイズがあるため、この仮説の可能性は非常に高いです。確かに、ボウリングにグレムリンが存在する可能性が非常に高いとノイズが考えているとは思わないでしょう。この例では、Pr(O | H)は高く、Pr(H | O)は低くなっています。グレムリンの仮説は(技術的な意味で)高い可能性を持ちますが、低い確率を持ちます。
上記の例では、MLはグレムリン仮説を支持します。この特定のコミカルな例では、明らかに悪い選択です。しかし、他の多くのより現実的なケースでは、MLの推定値は非常に合理的なものかもしれません。
参照
Sober、E.(2008)。証拠と進化:科学の背後にある論理。ケンブリッジ大学出版局。
MLEは、観測したデータを観測する確率を最大化する対象のパラメーターの値です。言い換えれば、観測されたデータが観測された可能性が最も高いのは、パラメーターの値です。
ある(多くの)数学を使用せずに何かを言うすることができますが、最大尤度の実際の統計的な用途のために、あなたは数学を必要とします。
最尤推定は、哲学者が最良の説明または誘duction に対する推論と呼ぶものに関連しています。いつもこれを使用しています!最尤法は duction致であるとは言いません。その用語ははるかに広く、ベイジアン推定のいくつかのケース(経験的事前確率を含む)もおそらくprobably致と見なすことができます。http://plato.stanford.edu/entries/abduction/#Acaから取られたいくつかの例 https://en.wikipedia.org/wiki/Abductive_reasoning も参照して ください (コンピューターサイエンスでは、「誘duction」は-確率モデル。)
別の例:幼稚園で働いていて、ある日、子供が奇妙な方法で歩き始め、足を骨折したと言ったとします。調べて、何も間違っていないことを見つけます。次に、子供はしばしば説明されているように動作するため、両親の1人が足を骨折したと合理的に推測できます。これは「最良の説明への推論」であり、(非公式)最尤の例です。(そして、もちろん、説明が間違っているかもしれない、それはたぶん、確かではない。.致/最大尤度は確実な結論を与えることができない)。
アブダクションとは、データ内のパターンを見つけ、それらのパターンの可能性を高める可能性のある理論を検索することです。そして、観察されたパターンを最大限に可能にする可能な説明を選択することは、まさに最尤です!
科学における誘ductionの主な例は進化です。進化を意味する単一の観測はありませんが、進化により、観測されたパターンは他の説明よりも可能性が高くなります。
別の典型的な例は医療診断ですか?どの可能な医学的状態が、症状の観察されたパターンを最も可能性が高いものにしますか?繰り返しますが、これも最尤法です!(または、この場合、ベイジアン推定がより適している可能性があります。さまざまな説明の事前確率を考慮する必要があります)。しかし、それは専門的で、この場合には、我々は経験的統計モデルの自然の一部として見ることができる事前分布、および私たちが呼び出すことができモデルを、私たちが呼ぶ前には、いくつかの(*)は任意の統計的な慣例です。
MLEの素人用語の説明に関する元の質問に戻るために、ここに1つの簡単な例を示します。6歳と7歳の娘がいるとき、私は彼らにこれを尋ねました。私たちは2つのur(2つの靴箱)を作り、1つには2つの黒いボール、8つは赤いボール、もう1つには入れ替わる数字を入れました。次に、urを混ぜて、ランダムに1つのurを描きます。次に、その骨urからランダムに1つのボールを取りました。赤だった。
それから私は尋ねた:どのボールから赤いボールが引かれたと思いますか?約1秒考えた後、彼らは(合唱団で)答えました:8つの赤いボールを持つものから!
それから私は尋ねた:なぜあなたはそう思いますか?そして、再び、約1秒後(再びインコワール):「そのため、赤いボールを描く方が簡単だから!」つまり、easy = more probableです。それは最尤法であり(確率モデルを作成するのは簡単です)、それは「最良の説明への推論」、つまり、致です。
(*)なぜ「任意」と言うのですか?医学的診断の問題を継続するために、患者は、医師が以前に見なかった状態を診断するのにいくらか困難な人だと言います。次に、患者との話し合いの中で、彼が少し前に熱帯アフリカのどこかを訪れたことが起こります。これは新しいデータですが、典型的なモデル(この種の状況で、公式または非公式に使用される)でのその効果は、マラリアのような熱帯病がより高くなるので、難しい説明の前を変更することです事前確率。したがって、新しいデータは前の分析に入力されます。
(データが連続して読み取られる場合、「確率」から「確率密度」を読み取ります。したがって、インチで測定される場合、密度はインチあたりの確率で測定されます。)
ゲームをプレイしましょう:私は暗い部屋にいます、誰も私が何をするのか見ることができませんが、あなたは(a)サイコロを投げて「1」の数を「成功」として数えるか、(b)コインを投げる頭の数を「成功」として数えます。
私が言ったように、あなたは私が2つのうちどちらをするのかわかりませんが、私はあなたに1つだけの情報を与えます:私はあなたが100回サイコロを投げたか、100回コインを投げ、17回成功したことを伝えます。
問題は、私がサイコロを投げたか、コインを投げたかどうかを推測することです。
あなたはおそらく私がサイコロを投げたと答えるでしょう。
もしそうなら、おそらく100回の実験のうち17回の成功を観察した場合、コインを投げたよりもサイコロを投げた可能性が高いので、おそらく「可能性を最大化することで推測した」でしょう。
したがって、あなたがしたことは、「成功の確率」(サイコロの場合は1/6、コインの場合は1/2)の値を取得することです。サイコロを100回投げて「1」を17倍にするチャンスは、コインを100回投げて17回投げるチャンスよりも高くなります。
または対数尤度:
例
まず、いくつかの偽データを生成します。
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で最も基本的なものの1つは次のとおりです。optimize
optimize(llik, interval=c(-6, 6), maximum=TRUE)$maximum
この例では、複数のアプローチを使用して、尤度関数を最大化する値を見つけ、パラメーターの「最良」値を見つける方法を示します。
コインを持っているとします。それを投げると、頭か尾のどちらかを与えることができます。しかし、それが公正なコインかどうかはわかりません。1000回投げます。それは頭として1000回現れ、決して尾として現れません。
MLEは、このような状況で最良の説明を見つけるのを支援しようとします-何らかの結果があり、その結果をもたらす可能性が最も高いパラメーターの値を把握したい場合。ここでは、2000のトスから2000の頭があります。したがって、MLEを使用して、頭を取得する確率が2000のトスから2000の頭を取得することを説明します。
これは最尤推定量です。現在見ている結果を生成した可能性が最も高いパラメーター(ここでは、確率分布関数)を推定します。
私がMLEを理解する方法は次のとおりです。あなたは、自然が見たいものだけを見ることができます。あなたが見るものは事実です。これらのファクトには、それを生成した基本的なプロセスがあります。これらのプロセスは隠されており、不明であり、発見する必要があります。質問は次のとおりです。観察された事実を考えると、プロセスP1がそれを生成した可能性はどのくらいですか?プロセスP2が生成した可能性はどのくらいですか?など...これらの可能性の1つはすべて最大になるでしょう。MLEは、最大尤度を抽出する関数です。
コイントスを考えてください。コインは偏っています。バイアスの程度は誰にもわかりません。o(すべての尾)から1(すべての頭)までの範囲で指定できます。公正なコインは0.5(頭/尾も同様)です。10回のトスを行い、7つのヘッドを観察すると、MLEは10回のトスで7つのヘッドの観察された事実を生成する可能性が高いバイアスの程度です。