Merkezi Limit Teoremi ve Normal Dağılım & Python Uygulaması

Asli Cerman
Machine Learning Turkiye
8 min readAug 8, 2021

Merkezi Limit Teoremi herhangi bir tür veri analizi gerçekleştirirken anlaşılması gereken önemli bir kavramdır.

Merkezi Limit Teoremi büyük bir sayıda olan bağımsız ve aynı dağılım gösteren rassal değişkenlerin (eğer sonlu varyans değerleri bulunuyorsa) aritmetik ortalamasının, yaklaşık olarak normal dağılım (yani Gauss dağılımı) göstereceğini ifade eden bir teoremdir.

Buna göre örneğin, yaşadığımız şehirdeki tüm insanların ortalama boyunu tahmin etmek istediğimizi varsayalım. Tek tek her insan için bu veriyi toplamak pratik bir yöntem değildir. Ancak herkesin tek tek boy ölçüsünü almak yerine popülasyonu temsil edecek bir örneklem oluşturabiliriz.

Merkezi Limit Teorimi, popülasyonun dağılımından bağımsız olarak popülasyonu temsil edecek yeterli büyüklükte rassal olarak tekrarlanarak elde edilen n adet örnekleme ait ortalamaların normal dağılacağını söyler.

Ayrıca Merkezi Limit Teoremine göre örneklem dağılımı, onu üretmek için kullanılan örneklem adedi (n) arttıkça normal dağılıma yaklaşacaktır. Örneğin elimizde hileli olmadığı söylenen madeni bir para olduğunu varsayalım. Bir madeni parayı havaya attığımızda %50 olasılıkla yazı, %50 olasılıkla tura geldiğini biliyoruz. Dolayısıyla Merkezi Limit Teoremine göre elimizdeki parayı yeterli sayıda çok atarsak aynı sayıda yazı ve tura gelme olasılığı o kadar yüksek olur.

Şimdi bu parayı 100 kere havaya attığımızı 100 atış sonrasında 48 yazı ve 52 tura geldiğini varsayalım. Merkezi Limit Teoremine göre bu sonuç bizi şaşırtmamalı. Bu deneyi tekrar ettiğimizi ve bu sefer 40 yazı ve 60 tura geldiğini varsayalım. Bu sonuç da bizim için ihtimal dahilinde olurdu ve çok şaşırmazdık. Ancak yeni bir deneme sonrasında 20 yazı ve 80 tura gelmesi halinde artık paranın hileli olduğunu düşünmek için nedenimiz olurdu. Çünkü yeterli büyüklükte n adet örneklemlerden elde edeceğimiz beklenen %50 yazı ve %50 tura sonucundan daha uzak sonuçlar daha az olasıdır.

Kısacası, kullanılan örneklem büyüklüğü yeterince büyükse, popülasyonu oldukça iyi tahmin etme şansı yüksektir. Çoğu kaynak, çoğu uygulama için n için 30'un yeterli olduğunu belirtir.

Madeni Para Deneyi için Python Uygulaması

Tıpkı yukarıda tarif edildiği gibi bir madeni parayı 100 kere attığımızda yazı ve tura gelme sayılarını gözlemleyebileceğimiz Python kodlarını oluşturalım ve grafik üzerinde sonuçları inceleyelim.

import numpy as np
import random
n_times_list = []#Bir paraya ait yazı ve tura yönlerinden rassal olarak 100 seçim yapıyoruz.
choices = np.random.choice(["head","tail"], size=100, replace=True)
#100 atış sonrası her bir yön kaç kere gelmiş?
unique, counts = np.unique(choices, return_counts=True)
dict(zip(unique, counts)))
{'head': 53, 'tail': 47}

Çıkan sonuç Merkezi Limit Teoremine uygun görünüyor. Peki rassal olarak 100 seçim yaptığımız deneyi farklı sayılarda tekrarladığımızda ortaya çıkan sonuçların nasıl dağılırdı*

