稳健性估计—— M 估计

Posted zhuo木鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了稳健性估计—— M 估计相关的知识,希望对你有一定的参考价值。

M 估计法,估计均值

M 估计法算均值的原理在于求解下述方程:
ave [ f ( x i − T n S n ) ] = 0 \\text{ave}[ f(\\frac{x_i-T_n}{S_n})] = 0 ave[f(SnxiTn)]=0
其中 T n T_n Tn 是对均值的估计值(方程的解即为 M 算法估计均值的结果), S n S_n Sn 为对方差平方根(标准差)的估计。

对于小样本来说( n ∈ [ 4 , 8 ] n\\in[4, 8] n[4,8]), S n S_n Sn 取 MAD,即:
MAD n ( X ) = 1.4826 × med n ( ∣ x i − med n ( X ) ∣ ) \\text{MAD}_n(X) = 1.4826 \\times \\text{med}_n (|x_i - \\text{med}_n(X)|) MADn(X)=1.4826×medn(ximedn(X))
对于上述方程,函数在小样本 n ∈ [ 4 , 8 ] n\\in[4,8] n[4,8]来说,函数一般取 pshi 函数,如下:

ψ l o g ( x ) = e x − 1 e x + 1 \\psi_{log}(x) = \\frac{e^x-1}{e^x+1} ψlog(x)=ex+1ex1
图像为:
在这里插入图片描述

若取 sigmoid 函数,则上述方程是没有代数解的,所以需要算数值解,这里用的方法是牛顿法,取 T n T_n Tn 的初始值为中位数,迭代方法为:
T n ( k ) = T n ( k − 1 ) + S n ave ⁡ i = 1 n ψ ( ( x i − T n ( k − 1 ) ) / S n ) ave ⁡ i = 1 n ψ ′ ( ( x i − T n ( k − 1 ) ) / S n ) T_{n}^{(k)}=T_{n}^{(k-1)}+S_{n} \\frac{\\operatorname{ave}_{i=1}^{n} \\psi\\left(\\left(x_{i}-T_{n}^{(k-1)}\\right) / S_{n}\\right)}{\\operatorname{ave}_{i=1}^{n} \\psi^{\\prime}\\left(\\left(x_{i}-T_{n}^{(k-1)}\\right) / S_{n}\\right)} Tn(k)=Tn(k1)+Snavei=1nψ((xiTn(k1))/Sn)avei=1nψ((xiTn(k1))/Sn)
直到收敛,即求出估计值。

我们用 x = np.random.normal(5, 1, 8) 产生 8 个从正态分布去除的数:
在这里插入图片描述

藉由上述 M 估计算法,可以算出均值为:5.00382727784989

M 估计法,估计方差平方根

M 估计方算方差平方根是用下述方程的解来表示的:
ave [ ρ ( x i − T n S n ) ] = β \\text{ave}[ \\rho (\\frac{x_i-T_n}{S_n})] = \\beta ave[ρ(SnxiTn)]=β
其中,在小样本时( n ∈ [ 4 , 8 ] n\\in[4,8] n[4,8]),一般取 T n T_n Tn 为中位数, ρ \\rho ρ 为:
ρ ( x ) = f 2 ( x 0.3739 ) \\rho(x) = f^2(\\frac{x}{0.3739}) ρ(x)=f2(0.3739x)
ρ \\rho ρ 函数的图像如下:
在这里插入图片描述

函数 f f f上文,而 β \\beta β 取值为 ∫ ρ ( u ) d Φ ( u ) \\int \\rho(u)d\\Phi(u) ρ(u)dΦ(u) Φ ( u ) \\Phi(u) Φ(u) 为标准正态分布的分布函数。很明显,上述方程没有代数解,故需要用牛顿法求解,设数值解(牛顿法)的初始值为 S n = M A D ( X ) S_n=MAD(X) Sn=MAD(X),MAD 的求解见上。

牛顿法的每一次迭代为:
S n ( k ) = S n ( k − 1 ) 2 ave  [ ρ ( ( x i − T n ) / S n ( k − 1 ) ) ] S_{n}^{(k)}=S_{n}^{(k-1)} \\sqrt{2 \\text{ave } [ \\rho \\left(\\left(x_{i}-T_{n}\\right) / S_{n}^{(k-1)}\\right)]} Sn(k)=Sn(k1)2ave [ρ((xiTn)/Sn(k1))]

设置收敛的允差条件为:1e-6,产生 8 个正态分布数据(方差为 3,也即标准差为 1.732),可得:
在这里插入图片描述

运行算法,可以估计出均值和标准差分别为:3.62、1.62。(还是蛮准的嘛)

以上是关于稳健性估计—— M 估计的主要内容,如果未能解决你的问题,请参考以下文章

稳健估计

稳健估计的可靠性分析

稳健估计的可靠性分析

运行以下代码时出现错误(找到暗淡 3 的数组。预计估计器 <= 2)

Hampel 估计稳健均值——理论和Python实现

R语言用于线性回归的稳健方差估计