Bir popülasyon hakkında çıkarımda bulunmanın en iyi iki yolu nedir?

  1. Tüm popülasyondaki tüm bireylere ilgili konuda görüşlerini sormak.
  2. Popülasyonu iyi temsil eden alt gruplar oluşturup, bu gruplardan elde edilen bulguları genele yaymak.

İdeal bir dünyada, ilk seçeneğin gerçekleşmesi tüm veri profesyonellerinin hayalidir. Gerçek dünyada ise maalesef ilk seçenek pek mümkün değildir. Tüm popülasyon hakkında veri toplamak maliyetli, zaman alıcı ve bazen de kitleye erişim problemlerinden dolayı mümkün değildir. Bu nedenlerle “örnekleme yöntemlerini” kullanarak popülasyonu iyi temsil eden alt gruplar yani örneklemler oluşturup, sonrasında elde ettiğimiz çıkarımları genelleştiririz.

Popülasyonu iyi temsil eden alt gruplar oluşturma işlemine örnekleme adı verilir.

Örnekleme nedir?

Hakkında çıkarım yapmak istenilen, ortak özelliklere sahip bir grubun tamamına ana kütle veya popülasyon denir. Popülasyon “tüm Türkiye” gibi geniş bir şekilde tanımlanabileceği gibi, “İstanbul’daki diş doktorları” gibi dar da tanımlanabilir.

Popülasyonun karakteristik özelliklerini yansıtan ana kütle ortalaması, ana kütle varyansı ana kütle oranı gibi ölçülere “parametre” denir.

Bir sonraki bölümde detaylarına ineceğimiz farklı birçok nedenden dolayı popülasyonun tamamından veri toplamak mümkün değildir. Bu nedenle, popülasyon hakkında çıkarımlarda bulunabilmek için, bu grubu iyi temsil eden ve “örneklem” adı verilen alt kümeleri kullanırız. Popülasyonu tüm Türkiye olan bir çalışmada İstanbul örneklem olarak ülkeyi temsil edebilir. Hedef kitlesi İstanbul’daki diş doktorları olan bir araştırmada ise Şişli ve Kadıköy gibi ilçelerdeki diş doktorları örneklem grubu olarak kullanılabilir. Örneklemin karakteristik özelliklerini yansıtan ortalama, varyans gibi ölçülere de “istatistik” denir.

Belirli tekniklerle popülasyonu temsil eden örneklem gruplarının seçilme işlemine “örnekleme” denir. Bu işlemi şöyle görselleştirebiliriz:

Görsel Kaynak: Örnekleme

İyi bir örneklem, popülasyonu iyi temsil etmeli ve rastgele seçilmelidir. Örneklem büyüklüğü, analiz için önemlidir. Bir örneklem, hakkında çıkarım yapılabilecek yeterli büyüklüğe sahip olmalıdır.

Örnekleme neden önemlidir?

Örnekleme, kaynakların verimli kullanılması açısından faydalar sağlar. Bu faydaları özetleyecek olursak:

1. Popülasyon büyüklüğünü belirlemek her durumda mümkün olmayabilir.

Popülasyon, araştırmanın konusuna göre tanımlanır ve araştırmadan araştırmaya değişiklik gösterebilir. Yapılan tanıma göre popülasyonun büyüklüğü değişiklik gösterecektir. Bazı durumlarda, popülasyon büyüklüğünü belirlemek “hareket eden” bir hedefe nişan almaya benzeyecektir. Örnek olarak, korona virüse yakalanmış ama semptomsuz atlatmış bireyler üzerinde bir araştırma yapmak istediğimiz zaman popülasyon büyüklüğünü belirlemek kolay olmayacaktır.

2. Tüm popülasyon hakkında bilgi toplamaya yetecek kaynak (zaman, iş gücü, para vs.) yoktur.

Bir popülasyonun tamamından veri toplamak çok zaman gerektiren, pahalı bir çalışmadır. Gerçek dünyada, bu çabayı karşılayacak bir kaynak yoktur.

Örnek olarak İstanbul’daki yerel seçimlerde belediye başkanlığı seçimini kimin kazanacağını tahmin etmeye çalıştığınızı varsayın. Son seçimlerde açıklanan rakamlara göre İstanbul’da 10.5 milyon seçmen bulunmaktadır. Tek tek tüm seçmenlere bir anket yaparak kime oy vereceklerini sorduğunuzu düşünün. Muhtemelen aylarınızı alacak ve her bir kişiye ulaşmak için çok fazla para harcamanız gerekecektir.

3. Popülasyona ulaşması kolay olmayabilir.

Bazı durumlarda seçilen popülasyona ulaşmak kolay olmayabilir. Örnek olarak evsizlere yönelik bir çalışma yapıldığını düşünelim. Bu popülasyonu tespit etmek ve ulaşmak kolay olmayacaktır.

4. Büyük veri setinde algoritmaların çalışması zaman alır.

Popülasyonun tamamı hakkında veri toplamanın zor olduğu kadar, popülasyon hakkında toplanan büyük verinin tamamını işlemek ve analiz etmek de o kadar zordur. Bu nedenle, toplanan büyük veri içerisinden de örneklemler oluşturarak zamandan tasarruf edilebilir.

“Büyük bir çorba tavası pişirdiyseniz, daha fazla çeşniye ihtiyacı olup olmadığını anlamak için hepsini yemenize gerek yoktur. İyice karıştırdıysanız bir kaşık dolusu tadabilirsiniz.”

George Gallup

Örneklemenin hedefi nedir?

Yazının başında da değindiğimiz gibi, örneklemi kullanarak popülasyon hakkında çıkarımlarda bulunacağız. Eğer elde ettiğimiz örneklem kötü ise popülasyon hakkında yapacağımız çıkarımlar da hatalı olacaktır. Tüm istatistiksel yöntemler, makine öğrenmesi modelleri “Garbage In, Garbage Out” prensibi ile çalışır. Yani, yanlı (biased) bir veri seti üzerinden yapılacak analizler de yanlı (biased) olacaktır.

Yapılacak çıkarımların olabildiğince sağlıklı olabilmesi için oluşturulacak örneklemlerin kaliteli olması gerekmektedir. Örnekleme ile temel amaç popülasyonu iyi temsil eden, popülasyon ile neredeyse aynı istatistiksel değerleri paylaşan küçük veri setleri oluşturmaktır.

Bu tanımdan yola çıkarsak örnekleme ile hedefin “bilimsel yöntemleri kullanarak doğru insanlar kümesini oluşturmak” olduğu yorumunu yapabiliriz. Peki, oluşturulan örneklemin doğru yada olabildiğince doğru olduğunu nasıl anlayabiliriz? İyi bir örneklemin tanımı nedir?

İyi bir örneklem nedir?