Rassal olarak yapacağımız 100 adet seçimi 10, 30, 100,1,000 ve 10,000 kere tekrar ederek çıkan sonuçları farklı listelere ekleyelim.

Buna göre aşağıda yer alan ikinci fonksiyon ile yukarıdaki kodu n kere çalıştırmış olacağız ve elimizdeki n farklı sonucu bir listeye ekleyeceğiz. Bunu 5 farklı tekrar sayısı için yeniden yapacağız.

times_10= []
times_30= []
times_100= []
times_1000= []
times_10000= []
def random_sampling(n_times_list):
choices = np.random.choice(["head","tail"], size=100, replace=True)
unique, counts = np.unique(choices, return_counts=True)
n_times_list.append(dict(zip(unique, counts))["head"])


def repeat_fun(times, f,n_times_list):
for i in range(times): f(n_times_list)

repeat_fun(9,random_sampling,times_10 )
repeat_fun(29,random_sampling,times_30 )
repeat_fun(99,random_sampling,times_100 )
repeat_fun(999,random_sampling,times_1000 )
repeat_fun(9999,random_sampling,times_10000 )

Şimdi çıkan sonuçların dağılımlarını inceleyelim.

import seaborn as sns
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 5, figsize=(16, 4))
result_list = [times_10,times_30,times_100,times_1000,times_10000]
n = 5
for idx in range(5):
sns.histplot(result_list[idx],kde=True,ax=ax[idx],color='#e74c3c')

Dağılımları incelediğimizde Merkezi Limit Teorimine uygun olarak örneklem adedi arttığında örneklem dağılımının normal dağılıma daha uygun hale geldiğini görüyoruz.

Şimdi yukarıdaki kodları tekrar çalıştırdığımızda ortaya çıkan yeni dağılımları kontrol edelim.

Kodları tekrar çalıştırdığımızda ortaya çıkan yeni dağılımlar örneklem boyutunun büyüklüğü arttıkça dağılımda daha az farklılaşma olduğunu göstermekte.

Bu deneyi bir kez daha gerçekleştirelim:

3 grafikten de görülebileceği üzere 100 kere havaya attığımız bir madeni paranın yazı ve tura gelme sonuçlarını rassal olarak farklı adetlerde tekrarladığımız deneyde örneklem boyutu büyüdükçe örneklem dağılımı, istikrarlı bir şekilde normal dağılıma daha da yakın olarak dağılım gösterdi.

Peki örneklemin normal dağılması bizim için ne anlama geliyor?

Normal Dağılım

Günlük yaşamda gözlemlediğimiz birçok gerçek dünya değişkeni normal dağılım gösterir. Örneğin insanların ağırlıkları ve uzunlukları, sınav sonuçları, bir çuvaldaki elmaların ağırlıkları, IQ testlerinin sonuçları vs. gibi.

Normal dağılımda gözlem değerlerini incelediğimizde, ortalama değer etrafında toplandıklarını ve ortalamadan uzaklaştıkça gözlem sayısının azaldığını görürüz.

Normal dağılım, aynı zamanda Gauss dağılımı veya Gauss tipi dağılım olarak isimlendirilen, birçok alanda pratik uygulaması olan, çok önemli bir sürekli olasılık dağılım ailesidir.

Normal dağılım matematiksel olarak aşağıdaki şekilde ifade edilir. Bu matematiksel ifade üzerinden normal dağıldığını bildiğimiz veriler üzerinde istatiksel çıkarım yapmamız daha kolaydır.

Burada π ve e matematiksel sabitler, σ ve μ ise standart sapma ve ortalamadır.

Normal dağılan bir veriye ilişkin sadece iki parametreyi bilmek yeterli olmaktadır: ortalama ve standart sapma . Bu iki değer ile bir Gauss eğrisi elde ederiz.

Formülde ortalama ve standart sapma dışındaki tüm değerler sabittir. Bu nedenle ortalaması ve standart sapması farklı olan sonsuz sayıda normal dağılım elde edilebilir.

