我是数据科学的新手。最近我在学习一门关于统计学的课程。其中一项任务是在实践中检查中心极限定理。
这个想法很简单:取一个连续的随机变量;例如,从中生成 1000 个样本,每个样本的大小为n
;绘制样本的直方图。然后利用中心极限定理求正态分布的参数,画出分布的PDF。因此,直方图和 PDF 粗略地说应该是“相似的”(并且随着n
增长变得更加“相似”)。
我选择了帕累托分布,并且使用这个 Python 代码,
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as sts
from math import sqrt
n = 10
b = 3.0
random_value = sts.pareto(b)
mean = random_value.mean()
variance = random_value.var()
plt.hist(samples(random_value, n, 1000), bins=20, normed=True)
x = np.linspace(0, 6, 100)
pdf = sts.norm(mean, sqrt(variance / n)).pdf(x)
plt.plot(x, pdf, color='r', label='theoretical PDF')
samples
功能是这样的
def samples(random_value, sample_size, number_of_samples):
result = np.asarray([])
for i in range(number_of_samples):
result = np.append(result, np.mean(random_value.rvs(sample_size)))
return result
结果在我看来很可疑:没有预期的相似性。我用另一个连续分布(均匀分布)检查了相同的代码,图表看起来更加相似。
帕累托分布的一个特征是否使它成为证明中心极限定理如何工作的糟糕选择?还是代码本身有问题(例如,正态分布的参数计算方式错误)?先感谢您。