来自伽玛分布的均值分布与Python中的理论值不匹配

时间:2016-03-22 11:19:18

标签: python-3.x probability-density probability-theory

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

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

从理论上讲,我们采用的两个图形应该越匹配。但我在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$')

Graphics

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

0 个答案:

没有答案