Aşağıdaki grafikten de görülebileceği gibi sadece ortalama değerin değişmesi Gauss eğrisini sağa ya da sola kaydıracaktır. Dolayısıyla ortalama değer bize konum göstermektedir.

Standart sapma değeri arttığında eğri genişleyecek ve tepe noktası aşağı inecektir. Tam tersi durumda ise eğri daralacak ve tepe noktası daha da yukarı çıkacaktır. Bu durumda standart sapma da bize verinin ölçeği, duyarlılığı hakkında bilgi verir. Örneğin bir topluluğa ait boy ölçümlerini içeren bir veriye ait standart sapmanın küçük olması halinde veri daha az saçılım gösterecektir.

Kısaca normal dağılımın özelliklerini şu şekilde sıralayabiliriz.

  • Normal dağılımda eğri aritmetik ortalamaya göre simetriktir.
  • (-∞, +∞) aralığında değerler alır.
  • Normal dağılım gösteren bir veride aritmetik ortalama, medyan ve mod değerleri birbirine eşittir.
  • Eğrinin tepe noktası (maksimum noktası) aritmetik ortalamadır.
  • Tüm normal dağılımların altında kalan alan 1'e eşittir. Çünkü rassal bir değişkenin alabileceği tüm olası sonuçların toplamı 1'dir. [ P (-∞ < X < +∞) = 1 ]

Örneğin, aşağıdaki histogram simetrik ve ortalamaya yakın yoğunlaşmış bir veri kümesini göstermektedir.

https://www.nagwa.com/en/explainers/378184608718/

Bir veri seti normal dağılıyorsa eğer

  • Veri setinin yaklaşık olarak %68'i ortalamadan ±1 standart sapma aralığı dahilindedir.
  • Veri setinin yaklaşık olarak %95'i ortalamadan ±2 standart sapma aralığı dahilindedir.
  • Veri setinin yaklaşık olarak %99.7'si ortalamadan ±3 standart sapma aralığı dahilindedir.

Standart Normal Dağılım (Z Dağılımı)

Normal dağılım, ortalama ve standart sapma değerlerine göre tanımlanır. Bu nedenle sonsuz sayıda dağılım belirlemek mümkündür.

Normal Dağılım sürekli bir dağılım olduğu için olasılık alanları alan hesabı ile bulunur. (-∞, +∞) sonsuz aralığında tanımlı olan normal dağılım fonksiyonu ve fonksiyonun altında kalan alanın 1'e eşit olması nedeniyle, alan hesabı fonsiyonun integrali alınarak gerçekleştirilir.

Ayrıca standart sapma aralıklarının dışındaki aralıklar içinde olasılık hesabı yine olasılık yoğunluk fonksiyonunun integrali alınması gerekmektedir.

Örneğin ortalaması 4 ve standart sapması 2 olan bir normal dağılım eğrisinde, ortalamaya olan uzaklıkları standart sapmaya göre belirlenmiş aralıkların olasılıkları ile kolayca bulabiliriz. Ancak 7 ve 9 standart sapma aralığına ait olasılığın hesaplanması daha zordur.

Dolayısıyla ortalaması ve standart sapması farklı olan her bir normal dağılım için ve standart sapma dışında belirlenen her bir aralık için olasılık hesabı integral hesaplanmasını gerekmektedir. Bu işlemleri tekrar tekrar yapmak çok zahmetli olacağı için z dönüşümü ile herhangi bir normal dağılım standart normal dağılıma dönüştürülür.

Standart Normal Dağılım ortalaması 0 ve standart sapması 1 olan olasılıklı bir normal dağılımdır. Z dağılımı ise ortalama ve standart sapma değerlerinin sabit olması nedeniyle standart bir dağılımdır. Bu durum Standart Normal Dağılım, olasılıklı tahminlerde bulunmamızı kolaylaştırır.

Çünkü bu hesaplamalar yapılarak hazırlanmış olan “Standart Z Değerleri Tablosu” ile Z dağılımı üzerinde belli aralıkların olasıkları hesaplanabilmektedir.

