Bootstrap Örnekleme: Veri Olmadan İstatistiksel Anlamlılık
# Bootstrap Örnekleme: Veri Olmadan İstatistiksel Anlamlılık
Elinde 20 kişinin maaş verisi var. Bu veriden tüm şehrin ortalama maaşını tahmin etmek istiyorsun. Ama çok az verin var, istatistiksel olarak güvenilir mi bu tahmin?
Bootstrap bu sorunu çözer. Elindeki az veriden, binlerce yapay örnek oluşturarak güvenilir sonuçlara ulaşırsın.
Adım 1: Orijinal verin var (20 maaş değeri).
Adım 2: Bu veriden yerine koyarak rastgele örnekler al. Örneğin 20 değerden 20 değer seç, ama aynı değeri birden fazla seçebilirsin.
Adım 3: Her örnek için ortalama hesapla.
Adım 4: Bunu 10.000 kez tekrar et.
Adım 5: Bu 10.000 ortalamanın dağılımına bak. Böylece gerçek ortalamanın nerede olabileceğini anlarsın.
1import numpy as np2from scipy import stats34# Orijinal veri: 10 kişinin maaşı (bin TL)5maaş = np.array([3, 3.5, 4, 4.2, 4.5, 5, 5.2, 5.5, 6, 7])67print(f"Orijinal ortalama: {maaş.mean():.2f}")89# Bootstrap örnekleri oluştur10bootstrap_ortalamaları = []11for i in range(10000):12# Orijinal veriden yerine koyarak 10 değer seç13örnek = np.random.choice(maaş, size=len(maaş), replace=True)14bootstrap_ortalamaları.append(örnek.mean())1516bootstrap_ortalamaları = np.array(bootstrap_ortalamaları)1718# %95 güven aralığı (2.5 ile 97.5 persentil)19alt_limit = np.percentile(bootstrap_ortalamaları, 2.5)20üst_limit = np.percentile(bootstrap_ortalamaları, 97.5)2122print(f"\n%95 Güven Aralığı: {alt_limit:.2f} - {üst_limit:.2f}")23print(f"Bootstrap ortalaması: {bootstrap_ortalamaları.mean():.2f}")24print(f"Standart Hata: {bootstrap_ortalamaları.std():.2f}")Çıktı:
1Orijinal ortalama: 4.7523%95 Güven Aralığı: 4.24 - 5.284Bootstrap ortalaması: 4.755Standart Hata: 0.27Gerçek ortalama maaş %95 olasılıkla 4.24 ile 5.28 arasında. Az veriden bile güvenilir tahmin yaptık.
- Küçük veri setleri
- Normal dağılım bilmiyorsan
- Medyan, yüzdelik gibi karmaşık istatistikler
- A/B test sonuçlarını değerlendirirken
Bootstrap, istatistik bilmeyenin bile veriden anlam çıkarmasını sağlar.
3 yorum
bootstrap harika bir şey ama pratikte kaç kez tekrar etmen gerektiğini bilmek zor 10 bin mi 1 bin mi 100 bin mi sonuçlar ne kadar değişiyor ona bağlı mı yoksa veri sayısına mı bağlı
veri sayısına da bağlı ama genelde 1000-10000 arası yeterli oluyor, sonra artık fazla değişmiyor. az verin varsa daha çok tekrar etsen iyi olur; ama 100 bin yapmak için bi sebep yok gerçekten.
aslında o tekrar sayısını bulmanın en kolay yolu kendi verinde deneyip görmek. bir kez 1000 kez yap, sonra 5000 kez yap, sonuçlar aynıysa dur.