数理统计概念
问题一 为什么可以用样本分布来估计总体?
中心极限定理:
(1)样本平均值约等于总体平均值;
(2)不管总体是什么分别,任意一个总体的样本平均值都会围绕在总体的平均值周围,并且呈现正态分布。
一般来说,样本量越大,越逼近对总体的模拟。那么多少的样本量比较合适?
如果抽样足够随机,一般30以上。
用Python来模拟样本分布看一看,取样本量为3、5、10、30、100、1000。
(参考https://blog.csdn.net/lilongsy/article/details/87355304)
import numpy as np
from numpy import random as nprd
def sampling(N):
## 产生一组样本,以0.5的概率为z+3,0.5的概率为z-3,其中z~N(0,1)
d=nprd.rand(N)<0.5
z=nprd.randn(N)
x=np.array([z[i]+3 if d[i] else z[i]-3 for i in range(N)])
return x
N=[3,5,10,30,100,1000] # sample size
M=2000
MEANS=[]
for n in N:
mean_x=np.zeros(M)
for i in range(M):
x=sampling(n)
mean_x[i]=np.mean(x)/np.sqrt(10/n) ## 标准化,因为var(x)=10
MEANS.append(mean_x)
## 导入matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
## 使图形直接插入到jupyter中
# %matplotlib inline
# 设定图像大小
plt.rcParams['figure.figsize'] = (10.0, 8.0)
x=sampling(1000)
plt.xlabel('x')
plt.ylabel('Density')
plt.title('Histogram of Mixed Normal')
plt.hist(x,bins=30,normed=1) ## histgram
plt.show() ## 画图
## 均值
ax1 = plt.subplot(2,3,1)
ax2 = plt.subplot(2,3,2)
ax3 = plt.subplot(2,3,3)
ax4 = plt.subplot(2,3,4)
ax5 = plt.subplot(2,3,5)
ax6 = plt.subplot(2,3,6)
## normal density
x=np.linspace(-3,3,100)
d=[1.0/np.sqrt(2*np.pi)*np.exp(-i**2/2) for i in x]
def plot_density(ax,data,N):
ax.hist(data,bins=30,normed=1) ## histgram
ax.plot(x,d)
ax.set_title(r'Histogram of $\bar{x}$:N=%d' % N)
plot_density(ax1,MEANS[0],N[0])
plot_density(ax2,MEANS[1],N[1])
plot_density(ax3,MEANS[2],N[2])
plot_density(ax4,MEANS[3],N[3])
plot_density(ax5,MEANS[4],N[4])
plot_density(ax6,MEANS[5],N[5])
plt.show() ## 画图
问题二:样本中心矩有描述什么?
可以看作是偏离数据点的K次方的期望值。
在数学特征上,
一阶矩即期望;
二阶矩即方差;
三阶矩描述偏斜度;
四阶矩描述偏斜度。
理解一:
百分位数是对数据基本分布的一个良好的描述,可以很直观地看到数据点集中在哪块区域;异常点的数据多少,偏离程度如何,等等。