为什么增加硬币翻转的样本大小不能改善法线曲线逼近度?


19

我正在阅读《统计》(弗里曼,皮萨尼,普尔韦斯)这本书,并尝试重现一个例子,其中一个硬币被扔了50次,计数的数目正好重复了1000次。

  1. 首先,我将投掷次数(样本大小)保持在1000,并增加了重复次数。重复次数越多,数据越符合正态曲线。

  2. 因此,接下来,我尝试将重复次数固定为1,000,并增加了样本量。样本数量越大,法线曲线似乎越不适合数据。这似乎与本书示例相矛盾,本书示例随着样本数量的增加更好地逼近正态曲线。

  3. 我想看看如果增加样本量会发生什么情况,但是重复次数固定为10,000。这似乎也与该书矛盾。

有什么想法我做错了吗?

下面的代码和图表。

%matplotlib inline

def plot_hist(num_repetitions, num_tosses):
    tosses = np.random.randint(0, 2, size=[num_repetitions, num_tosses])
    sums = np.apply_along_axis(lambda a: np.sum(a == 1), 1, tosses)

    xmin, xmax = min(sums), max(sums)  
    lnspc = np.linspace(xmin, xmax, len(sums))

    m, s = stats.norm.fit(sums) # get mean and standard deviation  
    pdf_g = stats.norm.pdf(lnspc, m, s) # now get theoretical values in our interval  

    bins = np.arange(xmin, xmax) - 0.5
    step = int((xmax - xmin)/5)

    fig, ax = plt.subplots()
    _ = ax.hist(sums, bins, edgecolor='black', linewidth=1.2, density=True)
    _ = ax.plot(lnspc, pdf_g, label="Norm", color='red')
    _ = ax.set_xticks(bins[::step] + 0.5)
    _ = ax.set_title('{:,} tosses - {:,} repetitions'.format(num_tosses, num_repetitions))

1.尝试增加重复次数(固定样本大小为1000)

plot_hist(1000, 1000)

在此处输入图片说明

plot_hist(10000, 1000)

在此处输入图片说明

plot_hist(100000, 1000)

在此处输入图片说明

2.尝试增加样本量(固定为1000次重复)

plot_hist(1000, 100)

在此处输入图片说明

plot_hist(1000, 1000)

在此处输入图片说明

plot_hist(1000, 10000)

在此处输入图片说明

3.尝试增加样本量(固定为10,000次重复)

plot_hist(10000, 100)

在此处输入图片说明

plot_hist(10000, 1000)

在此处输入图片说明

plot_hist(10000, 10000)

在此处输入图片说明

plot_hist(10000, 100000)

在此处输入图片说明


9
您需要一个更好的直方图绘图仪-这个绘图仪特别差,并且会造成伪影。更好的是,将分布与概率图而不是直方图进行比较。
ub

1
知道这一点很有用,并且今天增加了我的知识。谢谢!
克里斯·雪

3
“重复次数”是您的“样本量”,而不是折腾。增加抛掷的次数有所不同
火星

1
抱歉,我想了想,想了想,但不能用这个词来形容!但是,不管掷出多少球,最终它都会给您1个数字(正面数)。它给您1个样本。
火星

1
我已经发布了一个新的问题,重点只是在术语:stats.stackexchange.com/questions/389892/...
克里斯·斯诺

Answers:


27

在第二种情况下,通过增加投掷次数,可以增加单个试验可以进入的箱数。虽然实验2的第一种情况最多只能填充100个垃圾箱,但最后一个示例有10000个垃圾箱。您将实验的“分辨率”提高了100倍(即,第一个实验中的一个bin现在由第二个实验中的大约100表示​​)。当然,这意味着您将需要多出100倍的数据来填充垃圾箱。


嗯,很有道理。通过将箱数设置为35(_ = ax.hist(sums, bins=35, edgecolor='black', linewidth=1.2, density=True)),第三个实验现在近似正常曲线。
克里斯·斯诺

5

您可以将单个硬币翻转视为独立的伯努利试验。一次试用将分别给您带来成功/失败或成功/失败的机会。如果您重复说100,000次,那么如果硬币是公平的,那么正面的平均数目将非常接近0.5。

现在,如果将试验次数增加到1,000次,并且将重复次数保持为1,您将获得1,000次成功/失败的序列,并且除非您增加重复次数,否则无法说出平均观察500次的概率。每个独立的试验。随着重复次数的增加,您将越来越接近于正态分布。

对我而言,更容易将试验视为“抛掷”或“样本量”,而不是将单独的硬币和重复次数视为每个硬币的翻转次数。然后,从直觉上讲,通过增加硬币(或试验)的数量,同时保持重复(或翻转)的总数不变,数据与正态分布的近似度会变差。


2

我认为这里的其他答案很好,但是想添加一个答案,扩展到另一个统计工具。

您从一个认为应该近似于一条正常曲线的基线开始,然后从那里开始,看是否可以更好地近似于一条正常曲线。尝试朝另一个方向发展,看看在近似时可以做些什么来做得更好。尝试进行10次翻转和1000次重复的模拟。将此模拟与您具有1000次翻转和10次重复的模拟进行比较。应该清楚的是,前一种情况具有更好的近似性。

我要扩展的是ANOVA(方差分析)。您会看到很多新的数据科学家对这个问题的掌握不充分,并设计了他们的研究以使他们有很多机会,但很少重复。他们有很多数据,但是比他们想要的少。就像测量一棵树上的每片叶子,但只有两棵树。我们可以说很多关于那两棵树上的叶子,但一般来说不是。最好是少取一些叶子,也要种很多树。


谢谢你的回答。您能否详细说明在这种情况下如何使用ANOVA?
克里斯·斯诺

1
@ChrisSnow ANOVA是线性回归的一个视角,着眼于方差(因此得名),实际上是不同的组是否有所不同。这种联系是,重复次数太少,即使您有很多翻转,您实际上也无法分辨组之间的区别。与法线的近似值变差,并且每个组的方差还不足以得出结论,实际上任何东西都不同。
杰里米

1

为了获得更多的直觉,请考虑以下几点:

假设您只进行一次重复。

在那种情况下,您可以增加所有所需的抛掷次数,但不会像正态分布那样。这很有意义,因为您的直方图只会有一个峰。


正态分布是概率分布(二项式分布)的近似值。

您所做的不是创建此发行版。但是,相反,您使用数量有限(且数量很少)的模拟来近似此分布。(您发现,当增加直方图中的bin数量时,这种近似会变得更糟)


因此,你们俩都需要大量的折腾重复。

  • 当抛掷次数高时,可以通过正态分布来近似二项分布(多次抛硬币)。
  • 当重复/模拟的次数大于这些实验的直方图时,近似二项式分布的密度。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.