İyi bir örneklem aşağıdaki özellikleri taşımalıdır:

  • Temsil gücü: Örneklem, hakkında araştırma yapılacak popülasyonun iyi bir temsilcisi olmalıdır.
  • Oran: Popülasyonda bulunan alt gruplar örneklem büyüklüğü içerisinde orantılı şekilde yer almalıdır.
  • Seçim yöntemi: Örneklemin popülasyonu iyi bir şekilde temsil edebilmesi için tüm bireylerin eşit seçilme şansı olmalıdır.
  • Yanlılık: Örneklemler, örnekleme yanlılığı (sampling bias) olmayacak şekilde elde edilmelidir.
  • Büyüklük: Örneklem büyüklüğü yeterli derecede olmalıdır.
  • Örneklem hatası (sampling error): Örneklemler minimum örneklem hatası ile elde edilmelidir.

Örneklem büyüklüğü

Örneklemin kalitesini etkileyen en önemli faktörlerden bir tanesi de örneklem büyüklüğüdür.

Yaptığınız çalışmalar sonucunda elde ettiğiniz bulguların istatistiksel olarak anlamlı olabilmesi için araştırmanın çapına göre örneklemlerinizin belli bir büyüklükte olması gerekmektedir.

Örneklem büyüklüğünün;

  • Çok az olduğu durumda, seçilen örneklem grubunun içerisinde aykırı değerlerin karışması ve sonuçları etkilemesi muhtemeldir.
  • Çok büyük olduğu durumda, sonuçların doğruluğu artmış olsa da örnekleme yapmanın getirdiği zaman ve maliyet avantajı kaybolacaktır.

Büyük veri çağında, topladığımız veri miktarı artarken, bu verileri depolama ve işleme maliyetimiz de git gide azaldı. Büyük veri çağının en büyük yanılgısı belki de bu kadar çok verinin tüm sorunları çözeceğine olan koşulsuz şartsız inanç olabilir. Peki, verinin miktarı gerçekten önemli mi?

Büyük veri çağında örnekleme

Sorunun yanıtını Amerikan siyaset tarihi için önemli bir olay ile verelim.

1936 yılında, başkan Franklin D. Roosevelt, tekrardan seçilebilmek için seçimlere katıldı. Karşısındaki rakibi, Cumhuriyetçi aday Alf Landon idi. Seçim çalışmaları devam ederken, bir yandan da seçimi kimin kazanacağına dair tahminler yapılıyordu.

Daha önceki 5 başkanlık seçiminin galibini doğru tahminleyen, haftalık yayınlanan dönemin önemli dergilerinden The Literary Digest, bu seçim için de bir çalışma yürütüyordu. Bu çalışma kapsamında, 10 milyon kişilik bir listeye favori adaylarını işaretlemeleri için boş bir oy pusulası gönderdi ve yaklaşık 2.4 milyon yanıt aldı.

Görsel Kaynak: Literary Digest tarafından seçmenlere gönderilen boş oy pusulası

Gelen yanıtlara göre, Landon’ın %57 oy, Roosevelt’in ise %43 oy alacağı tahmin edildi. Fakat seçim sonuçları tahmin edilenden farklıydı. Roosevelt seçimi %60 oy ile kazandı. Seçim için tahminde bulunan bir diğer isim George Gallup ise 50,000 kişilik bir örneklem grubu ile kazananı doğru tahmin etmeyi başardı. Peki burada sorun neydi?

Seçimlerden sonra konu üzerine yapılan araştırmalarda, Literary Digest’in gönderim yaptığı mail listesinin telefon rehberleri, dergi üyelik listesi, özel kulüp üyelikleri gibi kaynaklardan oluşturulduğu ortaya çıktı. 1930’lu yıllarda Amerika’da “Büyük Buhran (Great Depression)”ın yarattığı ekonomik problemler hissediliyordu. O dönemde telefon, dergi, kulüp üyelikleri gibi şeyler lüks sınıfına giriyordu ve gelir durumu iyi bir grup tarafından elde edilebiliyordu. Literary Digest’in örnekleminde gelir düzeyi düşük vatandaşlar bulunmuyordu. Sorun açık bir şekilde, seçim yanlılığı (selection bias) nedeniyle seçilen örneklemin popülasyonu yeterince iyi temsil edememesiydi.

Büyük veri çağında veri bilimciler için 1936 Amerikan seçimlerinden öğrenilecek en önemli ders, seçilen örneklemin popülasyonu iyi temsil etmesinin, örneklemin büyüklüğünden daha önemli olduğudur.

Örnekleme adımları

Örnekleme süreci her çalışma için aşağıdaki adımlardan oluşur:

1. Popülasyonu tanımla.

Örnekleme sürecinde atılacak ilk adım araştırmaya konu olan popülasyonun belirlenmesidir. Popülasyonun belirlenmesi, araştırmanın konusu ile doğrudan ilgilidir. Popülasyonun çok geniş tanımlanması durumunda, çalışma sonunda elde edilecek sonuçlar gerçeği yansıtmayabilir.

Örnek olarak, lüks çantalarla ilgili bir araştırma yapmak için popülasyon belirleyelim. Eğer popülasyonu 20 yaşın üzerindeki, İstanbul’da yaşayan tüm kadınlar olacak şekilde belirlersek, lüks çanta almaya maddi gücü yetmeyecek insanları da araştırmaya dahil etmiş oluruz.

2. Örneklem çerçevesini tanımla.

Popülasyon tanımlandıktan sonraki adımda, örneklemin içerisinden elde edileceği örneklem çerçevesi belirlenir. Örneklem çerçevesi, örneklemin seçileceği elemanların listesidir.

Lüks çanta örneğine geri dönecek olursak, araştırmayı yapacak olan çanta şirketinin müşteri veri tabanı bir örneklem çerçevesi olabilir.

1936 seçim anketi sırasında Literary Digest dergisi de örneklem çerçevesi olarak dergi üyelik listesi, telefon rehberi gibi kaynakları kullanmıştı.

İdeal dünyada, bir popülasyondaki tüm elemanların örneklem çerçevesi dahilinde erişilebilir, tekil ve bilinir şekilde olması istenir fakat gerçek dünyada çoğu zaman bu gerçekleşmez. Örneklem çerçevesinin popülasyonu temsil etmediği durumlarda “örneklem çerçevesi hatası (sampling frame error)” oluşur.

3. Örnekleme büyüklüğünü belirle.

Popülasyon ve örneklem çerçevesi tanımlandıktan sonra doğru ve tutarlı bir tahminleme yapabilmek için ne kadarlık bir örneklem büyüklüğünden veri toplanması gerektiği belirlenir.

Örneklem büyüklüğü, araştırma sonunda elde edilecek çıkarımların kalitesini doğrudan etkiler.

Her araştırma için örneklemlerin “yeterince” büyük olması gerekmektedir. “Yeterince” ile kast edilen, araştırma sonuçlarını negatif etkilemeyecek ve araştırma maliyetlerini aşmayacak seviyede olmalıdır.

4. Örnekleme yöntemi seç.

Araştırmanın sonuçlarını doğrudan etkileyecek bir sonraki önemli karar örnekleme yöntemidir. Seçilen örnekleme yöntemine göre popülasyon hakkında toplanacak yöntem değişecektir.

