在統計學中,最大似然估計,也稱爲最大概似估計,是用來估計一個概率模型的參數的一種方法。
預備知識
概率密度函數
簡單講,就是一個概率分佈在某一取值下對應的概率值。用維基百科的話來講就是【在數學中,連續型隨機變量的概率密度函數(在不至於混淆時可以簡稱爲密度函數)是一個描述這個隨機變量的輸出值,在某個確定的取值點附近的可能性的函數。】以大家最爲常見的正態分佈函數爲例~其概率分佈函數爲:
標準正態分佈爲:
函數如圖:
這裏寫圖片描述
似然函數
在數理統計學中,似然函數是一種關於統計模型中的參數的函數,表示模型參數中的似然性。“似然性”與“或然性”或“概率”意思相近,都是指某種事件發生的可能性,但是在統計學中,“似然性”和“或然性”或“概率”又有明確的區分。概率用於在已知一些參數的情況下,預測接下來的觀測所得到的結果,而似然性則是用於在已知某些觀測所得到的結果時,對有關事物的性質的參數進行估計。
例如在已知某個參數
根據貝葉斯定理:
因此,我們可以反過來構造表示似然性的方法:已知有事件A發生,運用似然函數
極大似然估計原理
根據頻率主義學派認爲已知一個分佈,雖然不知道分佈的具體參數,但是卻客觀上存在固定的參數值。因此可以通過一些準則來確定參數值。這裏介紹的極大似然估計就是一種根據採樣來估計概率分佈參數的經典方法。
最大似然估計會尋找關於
現在我們的工作就是最大化似然函數:
根據大數定律,當訓練集包含充足的獨立同分布 樣本的時候,
現在我們需要根據所有可能
分別對
編程驗證
下面通過python 3.5 + numpy 驗證上述的證明過程,還是以正態分佈爲例。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
mu = 30 # mean of distribution
sigma = 2 # standard deviation of distribution
x = mu + sigma * np.random.randn(10000)
def mle(x):
"""
極大似然估計
:param x:
:return:
"""
u = np.mean(x)
return u, np.sqrt(np.dot(x - u, (x - u).T) / x.shape[0])
print(mle(x))
num_bins = 100
plt.hist(x, num_bins)
plt.show()