最大似然估计(MLE)的一些公式与定理(python实践)

单参的情况

给定观察集 D=(F i ,e i )  ,估计真实的 F true  

P(D i |F true )=12πe 2 i  − − − −    exp[(F i F true ) 2 2e 2 i   ] 

P(D i |F true )  这一条件概率(conditional probability)称为给定 F true   (参数)下的样本 D i   发生的概率,根据上述等式其等于以 F true   为均值,以 e i   为标准差的正太分布。

在整个数据集 D  (或者the entire set of measurements,观察集)上,构建似然函数( likelihood function  ):

L(D|F true )= i=1 N P(D i |F true )= i=1 N 12πe 2 i  − − − −    exp[12 (F i F true ) 2 2e 2 i   ] 

为简化计算,对数形式,也即对数似然(log_likelihood function)如下:

logL=12  i=1 N [log(2πe 2 i )+(F i F true ) 2 2e 2 i   ] 

等式两边对 F true   求偏导, dLdF true  =0 

F est =w i F i w i  =w T Fw  1   w i =1e 2 i  σ est =( i=1 N w i ) 1/2  

e i   相等时:

F est = N i=1 F i N  

def log_likelihood(theta, F, e):
    return -.5*np.sum(np.log(2*np.pi*e**2)+(F-theta[0])**2/(e**2))

双参的情况

F true 12πσ 2  − − − −    exp[12 (Fμ) 2 σ 2   ] 

构建似然函数:

L(D|θ)= i=1 N 12π(σ 2 +e 2 i ) − − − − − − − − − −    exp[12 (F i μ) 2 σ 2 +e 2 i   ] 

同理,对数似然形式为:

logL(D|θ)=12 [log(2π(σ 2 +e 2 i ))+(F i μ) 2 σ 2 +e 2 i   ] 

接下来的处理和单参的情况类似(取对数,求关于 μ  σ  的偏导,置0,解析解(analytical solution,closed form solution))。

μ est =w i F i w i  w i =1σ 2 +e 2 i   

def log_likelihood(theta, F, e):
    return -.5*np.sum(np.log(2*np.pi*(theta[1]**2+e**2))+(F-theta[0])**2/(theta[1]**2+e**2))

此时,我们可以使用scipy下的最优化函数,一般是最小化目标函数(objective function),所以:

from scipy import optimize

def neg_log_likelihood(theta, F, e):
    return -log_likelihood(theta, F, e)

theta_gauss = [900, 5]
theta_est = optimize.fmin(func=neg_log_likelihood, x0=theta_gauss, args=(F, e))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值