Birazdan daha da detaylandıracağımız üzere, örnekleme yöntemleri iki farklı ana kategoride olasılıklı ve olasılık dışı örnekleme yöntemleri olarak ayrılır. Olasılıklı örnekleme yöntemleri, istatistiksel testler yapmaya ve çıktıları popülasyon özelinde genelleştirmeye imkan sağlarken, olasılık dışı örnekleme yöntemleri daha çok kitle üzerinde ön keşif imkanı sağlar.

5. Veri topla.

Son olarak, bir önceki adımlarda verilen kararlar eşliğinde veri toplama sürecine geçilir. Bu aşamada, önceki kararların dikkatle uygulanması ve örneklem oluşturma sürecinin titizlikle uygulanması önemlidir.

Örnekleme yöntemleri

İstatistikte iki farklı ana örnekleme yöntemi vardır:

Olasılıklı örnekleme (Şans örneklemesi) yöntemleri

Olasılıklı örnekleme yöntemleri, ana kütlede bulunan her bir elemanın eşit seçilme olasılığı bulunduğu ve ana kütle hakkında güçlü istatistiksel çıkarımlar yapmaya imkan sağlayan yöntemlerdir.

1. Basit tesadüfi örnekleme (Simple random sampling)

Basit tesadüfi örnekleme, bir ana kütle içerisinden her elemanın seçilme şansının eşit olduğu en basit olasılıklı örnekleme metodudur.

Basit tesadüfi örnekleme yöntemini uygulayabilmek için örneklem çerçevesi adı verilen araştırmaya konu olan popülasyonun tüm elemanlarının bilinmesi gereklidir.

Örnek:

  • Bir lisede okuyan öğrencilerin anket için seçilmesi.
  • Piyango çekilişi.
Basit tesadüfi örnekleme yönteminin kullanılabilmesi için gerekli şartlar nelerdir?
  • Popülasyonun tüm elemanları bilinmeli ve erişilebilmelidir.
Ne zaman kullanılmalıdır?
  • Popülasyon hakkında önceden az veya hiç bilginin bulunmadığı, popülasyon büyüklüğünün az (limitli) olduğu ve popülasyonun tüm elemanlarının bilindiği ve seçilmesi durumunda araştırmacı tarafından veri toplamak için erişilebildiği durumlarda kullanışlıdır.
Avantajları
  • Uygulaması çok kolaydır.
  • Her elemanın eşit seçilme şansı olduğu için yansız/tarafsız (unbiased) bir örnekleme yöntemidir (kayıp yada erişilemeyen verinin az olduğu varsayılarak) ve bu şekilde elde edilen örneklemlerin popülasyonun iyi temsilcisi olma olasılığı yüksektir. Bu tarafsızlıktan dolayı basit tesadüfi örneklem yoluyla elde edilen örneklemlerden hesaplanan istatistiklerin de yansız olması beklenir.
Dezavantajları
  • Basit tesadüfi örnekleme yönteminin düzgün bir şekilde uygulanabilmesi yani bir popülasyona ait her bireyin eşit seçilme şansına sahip olabilmesi için tüm popülasyonun elemanlarının bilinmesi ve bu listeden seçim yapılması gerekir fakat gerçek hayatta bu neredeyse çoğu zaman imkansızdır. Popülasyonun büyüklüğünün fazla olduğu durumlarda zaman alıcı ve maliyetli bir yöntemdir. Bu nedenle tamamen şansa, popülasyonu temsil etmeyen, kötü bir örneklem elde etme olasılığı vardır.
  • Popülasyonun içerisinde eşit temsil edilmesi gereken alt gruplar olduğu durumlarda dezavantajlıdır. Basit tesadüfi örnekleme, her alt grup içerisinden dengeli bir seçim yapılacağını garanti etmez.
  • Popülasyonun heterojen olduğu yani birbirinden çok farklı özelliklere sahip olduğu durumlarda kullanılamaz. Örnek olarak bir popülasyonda çok fazla farklı gelir düzeyi, etnik köken, coğrafi konum gibi desenler olduğu zaman, popülasyonu iyi temsil eden bir örneklem oluşturulması zorlaşır.

Python’da basit tesadüfi örnekleme

Python’da örnekleme yöntemlerini uygulayabilmek için 2019 yılında New York’ta AirBnB üzerinde listelenmiş evlere dair listeleme bilgilerinin olduğu bir veri seti kullanacağız.


Örnek veri seti: 2019 yılında New York’ta AirBnB üzerinde listelenmiş evlere dair listelenme bilgileri.


Herhangi bir işlem yapmadan önce ilgili kütüphaneleri ve veri setini çalışma dosyamıza çağıracağız.

import pandas as pd
import numpy as np
import seaborn as sns
from scipy import stats
import random

Veri manipülasyonu için Pandas ve NumPy, görselleştirme için Seaborn, istatistiksel işlemler için SciPy kütüphanesinden stats modülü ve son olarak “rastgele/olasılıklı” işlemler yapabilmek için random modüllerini çağırdık.

Kullanacağımız kütüphaneler hazır. read_csv() fonksiyonu ile veri setini çağıralım.

airbnb = pd.read_csv("airbnb-ny.csv")

Veri setini read_csv() fonksiyonu ile çağırdıktan yada dosyayı okuduktan sonra da diyebiliriz, Pandas’ın hazır fonksiyonlarından info()’yu kullanarak veri setini tanımak için hızlı bir göz atacağız.

airbnb.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 48895 entries, 0 to 48894
Data columns (total 16 columns):
 #   Column                          Non-Null Count  Dtype  
---  ------                          --------------  -----  
 0   id                              48895 non-null  int64  
 1   name                            48879 non-null  object 
 2   host_id                         48895 non-null  int64  
 3   host_name                       48874 non-null  object 
 4   neighbourhood_group             48895 non-null  object 
 5   neighbourhood                   48895 non-null  object 
 6   latitude                        48895 non-null  float64
 7   longitude                       48895 non-null  float64
 8   room_type                       48895 non-null  object 
 9   price                           48895 non-null  int64  
 10  minimum_nights                  48895 non-null  int64  
 11  number_of_reviews               48895 non-null  int64  
 12  last_review                     38843 non-null  object 
 13  reviews_per_month               38843 non-null  float64
 14  calculated_host_listings_count  48895 non-null  int64  
 15  availability_365                48895 non-null  int64  
dtypes: float64(3), int64(7), object(6)
memory usage: 6.0+ MB
  • AirBnB veri seti 16 değişkenden ve 48,895 adet gözlemden oluşuyor.
  • Veri setinde, listenen bir mülkü tanımlayabilecek ID, sahibinin adı, bulunduğu mahalle, enlem boylam bilgileri, gecelik fiyatı, kiralanması gereken minimum zorunlu gece sayısı, yorum sayısı vs. gibi bilgiler bulunuyor.
  • “Non-Null Count” sütunundan da anlaşılacağı gibi her değişkende 48,895 adet gözlem bulunmuyor. Bu da bazı değişkenlerin kayıp verilere sahip olduğunu gösteriyor.

Python’da basit tesadüfi örnekleme yöntemini uygulayabilmek için Pandas’ın hazır fonksiyonlarından biri olan sample() fonksiyonunu kullanacağız.

