Madeni para çevirmelerinin örnek boyutunu artırmak normal eğri yaklaşımını neden iyileştirmiyor?


19

Ben okuyorum İstatistik (Freeman, Pisani'yi Purves) kitap ve bir madeni para söylemek 50 kez, sayılan kafaları sayısını atmış bir örneğini yeniden oluşturmaya çalışıyorum ve bu demek 1,000 kez tekrarlanır.

  1. İlk olarak, fırlatma sayısını (örnek büyüklüğü) 1000'de tuttum ve tekrarları arttırdım. Tekrarlama sayısı arttıkça, veriler normal eğriye daha iyi uyar.

  2. Sonra, tekrar sayısını 1000'de sabit tutmaya çalıştım ve örneklem boyutunu artırdım. Örneklem büyüklüğü ne kadar büyük olursa, normal eğri en kötü verilere uyuyordu. Bu, örneklem büyüklüğü arttıkça normal eğriye daha iyi yaklaşan kitap örneğiyle çelişiyor gibi görünmektedir.

  3. Örnek boyutunu büyütürsem ne olacağını görmek istedim, ancak 10.000'de sabitlenen çok sayıda tekrarla. Bu da kitapla çelişiyor gibi görünüyor.

Yanlış yaptığım hakkında bir fikrin var mı?

Aşağıdaki kod ve grafikler.

%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. artan tekrar sayısı ile deneme (1000 sabit örnek boyutu)

plot_hist(1000, 1000)

resim açıklamasını buraya girin

plot_hist(10000, 1000)

resim açıklamasını buraya girin

plot_hist(100000, 1000)

resim açıklamasını buraya girin

2. Artan numune boyutuyla deney (1000 tekrarda sabit)

plot_hist(1000, 100)

resim açıklamasını buraya girin

plot_hist(1000, 1000)

resim açıklamasını buraya girin

plot_hist(1000, 10000)

resim açıklamasını buraya girin

3. Artan numune boyutuyla deney (10.000 tekrarda sabit)

plot_hist(10000, 100)

resim açıklamasını buraya girin

plot_hist(10000, 1000)

resim açıklamasını buraya girin

plot_hist(10000, 10000)

resim açıklamasını buraya girin

plot_hist(10000, 100000)

resim açıklamasını buraya girin


9
Daha iyi bir histogram çizicisine ihtiyacınız var - bu özellikle zayıf ve eserler yaratıyor. Daha da iyisi, dağılımları histogram yerine olasılık grafiğiyle karşılaştırın.
whuber

1
Bunu bilmek faydalıdır ve bugün bilgimi arttırmıştır. Teşekkürler!
Chris Snow

3
"Tekrarlar" sizin "örneklem büyüklüğü" dür, değil fırlatır. Fırlatma sayısını artırmak farklı bir şey
Mars

1
Üzgünüm, düşündüm ve düşündüm ve düşündüm, ama bunun için terim ile olamaz! Ancak fırlatma sayısından bağımsız olarak, sonunda size 1 sayı (kafa sayısı) verir. Size 1 örnek verir.
Mars

1
Sadece terminolojiye odaklanan yeni bir soru yayınladım: stats.stackexchange.com/questions/389892/…
Chris Snow

Yanıtlar:


27

İkinci durumda, fırlatma sayısını artırarak, tek bir denemenin düşebileceği çöp sayısını artırırsınız. Deneme 2'nin ilk vakasında sadece doldurulabilecek maksimum 100 bölme bulunurken, son örnekte 10000 bölme vardır. Denemenizin "çözünürlüğünü" bir faktör 100 artırdınız (yani, ilk denemenizdeki bir kutu şimdi saniyenizde yaklaşık 100 ile temsil ediliyor). Tabii ki bu, kutularınızı doldurmak için 100 kat daha fazla veriye ihtiyaç duyacağınız anlamına gelir.


Ah, mantıklı. Kutu sayısını 35 ( _ = ax.hist(sums, bins=35, edgecolor='black', linewidth=1.2, density=True)) olarak ayarlayarak, üçüncü deney normal eğriye yaklaşmaktadır.
Chris Snow

5

Bireysel bir bozuk parayı bağımsız bir Bernoulli davası olarak düşünebilirsiniz. Bir deneme size sırasıyla kafa / kuyruk veya başarı / başarısızlık verecektir. Bunu 100.000 kez tekrarlarsanız, madeni para adil ise ortalama kafa sayısı 0,5'e çok yakın olacaktır.

Şimdi deneme sayısını 1000'e çıkarır ve tekrarlamayı 1'de tutarsanız, 1000 başarı / başarısızlık sırası alırsınız ve tekrar sayısını artırmazsanız ortalama 500 kafa gözlemleme olasılığı hakkında çok fazla şey söyleyemezsiniz. bağımsız çalışmaların her biri. Tekrar sayısı arttıkça, normal dağılıma daha iyi ve daha iyi bir yaklaşım elde edersiniz.

Benim için denemeleri “fırlatma” ya da “örnek boyutları” olarak değil, ayrı paralar ve tekrarlar yerine bu paraların her birinin döndürme sayısı olarak düşünmek daha kolay. Daha sonra sezgisel olarak madeni paraların (veya denemelerin) sayısını arttırarak, toplam tekrar sayısını (veya ters çevirmelerini) sabit tutarken, verilerin normal dağılıma yaklaşmasının daha da kötüleştiğini anlamlıdır.


2

Buradaki diğer cevapların harika olduğunu düşünüyorum, ancak başka bir istatistiksel araca uzanan bir cevap eklemek istedim.

Normal bir eğriye yaklaşması gerektiğini düşündüğünüz bir başlangıç ​​çizgisiyle başlıyorsunuz ve daha sonra normal bir eğriye daha iyi yaklaşıp yaklaşamayacağınızı görmek için oradan gidiyorsunuz. Diğer yöne gitmeye çalışın ve yaklaşırken daha kötü bir iş yapmak için neler yapabileceğinizi görün. 10 döndürme ve 1000 tekrarın olduğu simülasyonları deneyin. Bunu 1000 döndürme ve 10 tekrarın olduğu simülasyonlarla karşılaştırın. Önceki vakanın daha iyi bir yaklaşıma sahip olduğu açık olmalıdır.

Yapmak istediğim uzantı ANOVA (varyans analizi). Bu sorunu zayıf bir şekilde kavrayan birçok yeni veri bilimcisi görüyorsunuz ve çalışmalarını çok fazla döndürme, ancak birkaç tekrarlama yapacak şekilde tasarlıyorsunuz. Çok fazla veri var, ama istediklerinden daha az diyor. Bir ağaçtaki her yaprağı ölçmek gibi, ama sadece iki ağacı vardır. Bu iki ağaç üzerindeki yapraklar hakkında biraz söyleyebiliriz, ancak genel olarak ağaçların üzerindeki yapraklar değil. Çok daha küçük bir yaprak örneği almak ve çok fazla ağaç almak daha iyi olurdu.


Cevap için teşekkür ederim. ANOVA'nın bu bağlamda nasıl kullanılabileceği hakkında ayrıntılı bilgi verebilir misiniz?
Chris Snow

1
@ChrisSnow ANOVA, lineer regresyonda farklı grupların aslında varyansa (dolayısıyla adı) bakarak farklı olup olmadıklarına odaklanan bir perspektiftir. Bağlantı, çok az sayıda tekrarlamayla, çok fazla döndürmeniz olsa bile, gruplar arasındaki farkı söyleyememenizdir. Normal eğriye yaklaşım kötüleşir ve her grubun varyansı, aslında bir şeyin aslında farklı olduğu sonucuna varacak kadar farklı değildir.
Jeremy

1

Bazı ek sezgiler kazanmak için aşağıdakileri dikkate alın:

Sadece tek bir tekrar yaptığınızı düşünün.

Bu durumda, istediğiniz tüm fırlatma sayısını artırabilirsiniz, ancak normal bir dağılıma benzemez. Ve bu mantıklı çünkü tek bir zirveye sahip olacak.


Normal dağılım, olasılık dağılımı için (binom dağılımının) yaklaşık değeridir.

Yaptığınız şey bu dağıtımı yaratmak değildi. Ancak bunun yerine, sınırlı (ve küçük) sayıda simülasyon kullanarak bu dağılımı tahmin ettiniz . (ve keşfettiğiniz şey, histogramdaki kutu sayısını artırdığınızda bu yaklaşımın daha da kötüleşmesidir)


Yani her ikiniz de çok sayıda fırlatma ve tekrarlamaya ihtiyacınız var.

  • fırlatma sayısı yüksek olduğunda binom dağılımı (çoklu madalyon fırlatma) normal dağıtım ile yaklaşık olarak tahmin edilebilir.
  • tekrarların / simülasyonların sayısı bu deneylerin histogramından yüksek olduğunda binom dağılımının yoğunluğuna yaklaşır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.