0

我在 Coursera 上为某门课程做作业。重点是对某些分布使用中心极限定理(我选择 Gamma 分布)并在图上绘制 E = Ebase 和 D = Dbase/n 的正态分布概率密度函数的理论值,其中 E 和 D 是数学期望和分散手段的分布。

均值取自大小为 n 的样本,其中每个单元由 Gamma 分布生成,并带有手动插入的参数(我使用k = 2, theta = 0.5),因此Ebase = k*thetaDbase = k*theta^2。在同一张图上应该有一个直方图规范为 1。

理论上,我们取的 n 越大,两个图形应该越匹配。但我在 ipython 笔记本中有这样的:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as sts
%matplotlib inline
k = 2.0
Theta = 0.5
listOfSizes = [20,50,100,300]
number = 0
for n in listOfSizes:
    means =[]
    for i in range (1000):
       sum = 0.0
       for number in np.random.gamma(k,Theta,size = n):
           sum+=number
       mean = sum/n
       means.append(mean)
dispersionOfMeansTheoretical =(k*(Theta**2))/n
mathExpectancyOfMeansTheoretical = (k*Theta)
arguments = np.linspace(0,2,2048)
plt.figure(n)
theoryFunction = sts.norm.pdf(arguments, loc = mathExpectancyOfMeansTheoretical, scale = dispersionOfMeansTheoretical)
plt.plot(arguments, theoryFunction)
plt.hist(means, bins=50, normed = 1)
plt.ylabel('$PDF$ with n ='+str(n))
plt.xlabel('$x$')

图形

我在 Wiki 上仔细检查了它,似乎我为所有内容插入了正确的参数化,但我真的找不到错误。我错过了什么?

4

0 回答 0