设样本
(
X
1
,
X
2
,
⋯
,
X
n
)
(X_1,X_2,\cdots,X_n)
(X1,X2,⋯,Xn)来自
X
X
X,
X
X
X的分布中含有
m
m
m个未知参数
θ
1
,
θ
2
,
⋯
,
θ
m
\theta_1,\theta_2,\cdots,\theta_m
θ1,θ2,⋯,θm。设
X
X
X存在直到
m
m
m阶的原点矩
E
(
X
)
,
E
(
X
2
)
,
⋯
,
E
(
X
m
)
E(X),E(X^2),\cdots,E(X^m)
E(X),E(X2),⋯,E(Xm)。显然,
E
(
X
k
)
=
μ
k
E(X^k)=\mu_k
E(Xk)=μk,仍然含有
m
m
m个参数
θ
1
,
θ
2
,
⋯
,
θ
m
\theta_1,\theta_2,\cdots,\theta_m
θ1,θ2,⋯,θm,记为
μ
k
(
θ
1
,
θ
2
,
⋯
,
θ
m
)
\mu_k(\theta_1,\theta_2,\cdots,\theta_m)
μk(θ1,θ2,⋯,θm),
k
=
1
,
2
,
⋯
,
m
k=1,2,\cdots,m
k=1,2,⋯,m。我们得到方程组
{
μ
1
=
μ
1
(
θ
1
,
θ
2
,
⋯
,
θ
m
)
μ
2
=
μ
2
(
θ
1
,
θ
2
,
⋯
,
θ
m
)
⋯
⋯
⋯
μ
m
=
μ
m
(
θ
1
,
θ
2
,
⋯
,
θ
m
)
\begin{cases}\mu_1=\mu_1(\theta_1,\theta_2,\cdots,\theta_m)\\ \mu_2=\mu_2(\theta_1,\theta_2,\cdots,\theta_m)\\ \cdots\quad\cdots\quad\cdots\\ \mu_m=\mu_m(\theta_1,\theta_2,\cdots,\theta_m)\end{cases}
⎩
⎨
⎧μ1=μ1(θ1,θ2,⋯,θm)μ2=μ2(θ1,θ2,⋯,θm)⋯⋯⋯μm=μm(θ1,θ2,⋯,θm)
解此方程组,并用样本的
k
k
k阶原点矩
A
k
=
1
n
∑
i
=
1
n
X
i
k
A_k=\frac{1}{n}\sum\limits_{i=1}^nX_i^k
Ak=n1i=1∑nXik代替总体
k
k
k阶原点矩
μ
k
\mu_k
μk,得到参数
θ
1
,
θ
2
,
⋯
,
θ
m
\theta_1,\theta_2,\cdots,\theta_m
θ1,θ2,⋯,θm的矩估计量
{
θ
∧
1
=
g
1
(
A
1
,
A
2
,
⋯
,
A
m
)
θ
∧
2
=
g
2
(
A
1
,
A
2
,
⋯
,
A
m
)
⋯
⋯
⋯
θ
∧
m
=
g
m
(
A
1
,
A
2
,
⋯
,
A
m
)
.
\begin{cases}\stackrel{\wedge}{\theta}_1=g_1(A_1,A_2,\cdots,A_m)\\ \stackrel{\wedge}{\theta}_2=g_2(A_1,A_2,\cdots,A_m)\\ \quad\cdots\quad\cdots\quad\cdots\\ \stackrel{\wedge}{\theta}_m=g_m(A_1,A_2,\cdots,A_m) \end{cases}.
⎩
⎨
⎧θ∧1=g1(A1,A2,⋯,Am)θ∧2=g2(A1,A2,⋯,Am)⋯⋯⋯θ∧m=gm(A1,A2,⋯,Am).
矩估计量的观测值称为矩估计值。
为计算参数的矩估计值,则可用样本数据数组x(numpy.array类对象)的mean函数计算样本1阶原点矩;若需要计算
k
k
k(
≥
2
\geq2
≥2)阶原点矩,则只需调用x**k的mean函数即可。
例1随机地取8只活塞环,测得它们的直径为(单位:mm):
74.001
,
74.005
,
74.003
,
74.001
,
74.000
,
73.998
,
74.006
,
74.002
74.001, 74.005, 74.003, 74.001, 74.000, 73.998, 74.006, 74.002
74.001,74.005,74.003,74.001,74.000,73.998,74.006,74.002
计算总体期望
μ
\mu
μ,方差
σ
2
\sigma^2
σ2的矩估计值,并计算样本方差值
s
2
s^2
s2。
解: 设总体为
X
X
X,由
σ
2
=
D
(
X
)
=
E
(
X
2
)
−
[
E
(
X
)
]
2
\sigma^2=D(X)=E(X^2)-[E(X)]^2
σ2=D(X)=E(X2)−[E(X)]2,得方程组
{
μ
=
E
(
X
)
=
A
1
σ
2
=
E
(
X
2
)
−
[
E
(
X
)
]
2
=
A
2
−
A
1
2
.
\begin{cases}\mu=E(X)=A_1\\\sigma^2=E(X^2)-[E(X)]^2=A_2-A_1^2\end{cases}.
{μ=E(X)=A1σ2=E(X2)−[E(X)]2=A2−A12.
下列代码计算本例中总体期望
μ
\mu
μ和方差
σ
2
\sigma^2
σ2的矩估计值,以及样本方差观测值
s
2
s^2
s2。
import numpy as np #导入numpy
x=np.array([74.001, 74.005, 74.003, 74.001, #样本观测值
74.000, 73.998, 74.006, 74.002])
a1=x.mean() #1阶样本原点矩
print('mu=%.4f'%a1) #总体均值的矩估计
a2=(x**2).mean() #2阶样本原点矩
print('sigma^2=%.5f'%(a2-a1**2)) #总体方差的矩估计
s2=x.var(ddof=1) #样本方差
print('s^2=%.4f'%s2)
程序的第2~3行设置样本观测值数据,记为x。第4行调用x的mean函数,计算样本均值,即样本1阶原点矩 A 1 A_1 A1,记为a1。第5行显示用 A 1 A_1 A1估计总体期望 μ \mu μ。第6行调用x**2(即 x 2 x^2 x2)的mean函数,计算2阶样本原点矩 A 2 A_2 A2,记为a2。第7行显示用样本原点矩表达式 A 2 − A 1 2 A_2-A_1^2 A2−A12估计总体方差 σ 2 \sigma^2 σ2。第8~9行调用x的var函数计算并输出样本方差。运行程序,输出
mu=74.0020
sigma^2=0.00001
s^2=0.00001
对于连续型总体,若知道其分布类型,scipy.stats提供的所有分布对象,均有函数fit_loc_scale,其调用接口为
fit_loc_scale(data)
\text{fit\_loc\_scale(data)}
fit_loc_scale(data)
该函数直接对参数data所传递的样本数据的1、2阶原点矩对该分布的参数loc和scale作矩估计。我们可以通过了解loc和scale与待估参数的关系,算出待估参数的估计值。例如,若总体
X
X
X~
U
(
a
,
b
)
U(a,b)
U(a,b),scipy.stats表示均匀分布的uniform对象的参数loc对应分布参数
a
a
a,scale参数对应分布参数
a
a
a与
b
b
b的差
b
−
a
b-a
b−a。则loc的估计值就是
a
a
a的矩估计值,scale+loc的估计值就是
b
b
b的估计值。
例2 设总体
X
X
X~
U
(
a
,
b
)
U(a, b)
U(a,b),
a
a
a和
b
b
b未知。来自
X
X
X的,容量
n
=
20
n=20
n=20的样本观测值为
1.248
,
1.664
,
1.101
,
1.967
,
1.468
,
1.140
,
1.434
,
1.063
,
1.878
,
1.375
1.819
,
1.704
,
1.328
,
1.619
,
1.830
,
1.764
,
1.034
,
1.553
,
1.878
,
1.166
1.248,1.664,1.101,1.967,1.468,1.140,1.434,1.063,1.878,1.375\\ 1.819,1.704,1.328,1.619,1.830,1.764,1.034,1.553,1.878,1.166
1.248,1.664,1.101,1.967,1.468,1.140,1.434,1.063,1.878,1.3751.819,1.704,1.328,1.619,1.830,1.764,1.034,1.553,1.878,1.166
试计算
a
a
a和
b
b
b的矩估计值。
解: 下列代码完成本利计算。
import numpy as np #导入numpy
from scipy.stats import uniform #导入uniform
x=np.array([1.248, 1.664 ,1.101 ,1.967 ,1.468, #设置样本数据数组
1.140, 1.434, 1.063, 1.878, 1.375,
1.819, 1.704, 1.328, 1.619, 1.830,
1.764, 1.034, 1.553, 1.878, 1.166])
l, s=uniform.fit_loc_scale(x) #均匀分布参数loc,scale的矩估计
a=l #a的矩估计
b=a+s #b的矩估计
print('用样本矩估计a=%.4f, b=%.4f'%(a, b))
注意程序中第7行调用uniform对象的fit_loc_scale函数,用数据数组计算表示均匀分布的uniform对象的属性参数loc和scale的矩估计值l和s。根据loc和scale与均匀分布的参数 a a a和 b b b的关系,第8行和第9行分别计算出 a a a和 b b b的矩估计值。运行程序,输出
用样本矩估计a=0.9832, b=2.0201
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》