s1 = airbnb.sample(n = 50, random_state = 42)
  • dataframe.sample syntaxına sahip fonksiyon 2 adet parametre kullanır.
    • n: Örneklem büyüklüğü
    • random_state: Zorunlu olmayan bu parametre, fonksiyon tekrarlandığı zaman aynı değerleri mi yoksa farklı değerleri mi rastgele üretmesini istediğimizi belirtmek için kullanırız. random_state = 42 değerini verdiğiniz her durumda tablodan aynı rastgele değerler çekilecektir. 42 değeri yerine kendi istediğiniz rakamı kullanabilirsiniz. Temsilidir.

Basit tesadüfi örnekleme işlemini gerçekleştirebilmek için “random” modülünün de sample() fonksiyonu bulunmaktadır. Çalışma prensibi temel olarak aynı olmasına rağmen random modülünün sample() fonksiyonu içerisinden seçim yapacağı değerleri DataFrame olarak değil “liste” formatında kabul eder.

2. Sistematik tesadüfi örnekleme (Systematic sampling)

Sistematik tesadüfi örnekleme, bir ana kütle içerisinden elemanların sıralanıp belirli aralıklarla (Ör: her n’inci eleman) seçildiği örnekleme yöntemidir. Sistematik tesadüfi örnekleme yönteminde her elemanın eşit seçilme şansına sahip olması için ilk elemanın rastgele, diğer elemanların belirlenen kurala göre seçilmesi önerilir. Bir şirketin çalışanlarının kıdem seviyesine göre sıralandığı bir veri tabanında, junior seviyesindeki çalışanların daha az temsil edilmesi riski olabilir.

Basit tesadüfi örnekleme yönteminde olduğu gibi popülasyonun tüm elemanlarının bilinmesi gereklidir fakat bu yöntemden farklı olarak sistematik örnekleme listenin önceden bilinmediği durumlarda da kullanılabilir. Örnek olarak bir websitesine giren her 50. ziyaretçinin analiz için seçilmesini gösterebiliriz. Örneklem oluştururken, tüm elemanları bilmiyoruz fakat gelen her 50. ziyaretçi hala rastgele ziyaret gerçekleştireceği için sorun teşkil etmez.

Örnek:

  • Bir e-ticaret sitesinin web sitesini ziyaret eden her 50. ziyaretçinin loglanması
  • Bir alışveriş merkezine giren her 100. kişiye anket yapılması
Sistematik tesadüfi örnekleme yönteminin kullanılabilmesi için gerekli şartlar nelerdir?
  • Popülasyonun tüm elemanları bilinmeli ve erişilebilmelidir.
  • Veride herhangi bir desen (pattern) olmamalıdır.
Ne zaman kullanılmalıdır?
  • Yukarıdaki şartları sağlayan büyük veri setlerinde kullanışlıdır.
Avantajları
  • Basit tesadüfi örnekleme yöntemine göre daha hızlıdır.
  • Örneklemin oluşturulma aşamasında araştırmacıya diğer yöntemlere göre belli bir oranda kontrol verir.
  • Seçilen örneklem popülasyona daha eşit bir şekilde yayılır ve popülasyonu daha iyi temsil eder.
  • Kullanım için popülasyon elemanlarının listesinin (örnekleme çerçevesi) önden belli olması gerekmez.
Dezavantajları
  • Basit tesadüfi örnekleme yönteminde olduğu gibi popülasyonun tüm elemanlarının bilinmesi ve seçilmesi durumunda araştırmacı tarafından veri toplamak için erişilebilmesi gerekir.
  • Popülasyonda herhangi bir standart desen oluştuğu yani popülasyonun periyodik (döngüsel) şekilde sıralandığı durumlarda dezavantaj yaratır. Bu durum örnekleme yanlılığına (sampling bias) sebep olabilir.
    • Örnek olarak bir iş yerinde çalışanların sıralandığı zaman cinsiyet dağılımının bu şekilde göründüğünü kabul edelim: EKEKEKEKEK (E: Erkek, K: Kadın)
    • Bu şekilde bir desende seçeceğiniz her 10. kişi kadın olacağı için oluşturulacak örneklem sadece kadınlardan oluşacaktır.

Python’da sistematik tesadüfi örnekleme

Python’da sistematik tesadüfi örnekleme yöntemini uygulayabilmek için hazır bir fonksiyon bulunmuyor. Hazır kütüphanelerde bulunan birkaç fonksiyonu kullanarak kendi basit fonksiyonumuzu oluşturacağız.

Oluşturacağımız fonksiyonun, tablonun ilk ve son gözlemi arasında her x’inci adımda ilerleyip hangi gözlemlerin seçileceğini belirlemesini ve daha sonrasında da ilgili tablodan ilk adımda belirlenen gözlemleri seçmesini istiyoruz.

def systematic_samp(df, stp):
    idx = np.arange(0, len(df), step = stp)
    sample = df.iloc[idx]
    
    return sample

sys_samp = systematic_samp(airbnb, 200)
  • systematic_samp() adında bir fonksiyon oluşturduk. Bu fonksiyon parametre olarak seçim yapılacak tablo adını (df) ve hangi aralıklarla seçim yapılacağı bilgisini (stp) parametre olarak kullanıyor.
  • NumPy modülünde bulunan arange() fonksiyonu, belirli aralıklar arasında aritmetik sayılar üreten bir fonksiyondur. Başlangıç, bitiş değerini ve aralık değerini parametre olarak kullanır. Bu fonksiyonu kullanarak aritmetik sayılar (belirli bir ritimde artış/azalış gösteren sayılar) ürettik.
  • Pandas’da, tablonun satır ve sütunlarındaki indeks değerlerine göre seçim yapmak için kullanılan iloc fonksiyonunu kullanarak bir önceki adımda ürettiğimiz aritmetik sayılara sahip gözlemleri filtreledik.
  • Oluşturduğumuz fonksiyonu airbnb veri seti üzerinde her 200. gözlemi seçmek için kullandık ve yeni oluşan örneklem tablosunu sys_samp adındaki değişkene kaydettik.

3. Tabakalı örnekleme (Stratified sampling)

Tabakalı örnekleme yöntemi, popülasyonu “strata” adı verilen homojen alt gruplara bölüp, her strata içerisinden herhangi bir olasılıklı örnekleme yöntemi ile rastgele seçildiği örnekleme yöntemidir.

Örnek:

  • Bir şirket içerisinde yapılacak memnuniyet anketinde, her departmanın eşit temsil edilebilmesi için gruplara ayrılıp sonrasında oluşan gruplardan basit tesadüfi örnekleme yöntemi ile çekilmesi.
Tabakalı örnekleme yönteminin kullanılabilmesi için gerekli şartlar nelerdir?
  • Strata’ların oluşturulabilmesi için araştırmacının popülasyon hakkında ön bilgisi bulunmalıdır.
  • Popülasyondaki her eleman emin bir şekilde, birbiriyle çakışmayan alt gruplara ayrılmalıdır. Strata içerisindeki değişkenlik az (Ör: aynı departmanda çalışanların benzer memnuniyet oranlarının olması), strata’lar arası değişkenlik fazla (Ör: Memnuniyet derecesinin departmanlar arası farklı olması) olmalıdır.