Kısaca yapılan işlem bir standart normal dağılım tanımlamak ve elimizdeki değerleri bu dağılıma uydurmaktır ve bu kesinlikle daha pratik bir yöntemdir.

Bunu yapmak için verinin standart sapmasının 1'e ortalamasının ise 0'a çekilmesi gerekir. Bu da o verideki her değerden ortalama değerin çıkarılması ve çıkan sonucun standart sapmaya bölünmesi anlamına gelir. Bu işlem sonucunda z puanını elde etmiş oluruz. Z puanı verideki değerlerin ortalama değerden kaç standart sapma uzaklıkta olduğunu gösterir.

Yukarıdaki formülde ortalamayı ve standart sapmayı kullanarak standartlaştırma işlemini gerçekleştirir. Z değeri ile birimsiz bir değer elde etmiş oluruz.

Aşağıdaki örnek ile pekiştirelim.

Aynı sınıfta yer alan 100adet öğrencinin matematik sınavından aldıkları notların ortalaması 70, standart sapması 15 olarak hesaplanmıştır. Öğrencilerin sınavdan aldıkları notlar normal olarak dağılmaktadır. Buna göre rassal olarak seçilen bir öğrencinin 80–90 aralığında not almış olma olasılığı nedir?

Ortalama değerin 70 ve standart sapmanın 15 olduğunu biliyoruz. Buna göre -1 & +1 standart sapma aralığının alanının yaklaşık olarak %68 olduğunu , +1 standart sapma uzaklığın 70–85 arası alana denk geldiğini ve yaklaşık olarak %34 olduğunu biliyoruz.

Ancak bizden istenen değer 80–90 aralığı olduğu için bu noktada Z Değerleri Tablosuna ihtiyacımız var. Grafik üzerinde yeşil kesikli çizgi ile gösterilen alanı hesaplamak içi öncelikle formülü tekrar hatırlayarak 80 ve 90 değerlerine karşılık gelen z standart değerlerini hesaplayalım:

mu, sigma = 70, 5 # mean and standard deviation
s = np.random.normal(mu, sigma, 100).astype(int)
np.round((80 - s.mean()) / s.std(),2)
0.71
np.round((90 - s.mean()) / s.std(),2)
1.41

80 ve 90 notlarına karşılık gelen z değerleri sırasıyla +0.71 ve +1,41 hesaplanmıştır.

Olasılığı istenen alan, 80 ≤ X ≤ 90 arasında kalan alandır ve bu alan z değeri olarak da 0.71 ≤ 0 ≤ 1,41 aralığına karşılık gelmektedir.

0 ≤ z ≤ 0.71 alanı için z tablosunda + 0,71 için olasılık değeri için ilk sütunda 0, ilk satırda ise 0.01 değerlerine bakıyoruz. Z tablosunda ilgili satır ve sütunların kesişim noktasındaki olasılık 0,2580 olarak görünüyor. Bu değer 0 ile +0.71 arasındaki alanın olasılığı vermektedir.

0 ≤ z ≤ 1.41 için de tablodan olasılık değerinin 0,4207 olduğu anlaşılıyor bu değer de 0 ile +1.41 arasındaki alanın olasılığını veriyor.

Bu durumda 0,71 ≤ z ≤ 1.41 arasındaki alan, büyük alandan küçük alanın çıkartılması ile,

0,4207–0.2580 = 0.1627 olarak buluyoruz.

Dolayısıyla, bu sınıfta yer alan öğrencilerden herhangi birinin 80 ile 90 arasında not alma olasılığı % 16.27 olarak hesaplanmakta. Diğer bir deyişle öğrencilerin % 16.27’si 80–90 arasında not almıştır.

Umarım faydalı olmuştur.

Kaynaklar

Çok Değişkenli İstatiksel Yöntemler – Prof. Dr. Reha Alpar

--

--

Asli Cerman
Machine Learning Turkiye

Data Scientist at Tanı Pazarlama ve İletişim Hizmetleri A.Ş.