極大似然估計法是求點估計的一種方法,最早由高斯提出,后來費歇爾(Fisher)在1912年重新提出。它屬於數理統計的范疇。
大學期間我們都學過概率論和數理統計這門課程。
概率論和數理統計是互逆的過程。概率論可以看成是由因推果,數理統計則是由果溯因。
用兩個簡單的例子來說明它們之間的區別。
由因推果(概率論)
例1:設有一枚骰子,2面標記的是“正”,4面標記的是“反”。共投擲10次,問:5次“正”面朝上的概率?
解:記 “正面”朝上為事件A,正面朝上的次數為x。
由題意可知 :
更一般的有:
例2: 設有一枚骰子,其中“正面”所占的比例為ω ω 。共投擲n n 次,問:k k 次“正”面朝上的概率?
解:記 “正面”朝上為事件A,正面朝上的次數為x。
有題意可知:
例3:設有一枚骰子,做了n n 次實驗,其中k k 次“正面”朝上。問:這枚骰子中,“正面”所占的比例ω ω 是多少?
在例2中,因為我們對骰子模型了解的很透徹,即知道這類實驗中ω ω 的具體數值。因此可以預測某一事件發生的概率。
在例3中,我們並不能完全了解模型精確參數。我們需要通過實驗結果來估計模型參數。也就是由果溯因(數理統計)。
總結來看如下:
例2 | 已知 ω | 求事件發生的 k 次的概率 |
---|---|---|
例3 | 已知事件發生了 k 次 | 估計 ω |
Giving ω |
Calculate the probability distribution of random variable | |
---|---|---|
LF | Giving random variable | Calculate the the probability distribution of ω |
由於事件發生的概率越大,就越容易發生。所以例3可理解為:ω是多大時,k次“正面”朝上發生的概率最大?
計算的時候,對表達式求最大值,得到參數值估計值。
這就是極大似然估計方法的原理:用使概率達到最大的那個ω ^ ω^ 來估計未知參數ω。
這也把一個參數估計問題轉化為一個最優化問題。
此外,我們甚至不知道一個系統的模型是什么。因此在參數估計前,先按照一定的原則選擇系統模型,再估計模型中的參數。本文為了簡單,模型設定為伯努利模型。
以上是對極大似然估計方法理論上的介紹,接下來介紹計算方法。
計算方法
為了表述規范,引入
概率密度函數:
通過調換“實驗結果 ”與“模型參數
”的位置有 似然函數:
通過例4 介紹概率密度函數與似然函數之間的區別:
例4.1 設有一枚骰子,1面標記的是“正”,4面標記的是“反”。共投擲10次,設“正面”的次數為k,求k的概率密度函數。
解:
從圖中可以看出,“正面”次數為2的概率最大。它是關於k的函數。
例4.2 設有一枚骰子。共投擲10次,“正面”的次數為2,求“正面”所占的比例,即ω的值。
似然函數:
因此概率密度函數是指 在參數已知的情況下,隨機變量的概率分布情況。
似然函數是指 在隨機變量已知的情況下,參數取值的概率分布情況。
例5:設有一枚骰子,做了10次實驗,其中3次“正面”朝上。問:這枚骰子中,“正面”所占的比例是多少?
解:
我們根據極大似然估計方法的原理:用使概率達到最大的那個ω ̂來估計未知參數ω
對於簡單的連續函數,求最大值的方法為:函數表達式一階導數等於0,二階導數小於0。
為了計算簡單,對上式兩邊取對數:
一階條件:
將(2)式對ω求偏導數(導數):
令(3)式為0,解得ω=0.3
二階條件:
因此 ω=0.3時,(1)式取得最大值。根據極大似然估計理論,“正面”所占的比例為0.3
例6:設有一枚神奇的骰子,“正面”所占的比例為。t代表實驗時間點。
已知:在t i =1,3,6,9,12,18共6個時刻做實驗,每個時刻做n=100次實驗。“正面”朝上的次數分別為:x i =94,77,40,26,24,16
求:參數ω=(ω 1 ,ω 2 )>0 的估計值,。
解:
求出“正面”朝上的概率密度函數:
似然函數:
對於這樣一個復雜的非線性約束優化問題,利用求導的方式不再可行。可借助matlab進行計算。
###代碼如下: function f = objfun( x )
f = -(94*log(x(1)*exp(-x(2)*1))+6*log(1-(x(1)*exp(-x(2)*1))) + ...
77*log(x(1)*exp(-x(2)*3))+23*log(1-(x(1)*exp(-x(2)*3))) + ...
40*log(x(1)*exp(-x(2)*6))+60*log(1-(x(1)*exp(-x(2)*6))) + ...
26*log(x(1)*exp(-x(2)*9))+74*log(1-(x(1)*exp(-x(2)*9))) + ...
24*log(x(1)*exp(-x(2)*12))+76*log(1-(x(1)*exp(-x(2)*12))) + ...
16*log(x(1)*exp(-x(2)*18))+84*log(1-(x(1)*exp(-x(2)*18))));
end
sample5.m
x0 = [0.1,0.1]; %給定初值
lb = [0,0]; %給定下限
ub = []; %給定上限
[x,fval] = fmincon(@objfun,x0,[],[],[],[],lb,ub)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
解得:
x =
1.070111883136768 0.130825782195123
fval =
3.053055671586732e+02
本筆記參考https://blog.csdn.net/chenjianbo88/article/details/52398181
https://blog.csdn.net/saltriver/article/details/63681339
及李航的《統計學方法》第一章