Ne zaman kullanılmalıdır?
  • Popülasyonun içerisinde eşit temsil edilmesi gereken alt gruplar olduğu durumlarda kullanışlıdır.
  • Uygulaması karışık olabileceği için, düzenli yapılan büyük araştırmaların arasında yapılan daha küçük araştırmalar için kullanışlıdır. (Ör: Her 10 yılda yapılan büyük nüfus sayımı arasında her 5 yılda bir yapılacak küçük araştırmalar)
Avantajları
  • Popülasyon içerisindeki alt gruplara eşit derecede temsil edilme imkanı sağlar. Bu sayede popülasyon içerisindeki ana karakteristikleri yansıttığı için elde edilen örneklemlerin popülasyonu temsil gücü yüksektir.
Dezavantajları
  • Strata’ların oluşturulabilmesi için araştırmacının popülasyon hakkında ön bilgisi bulunmalıdır.
  • Popülasyondaki her elemanın emin bir şekilde, birbiriyle çakışmadığı alt gruplara ayrılamadığı (Ör: Birden çok gruba dahil olabilecek elemanların olması) durumlarda kullanılamaz.

Python’da tabakalı tesadüfi örnekleme

Tabakalı tesadüfi örnekleme yöntemi şu şekilde çalışır:

  1. Veri setini alt gruplara böl.
  2. Her grup içerisinden grubu temsil edecek oranda rastgele tesadüfi seçim yap.

AirBnB veri setine göz attığımızda, her mülkün New York’un hangi mahallesinde bulunduğunu gösteren bir değişken görüyoruz. Bu değişkene yakından göz atacağız.

df = airbnb["neighbourhood_group"].value_counts()

df = pd.DataFrame(df).reset_index()
df.columns = ["neighbourhood", "count"]
df["perc"] = df["count"] / df["count"].sum()

print(df)
	neighbourhood	count	perc
0	Manhattan	21661	0.443011
1	Brooklyn	20104	0.411167
2	Queens	        5666	0.115881
3	Bronx	        1091	0.022313
4	Staten Island	373	0.007629
  • Pandas’ın value_counts() metodu ile bu değişkende bulunan tekil değerlerin sayısını listeledik.
  • value_counts() fonksiyonu bir Pandas Serisi üretir. Bunu yine bir Pandas metodu olan DataFrame()’i kullanarak bir tabloya dönüştürdük ve mahalle adlarının indeks olmaması için reset_index() fonksiyonunu kullandık.
  • DataFrame’in sütun isimlerini daha açıklayıcı olması için “neighbourhood” ve “count” olacak şekilde güncelledik.
  • Son olarak da “perc” adını verdiğimiz yeni bir sütun oluşturarak, her bir mahallenin toplam pastanın ne kadarına eş değer olduğunu yüzdelik olarak hesapladık.

Çıkan sonuçlara göre listelenen mülklerin çoğunluğu Manhattan ve Brooklyn (her ikisinin toplamı mülklerin %85’ine denk geliyor.) bölgesinde yer alırken, çok azı Staten Island bölgesinde yer alıyor. Rastgele tesadüfi örnekleme yöntemi ile seçim yapıldığı zaman “Staten Island” bölgesinin “az temsil edilme” riski vardır.

AirBnB veri setinden örneklem büyüklüğü 1000 olan bir örneklem oluşturmak istersek, her mahalleden kaç adet elemana ihtiyaç duyarız?

df["samp_n"] = round(df["perc"] * 1000)

print(df)
       neighbourhood	count	  perc	       samp_n
0	Manhattan	21661	0.443011	443.0
1	Brooklyn	20104	0.411167	411.0
2	Queens	        5666	0.115881	116.0
3	Bronx	        1091	0.022313	22.0
4	Staten Island	373	0.007629	8.0

Her bir mahallenin katılım oranını 1000 ile çarptık ve round() fonksiyonunu kullanarak sonuçları yuvarladık. Bu hesaplamalara göre, 1000 adet elemanın 443’ü Manhattan, 411’i Brooklyn şeklinde sıralanarak devam ediyor.

Hangi mahalleden yani “strata”dan kaç adet çekim yapacağımızı biliyoruz. İlk önce AirBnB veri setini tabakalara göre filtreleyip, ayrı DataFrame’ler oluşturacağız. Daha sonrasında da her bir DataFrame’den yukarıda belirlediğimiz miktar kadar rastgele örnek çekip, yeni oluşan DataFrame’leri birleştireceğiz.

def strata(df, col, val):
    col_strata = df[df[col] == val]
    
    return col_strata

nbh_list = list(df["neighbourhood"])
strata_list = []

for i in nbh_list:
    strata_list.append(strata(airbnb, "neighbourhood_group", i))
  • strata adında bir fonksiyon oluşturduk. Bu fonksiyon dataframe, tabakalara ayırılacak değişken ve tabaka adını parametre olarak kullanıyor.
  • Fonksiyon parametreleri aldıktan sonra Pandas’ın filtreleme yapısını kullanarak ilgili DataFrame’deki belirtilen değişkeni bulup, tabaka adına göre yeni bir DataFrame oluşturuyor.
  • 5 tane mahallemiz var. Bu 5 mahalleye tek tek işlem yapmak yerine bir for döngüsü kullandık. for döngüsünün çalışabilmesi için mahalle isimlerini bir liste olarak nbh_list adında bir değişkene atadık.
  • for döngüsü içerisinde, oluşturduğumuz strata fonksiyonunu kullanarak her bir mahalle için DataFrame’ler oluşturduk ve strata_list adı verilen yeni bir listeye kaydettik.
  • Örnekten de görüleceği gibi strata fonksiyonuna DataFrame adı olarak “airbnb”, değişken adı olarak “neighbourhood_group” ve strata adı olarak da nbh_list adındaki değişkendeki her değeri for döngüsü yardımı ile tek tek girdik.

Her bir tabakaya göre ayrılmış DataFrame’leri oluşturduk. Şimdi tüm bu tablolardan belirlediğimiz miktarda rastgele eleman seçeceğiz. Bunun için de Pandas’ın sample() fonksiyonunu kullanacağız.

manhattan = strata_list[0].sample(443, random_state = 42)
brooklyn = strata_list[1].sample(411, random_state = 42)
queens = strata_list[2].sample(116, random_state = 42)
bronx = strata_list[3].sample(22, random_state = 42)
staten = strata_list[4].sample(8, random_state = 42)

final_stratified = pd.concat([manhattan, brooklyn, queens, bronx, staten])

print(final_stratified["neighbourhood_group"].value_counts())
Manhattan        443
Brooklyn         411
Queens           116
Bronx             22
Staten Island      8
Name: neighbourhood_group, dtype: int64
  • sample() fonksiyonu örneklem büyüklüğünü ve yeniden üretebilir rastgele sayılar oluşturabilmek için atanacak değeri parametre olarak kullanır.
  • Daha sonrasında concat() fonksiyonunu kullanarak oluşturduğumuz 5 farklı DataFrame’i birleştirerek final tablomuzu oluşturduk.
  • Yeni oluşturduğumuz tabloda her bir mahallenin ne kadar temsil edildiğine baktığımızda, oranların doğru olduğunu görüyoruz.

