平均数与标准方差
这两个数学概念大家都耳熟能详,九年义务教育都涵盖的内容.
假设有数组x, x1,x2,x3…xn, N 为数组的个数
公式如下:
μ
=
Σ
x
N
σ
=
Σ
(
x
−
μ
)
2
N
\mu = \frac{\Sigma x} {N} \newline \newline \sigma = \frac{\Sigma (x-\mu)^2} {N}
μ=NΣxσ=NΣ(x−μ)2
它也叫做一阶矩和二阶矩
高阶矩
三阶矩和四阶矩公式如下:
3
r
d
m
o
m
e
n
t
=
1
N
Σ
(
x
−
μ
)
3
σ
3
4
t
h
m
o
m
e
n
t
=
1
N
Σ
(
x
−
μ
)
4
σ
4
3rdmoment = \frac {1} {N} \frac{\Sigma (x-\mu)^3} {\sigma^3} \newline \newline 4thmoment = \frac {1} {N} \frac{\Sigma (x-\mu)^4} {\sigma^4}
3rdmoment=N1σ3Σ(x−μ)34thmoment=N1σ4Σ(x−μ)4
其中
μ
\mu
μ为一阶矩,
σ
\sigma
σ为二阶矩
采样评估
很多时候,我们是无法全部统计所有数据的,所以x大多数为我们的采样数据。
此时的N也可能无法确认,我们只能确认的是采样个数n。
所以针对于采样的一阶到四阶的矩的公式如下:
1
s
t
m
o
m
e
n
t
=
Σ
x
n
2
n
d
m
o
m
e
n
t
=
Σ
(
x
−
x
ˉ
)
2
n
−
1
3
r
d
m
o
m
e
n
t
=
n
(
n
−
1
)
(
n
−
2
)
Σ
(
x
−
x
ˉ
)
3
s
3
4
t
h
m
o
m
e
n
t
=
n
(
n
+
1
)
(
n
−
1
)
(
n
−
2
)
(
n
−
3
)
Σ
(
x
−
x
ˉ
)
4
s
4
−
3
(
n
−
1
)
2
(
n
−
2
)
(
n
−
3
)
1stmoment = \frac{\Sigma x} {n} \newline \newline 2ndmoment = \frac{\Sigma (x-\bar x)^2} {n-1} \newline \newline 3rdmoment = \frac {n} {(n-1)(n-2)} \frac{\Sigma (x- \bar x)^3} {s^3} \newline \newline 4thmoment = \frac {n(n+1)} {(n-1)(n-2)(n-3)} \frac{\Sigma (x- \bar x)^4} {s^4} - \frac {3(n-1)^2} {(n-2)(n-3)}
1stmoment=nΣx2ndmoment=n−1Σ(x−xˉ)23rdmoment=(n−1)(n−2)ns3Σ(x−xˉ)34thmoment=(n−1)(n−2)(n−3)n(n+1)s4Σ(x−xˉ)4−(n−2)(n−3)3(n−1)2
其中 x ˉ 是 采 样 数 据 的 平 均 值 \bar x是采样数据的平均值 xˉ是采样数据的平均值, s s s为采样数据的标准差
样例代码
以python为实例代码
import numpy as np
def cal_moments(y, N):
mu = np.mean(y)
sigma = np.var(y)
m2 = np.sum((y - mu)**2)/(N-1)
m3 = np.sum((y - mu)**3)*N/((N-1)*(N-2)*(sigma**3))
m4 = np.sum((y - mu)**4)*N*(N+1)/((N-1)*(N-2)*(N-3)*(sigma**4))-(3*(N-1)**2)/((N-2)*(N-3))
print(mu, m2, m3, m4)
print(sigma)
N= 2000
x = np.arange(0,N)
y = np.random.randn(N)
cal_moments(y, N)
计算结果
注:numpy里var计算的总体的方差,所以有如下等式
np.var(y) = np.sum((y - mu)**2)/(N)
, 所以在上诉例子中sigma计算结果跟m2是略有差异的,这个差异就体现在分母减1上。