【问题标题】:How do we apply the Central Limit Theorem using python?我们如何使用 python 应用中心极限定理?
【发布时间】:2019-04-11 01:10:21
【问题描述】:

我有一个包含 271116 行数据的庞大数据集。我使用 z-score 标准化方法对数据进行了标准化。我不知道数据是否真的遵循正态分布。所以我使用 matplotlib 绘制了一个简单的密度图:

hdf = df['Height'].plot(kind = 'kde', stacked = False)
plt.show()

我得到了这个结果:

虽然数据看起来有些正常,但我可以应用中心极限定理来获取不同随机样本(例如 10000 次)的平均值以获得平滑的钟形曲线吗?

感谢您对 python 的任何帮助,谢谢。

【问题讨论】:

    标签: python pandas matplotlib graph data-analysis


    【解决方案1】:

    类似:

    import numpy as np
    sampleMeans = []
    for _ in range(100000):
        samples = df['Height'].sample(n=100)
        sampleMean = np.mean(samples)
        sampleMeans.append(sampleMean)
    
    #Now you have a list of sample means to plot - should be normally distributed
    

    分布的均值应等于原始数据的均值,标准差应比原始数据小十倍。如果结果不够平滑,则将.sample(n=100) 增加到更高的数字。这也将减少生成的钟形曲线的标准偏差。一般规则是CLT标准差是数据标准差除以sqrt(n)。

    请务必注意,生成的分布与原始分布不同。它不仅仅是使用 CLT 平滑的。

    【讨论】:

    • 但是,你能期望得到的分布在一定程度上代表人口特征吗?例如,我可以使用生成的分布并将结果应用于原始分布吗?
    • 不,CLT 分布与原始分布完全不同——它们唯一共享的是它们的平均值。尝试在与您的问题相同的图表上比较分布 - 您会明白我的意思。
    猜你喜欢
    • 2011-10-27
    • 2021-02-11
    • 2017-03-11
    • 2012-02-21
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 2015-05-09
    相关资源
    最近更新 更多