Tabakalı örnekleme yöntemi, makine öğrenmesi için geliştirilen bir Python kütüphanesi olan Scikit-learn (sklearn)‘de bulunan “StratifiedShuffleSplit” modülü ile de uygulanabilir. Öncelikle ilgili modülü çağıralım.

from sklearn.model_selection import StratifiedShuffleSplit

Daha sonrasında, sklearn kütüphanesinde bulunan “StratifiedShuffleSplit” fonksiyonunu kullanarak veri setini nasıl bölmek istediğimizi tanımlayacağız ve bu prosedürü (procedure) bir değişkende saklayacağız.

method = StratifiedShuffleSplit(n_splits = 1, test_size = 1000)
  • StratifiedShuffleSplit fonksiyonu, bir veri setinde makine öğrenmesi modellerinin denenmesi için veri setini test ve çalışma (train) olarak “tabakalı bir şekilde” parçalara ayırmak üzere kullanılan bir yöntemdir.
  • StratifiedShuffleSplit” fonksiyonu 2 adet parametre kullanır.
  • n_splits işlemin kaç defa tekrarlanacağını belirtirken, test_size parametresi örneklem büyüklüğünü belirtmek için kullanılır.
  • test_size parametresi tam sayı bir değer alabileceği gibi örneklem çekilecek veri setinin bir oranı da olabilir. Örnek olarak test_size 0.2 değerini aldığı zaman test için ayrılacak verinin, veri setinin %20’si olduğu anlamına gelir. Aynı zamanda bizim örneğimizde de örneklem büyüklüğünün veri setinin %20’si kadar olacağı demektir.

İstediğimiz yöntemi tanımladık. Bu yönteme göre veriyi sanki makine öğrenmesi için test ve train şeklinde ikiye ayırıyormuşuz gibi ikiye ayıracağız.

for x, y in method.split(airbnb, airbnb['neighbourhood_group']):
    stratified_random_sample = airbnb.iloc[y].sort_values(by='neighbourhood_group')
  • StratifiedShuffleSplit modülünde bulunan split() fonksiyonunu kullandık. Daha önceden oluşturduğumuz “method” isimli değişkende tanımladığımız prosedürü split() fonksiyonu ile aktive ettik.
  • split() fonksiyonu 2 adet parametre alır. İlk parametre kullanılacak veri setini, ikinci parametre ise hangi değişkene göre parçalama işleminin yapılacağını belirtir.
  • for döngüsünde kullandığımız x, örneklemenin dışında kalan gözlemlerin indeksini, y ise örnekleme için seçilen gözlemlerin indeksini saklar.
  • Daha sonrasında örneklem için seçilen gözlemleri, Pandas’ın indeks ile seçim fonksiyonu olan iloc ile filtreledik ve “neighbourhood_group” değişkenine göre sıraladık.
stratified_random_sample["neighbourhood_group"].value_counts()
Manhattan        443
Brooklyn         411
Queens           116
Bronx             22
Staten Island      8
Name: neighbourhood_group, dtype: int64

Oluşturduğumuz örneklemin mahalle dağılımına value_counts() metodunu kullanarak baktığımızda, mahallelerin veri setindeki bulunma sıklıklarına uygun şekilde seçildiğini görüyoruz.

4. Küme örnekleme (Cluster sampling)

Küme örnekleme yönteminde popülasyon “küme (cluster)” adı verilen alt gruplara ayrılır ve bu alt gruplar içerisinden diğer olasılıklı örnekleme yöntemlerinden biri kullanılarak rastgele şekilde seçim yapılır. Kümeler birbirleri arasında homojen yani benzer özelliklere sahipken, her biri kendi içerisinde heterojen yani farklı özelliklere sahiptir. Her bir küme temel olarak popülasyonun mini bir kopyasıdır.

Sık sık tabakalı örnekleme ile karıştırılan küme örnekleme yönteminde, tabakalı örneklemden farklı olarak, oluşturulan kümeler kendiliğinden doğal olarak elde edilir. Örnek olarak kümeler yaş, cinsiyet, şehir gibi karakteristikler üzerinden oluşur. Her bir küme, popülasyonu temsil etmelidir.

Tabakalı örnekleme yönteminde, kadınlar ve erkekler olarak 2 farklı alt grup oluştururken, küme örnekleme yönteminde her alt grupta popülasyona benzer bir şekilde kadınlar ve erkekler birlikte bulunacaktır.

Küme örnekleme yöntemi tek veya çoklu adımlı iki şekilde yapılabilir:

  • Tek aşamalı Popülasyon kümelere ayrılır. Daha sonrasında seçilen küme/kümelerdeki her elemandan veri toplanır.
  • Çok aşamalı: Popülasyon kümelere ayrılır. Daha sonrasında kümedeki elemanlar diğer olasılıklı örnekleme yöntemleri ile rastgele seçilir.

Örnek:

  • Fatih bölgesine yeni yapılan alışveriş merkezinin yerli halkta yarattığı memnuniyeti ölçmek için 57 mahalleden sadece seçilen mahallelerin kullanılması.
Küme örnekleme yönteminin kullanılabilmesi için gerekli şartlar nelerdir?
  • Her küme olabildiğince heterojen olmalı, popülasyonda bulunan farklı grupları da içermelidir.
  • Her küme popülasyonun mini bir temsili olmalıdır.
  • Her küme birbirinden net bir şekilde ayrı olmalı, kümeler arası kesişimler olmamalıdır.
Ne zaman kullanılmalıdır?
  • Popülasyon büyüklüğünün fazla olduğu ve araştırılacak bireylerin geniş bir alana yayıldığı durumlarda kullanışlıdır.
Avantajları
  • Pratik olarak uygulaması kolaydır.
  • Tüm popülasyon içerisinden belirli grupları seçtiği için zaman, maliyet vs. gibi daha az kaynak kullanır ve bu yönüyle ekonomiktir. Özellikle, veri toplanacak coğrafi alanın geniş olduğu durumlarda avantajlıdır.
  • Kümeler uygun bir şekilde, popülasyonu iyi temsil edecek şekilde oluşturulabildiği durumlarda örneklemler arası değişkenliği azaltır.
  • Örneklem grubu üyelerinin artan erişilebilirlik seviyesi nedeniyle daha büyük örneklem boyutu kullanılabilir.
Dezavantajları
  • Genel olarak küme örnekleme yöntemi ile oluşturulan örneklemler diğer olasılıklı örnekleme yöntemlerine kıyasla, yüksek örnekleme hatasına sahiptir. Bu duruma yöntemin “tasarım etkisinin” neden olduğu ifade edilmektedir.
  • Yöntemin etkinliğinin artması için her küme eşit sayıda elemana sahip olmalıdır. Eşit olmayan sayıda elemana sahip kümeler kullanıldığı zaman örnekleme hatası artar.
  • Kümeleme yöntemi ile elde edilen bulgular diğer bir bölge için genelleştirilemeyebilir. Örneğin, Fatih’te yaptığınız bir çalışmanın sonuçları Fatih için genelleştirilebilir fakat İstanbul’un tamamı için genelleştirilemez.
  • Popülasyonu temsil etmek için seçilen gruplarda ön yargılı bir görüş hakim ise bu gruplardan elde edilecek kümelerde de aynı görüşe rastlanacaktır. Bu durum daha sonrasında da popülasyonun aynı görüşe sahip olduğuna dair bir sonuca dönüşecektir. Küme yöntemi ile yanlı sonuçlar elde etmek görece kolaydır.
  • Kümelerde yer alan elemanlar birbirine yakın karakteristik özelliklere sahip ise yani homojenlik fazla ise örnekleme hatası büyür. Bu durumda iki yada çok aşamalı küme örneklemesi tercih edilmelidir.
  • Kümelerin birbirine benzediği kabul edilir fakat gerçekte bazı kümeler kendine has özellikler gösterir. Bu nedenle küme örneklemesinin yayılımı aynı ana kütleden diğer olasılıklı tesadüfi yöntemlerle elde edilecek örneklemlerden daha fazla olacaktır ve sonuçların tutarlılığı daha az olacaktır.

Python’da küme örnekleme

Küme örnekleme yöntemini uygularken aşağıdaki adımları tamamlayacağız:

  1. Popülasyonu belirle.
  2. Kümeleri oluştur.
  3. Örneklemleri belirle.

Küme örnekleme yöntemini uygularken de yine AirBnB veri setini kullanacağız.

1. Popülasyonu belirle.

AirBnB veri setinde, tabakalı örnekleme yöntemini uygularken keşfettiğimiz üzere, New York şehri 5 adet bölgeye ayrılıyor. Örnek olarak bu 5 bölgeden biri olan Brooklyn’de bir çalışma yapmayı hedefleyelim. Yani popülasyonumuzu Brooklyn olarak belirleyelim.

2. Kümeleri oluştur.

Brooklyn bölgesi birçok alt mahalleden oluşan geniş bir bölgedir. Veri setinde Brooklyn’in kaç adet mahalleye sahip olduğuna bakalım.

brooklyn_filter = airbnb[airbnb["neighbourhood_group"] == "Brooklyn"]

print(len(brooklyn_filter["neighbourhood"].value_counts()))
47
  • Pandas’ın filtreleme metodunu kullanarak “neighbourhood_group” değişkeninin “Brooklyn” ile eşleşen kayıtlarını filtreledik.
  • Daha sonrasında ise oluşturduğumuz DataFrame’in “neighbourhood” sütunundaki tekil kayıtları value_counts() fonksiyonu ile listeleyip, len() fonksiyonu ile bu listenin uzunluğunu bulduk.

Yaptığımız işlem sonunda Brooklyn bölgesinin 47 adet mahalleden oluştuğunu bulduk. Buradaki 47 adet mahalle bizim için bu örnekte kümeleri temsil ediyor.

Her bir kümenin kaç adet elemanı olduğuna bakalım.

neigh_list = brooklyn_filter["neighbourhood"].value_counts()

print(neigh_list[0:10])
Williamsburg                 3920
Bedford-Stuyvesant           3714
Bushwick                     2465
Crown Heights                1564
Greenpoint                   1115
Flatbush                      621
Clinton Hill                  572
Prospect-Lefferts Gardens     535
Park Slope                    506
East Flatbush                 500
Name: neighbourhood, dtype: int64

Yazı içerisinde çok yer kaplamaması için tüm liste yerine en çok listelenmiş mülke sahip ilk 10 mahalleyi yazdırdık. İlk 10 kayıttan da görülebileceği üzere, her bir mahallenin eleman sayısı birbirinden farklı ve eşit değil.

Küme örnekleme yönteminin teorisini anlatırken, kümelerin her birinin eşit büyüklükte olmasını istediğimizi belirtmiştik fakat örnekte karşılaştığımız gibi ideal dünyada da bu durum çoğunlukla mümkün olmayacaktır.

3. Örneklemleri belirle.

Örneklemleri belirlerken tek aşamalı veya çok aşamalı kümeleme yöntemlerini kullanabiliriz.

Tek aşamalı örnekleme (Single-stage sampling)

Tek aşamalı küme yöntemini uygularken, ilk önce seçilen kümeler içerisinden “rastgele” kümeleri seçip, seçilen kümeler içerisindeki tüm elemanları dahil ederek örneklemi oluştururuz.

samp_neigh = neigh_list.sample(10, random_state = 10)

print(samp_neigh)
print(samp_neigh.sum())
Fort Hamilton                  55
Bay Ridge                     141
Navy Yard                      14
Bath Beach                     17
Manhattan Beach                 8
Windsor Terrace               157
Crown Heights                1564
Red Hook                       79
Prospect-Lefferts Gardens     535
Clinton Hill                  572
Name: neighbourhood, dtype: int64

3142
  • Rastgele seçimi yapabilmek için basit tesadüfi örnekleme yönteminde de kullandığımız, Pandas’ın sample() fonksiyonunu kullandık.
  • sample() fonksiyonu ile rastgele şekilde 10 küme seçtik ve işlemin tekrarlanabilir olması için random_state değerini de 10 olarak belirttik.
  • Seçtiğimiz kümelerin eleman sayısının toplamı, örneklem büyüklüğüne eşit olacaktır. sum() fonksiyonunu kullanarak topladığımız zaman, örneklem büyüklüğünün 3,142 olması gerektiğini bulduk.

Kümeleri belirledikten sonra sıra her kümedeki elemanları seçip, final örnekleme tablosunu oluşturmaya geldi.

samp_neigh_list = samp_neigh.index.to_list()

final_clus_samp = []

for i in samp_neigh_list:
    final_clus_samp.append(airbnb[airbnb["neighbourhood"] == i])

final_clus_samp_final = pd.concat(final_clus_samp)

print(len(final_clus_samp_final))
3142
  • Seçilen her bir mahalleyi AirBnB veri setinden filtrelemek için bir for döngüsü kullandık.
  • for döngüsünün işleyebilmesi için bir listeye ihtiyacı vardır. Kümelerin bulunduğu değişken (samp_neigh) Pandas’ın seri (Series) veri tipine sahiptir. Pandas’ın serisi indeks ve değerlerden oluşur. Bizim değişkenimizde mahalleler indeks, mahallelerin frekansı değerleri oluşturur. to_list() fonksiyonunu kullanarak, serinin indeksini liste tipine dönüştürdük.
  • for döngüsü liste içerisinde bulunan mahalle isimlerini tek tek AirBnB veri setinden filtreledikten sonra “final_clus_samp” adını verdiğimiz bir boş listeye atar.
  • Son adımda Pandas’ın concat() fonksiyonunu kullanarak liste içerisinde sakladığımız, aynı sütun sayısına sahip farklı boyutlardaki tabloları birleştirdik.
  • Yaptığımız işlemi doğrulamak için oluşan final tablonun uzunluğunu hesapladık ve 3,142 yanıtını bulduk. Rastgele seçilen mahallelerin gözlem sayısının toplamı 3,142’ydi.

Çok aşamalı örnekleme (Multi-stage sampling)

Çok aşamalı küme örnekleme yönteminde, diğer olasılıklı örnekleme yöntemlerini kombinleyebiliriz. Örneklemi oluştururken, ikinci adımda basit tesadüfi örnekleme yöntemi ile seçtiğimiz kümelerin tüm elemanlarını dahil etmek yerine her kümenin elemanları arasından yine basit tesadüfi örnekleme yöntemi veya tabakalı örnekleme yöntemi ile seçim yapabiliriz.

Her bir küme farklı büyüklüğe sahip olduğu için ve her kümenin eşit şekilde temsil edilebilmesi için ikinci adımda tabakalı örnekleme yöntemini kullanacağız.

str_split = StratifiedShuffleSplit(n_splits = 1, test_size = 200)

for x, y in str_split.split(final_clus_samp_final, final_clus_samp_final["neighbourhood"]):
    strat_multi_stage = final_clus_samp_final.iloc[y]
  • Daha pratik bir yöntem olması açısından, tabakalı örnekleme yönteminde kullandığımız Sklearn kütüphanesinden StratifiedShuffleSplit() fonksiyonunu yeniden kullandık.
  • İlk önce 1 kez tekrarlanacak, 200 elemana sahip bir örneklem çekmek istediğimizi belirttik.
  • Daha sonrasında split() fonksiyonu ile tek aşamalı küme örnekleme yönteminde oluşturduğumuz final tabloyu ve her tabakanın katılım oranını belirlemek için aynı tablodan “neighbourhood” değişkenini parametre olarak kullandık.
  • Pandas’ın iloc() fonksiyonu ile, y değişkeninde tutulan örneklem indekslerini kullanarak, final tablo içerisinden örnekleme katılacak elemanları filtreledik.

Olasılık dışı (Raslantısal olmayan) örnekleme yöntemleri

Olasılık dışı örnekleme yöntemleri, isminden de anlaşılacağı gibi olasılıklı örnekleme yöntemlerinin tersi olarak, ana kütlede bulunan her elemanın eşit seçilme şansının bulunmadığı yöntemlerdir. Olasılıklı örnekleme yöntemlerine kıyasla, bu yöntemle elde edilen örneklemlerin popülasyonu yeterince iyi temsil etmeme riski yüksektir.

Olasılık dışı örnekleme yöntemlerinde, örneklemler “rastgele” oluşturulmadığı için popülasyonu temsil gücü düşüktür. Geniş bir popülasyon hakkında çıkarım yapmak için kullanılamaz!

Olasılık dışı örnekleme yöntemleri:

  • Küçük veya hakkında az araştırma yapılan popülasyonlar hakkında ön bilgi toplanması,
  • Herhangi bir karakteristik özelliğin popülasyonda bulunup bulunmadığını belirlenmesi,
  • Araştırma bütçesi veya zamanı konusunda ciddi sınırların olması,
  • Herhangi bir konuda detaylı ve derinlemesine bir analiz ihtiyacının bulunup bulunmadığının tespit edilmesi gibi durumlarda kullanışlıdır.

1. Kolay örnekleme (Convenience sampling)

Kolay örnekleme, bir araştırmacının örneklemi, kolaylıkla erişebildiği kişiler üzerinden oluşturduğu örnekleme yöntemidir. Bir üniversite öğrencisinin ders çıkışında sınıf arkadaşlarına anket yapması kolay örnekleme yöntemine örnek gösterilebilir.

Araştırmacının örneklemi oluştururken ki temel motivasyonu popülasyonu temsil etmesinden ziyade adaylara kolay, hızlı ve maliyetsiz erişim sağlamasıdır.

2. Amaçlı/Kasti örnekleme (Purposive sampling)

Kasti örnekleme yönteminde, araştırmacı kendi uzmanlığını kullanarak popülasyonu en iyi temsil edeceğini düşündüğü örneklemi seçer. Bu yöntemin amacı, spesifik bir popülasyon (Ör: Bir iş yerindeki engelli bireyler) hakkında derinlemesine bilgi edinmektedir.

3. Kota örnekleme (Quota sampling)

Kota örnekleme yönteminde, araştırmacı bireyleri belirli bir kotaya uygun olacak şekilde seçer. Örnek olarak, bir araştırmacı Türkiye hakkında bir araştırma yaparken katılımcı cinsiyet demografisini Türkiye nüfus özelliklerine göre %49,9’unu kadınlar, %50,1’ini erkekler oluşturacak şekilde seçer.

4. Kartopu örnekleme (Referral/Snowball sampling)

Kartopu örnekleme yönteminde araştırmacı örneklemi, örneklemdeki elemanların yardımıyla yani referans veya önerileriyle oluşturur. Araştırmacı, örneklemi için uygun bir kişiyi bulup veri topladıktan sonra, gözlemden kendisiyle benzer koşulları paylaşan ve araştırmaya katılabilecek tanıdıklarını paylaşmasını ister.

Bu teknik, örneklem popülasyonun az ve erişmenin zor olduğu durumlarda faydalıdır. Örnek olarak, LGBT bireyler ile ilgili yapılan bir araştırmada, araştırmaya katılan bir bireyin tanıdığı başka bir LGBT bireyi önermesini örnek gösterebiliriz.

Olasılıklı ve olasılık dışı örnekleme yöntemleri arasındaki farklar nelerdir?

Olasılık ve olasılık dışı örnekleme yöntemlerinin arasındaki en temel fark bireylerin örnekleme seçilme şanslarıdır. İki farklı grup arasındaki yaklaşım farklarını şöyle özetleyebiliriz:

Olasılıklı örnekleme yöntemleriOlasılık dışı örnekleme yöntemleri
AmacıPopülasyon hakkında “çıkarım” yapmak.Popülasyon hakkında “keşif” yapmak.
Seçim yöntemiÖrneklemler “rastgele” seçilir.Örneklemler araştırmacının tercihlerine göre seçilir.
Bireylerin katılımıHer bireyin eşit seçilme şansı vardır.Bireylerin seçilme şansı eşit değildir.
Örnekleme yanlılığı (sampling bias)Örnekleme yanlılığı düşürülmeye çalışılır.Örnekleme yanlılığı önemli değildir.
Popülasyonu temsiliPopülasyonu temsil gücü yüksek örneklemler oluşturulması amaçlanır.Örneklemlerin popülasyonu temsil etmek gibi bir amacı yoktur.
Katılımcı profiliDoğru katılımcı bulması zordur.Katılımcı bulması kolaydır.

Günümüz koşullarında artan miktardaki veri hacmine rağmen örnekleme hala önemini korumaktadır. Örnekleme yöntemlerinin etkin bir şekilde kullanımı ile araştırmalarda ciddi verimlilik ve tutarlılık elde edilmesi mümkündür.

Örnekleme ve örnekleme yöntemleri daha doğrusu olasılıklı örnekleme yöntemleri istatistiksel çıkarım yapmanın kapılarını açar.

Kaynakça

The 1936 election – a polling catastrophe
scikit-learn Documentation
PennState – Simple Random Sampling and Other Sampling Methods
A Brief Introduction to Sampling