Giriş
Daha önce basit tesadüfi örnekleme (simple random sampling) üzerine burada çalışmalar yapılmıştı. İlgilenecekler için aşağıda yararlanılan kaynaklar kısmında bu çalışmaların linklerine yer verilmiştir. Bu çalışmada ise örnek bir uygulama üzerinden ve olabildiğince yalın bir dille sistematik örnekleme yapılacak ve R programlama dili kullanılacaktır. Ancak R programlama dili bilmeyenler için Microsoft Excel kullanarak sistematik örnekleme üzerine yaptığım çalışmayı aşağı linkten inceleyebilirler.
Burada unutulmaması gereken en önemli husus bu ve buna benzer çalışmaların hangi platform veya hangi programlama diliyle yapıldığı değildir. Yapılan işin felsefesini öğrenmek hepsinden önemlidir. Microsoft Excel veya programlama dilleri bu noktada sadece birer araçtır.
Sistematik örnekleme, 1’den N’e kadar olan popülasyon birimlerinden ilk seçimin tesadüfi bir şekilde seçilmesinden sonra örneklem genişliği (k=N/n)’ne denk gelen popülasyon birimlerinin seçilmesidir. Basit tesadüfi örneklemeye göre daha kolay olan ve ona alternatif olarak kullanılan bu yöntem olasılıklı örneklem yöntemlerinden biridir. Olasılıklı örnekleme yöntemleri popülasyona ait çıkarımlar (inferences) açısından son derece önemlidir. Diğer bir deyişle, eğer örneklem çekilen popülasyon hakkında çıkarımlarda bulunmak isteniyorsa mutlaka olasılıklı örneklem yöntemlerinden biri veya bir kaçı kullanılmak zorundadır. Aslında bu yönteme sistematik tesadüfi örnekleme (systematic random sampling) de diyebiliriz. Bunun nedeni örneklem seçimi yapılan popülasyondan ilk (1.) seçimin tesadüfi bir şekilde belirlenmesidir. Genel olarak sistematik örneklemede örneklem birimlerinin seçiminin nasıl olduğuna ilişkin hazırlamış olduğum diyagram Şekil 1’de yer verilmiştir.
Şekil 1: Sistematik Örneklem Seçimi
Şekil 1’de örnekleme seçilen ilk örneklem birimi (sampling unit)’ne, ingilizce ifadeyle random start (RS) diyoruz. Sistematik örnekleme adımları ise Şekil 2’de şöyle özetlenebilir:
Şekil 2: Sistematik Örnekleme Adımları
Şekil 2’ye göre sistematik örnekleme adımlarını sırasıyla ele alalım:
- N popülasyon büyüklüğünü, n ise örneklem büyüklüğünü göstersin. Bu iki büyüklüğü kullanarak ilk olarak aralık genişliğini hesaplayalım. Aralık genişliğini k olarak gösterelim. k=N/n olmak üzere popülasyon büyüklüğünün örneklem büyüklüğüne oranını ifade etmektedir. Eşitliğinin çarpmaya göre tersi ise bize örneklem katsayısı dediğimiz sampling fraction (f=n/N)’i verir.
- 1 ile k arasında tesadüfi bir tamsayı belirlenir. Belirlenen bu sayı (RS)’ya denk gelen popülasyon birimi ilk örneklem birimini oluşturur.
- İlk örneklem biriminden sonra belirlenen örneklem büyüklüğüne ulaşıncaya kadar aşağıdaki işlemler yapılarak örneklem seçimi tamamlanır.
- İkinci örneklem birimi RS + k
- Üçüncü örneklem birimi için RS +2k
- Dörtüncü örneklem birimi için RS +3k
- Son örneklem birimi için ise RS + (n-1) x k
Uygulamada kullanılan popülasyon veri seti beden kitle endeksi (BKİ) değerlerini içeren ve 1000 (N) gözlemden oluşan sentetik veri setidir. Olasılıklı örneklem yöntemlerinden basit tekrarlı tesadüfi örnekleme yöntemiyle 7 ve 50 aralığında BKİ değerleri üretilmiştir. Uygulamada kullanılan veri setinin linki aşağıda verilmiş olup, buradan indirebilirsiniz.
Veri setini de verdikten sonra sırasıyla R’da yüklenmesi gereken kütüphaneleri verelim.
Yüklecek Kütüphaneler
sapply(c("dplyr","tibble","tidyr","readr","formattable","readxl","xlsx", "officer","stringr"), require, character.only = TRUE)
Verinin Okunması
data<-read_excel("bki.xlsx")
data
Verinin Kategorize Edilmesi
BKİ değerleri üretilirken Sağlık Bakanlığı resmi web sitesindeki BKİ alt ve üst referans değerlerinden yararlanılmıştır. Burada belirlenen BKİ alt ve üst limitleri Tablo 1’de verilmiştir.
Tablo 1: Beden Kitle Endeksi (BKİ) Kategorileri
Parametre Değeri | Kategori |
8.5 kg/m2’nin altında ise | zayıf |
18.5-24.9 kg/m2 arasında ise | normal kilolu |
25-29.9 kg/m2 arasında ise | fazla kilolu |
30-34.9 kg/m2 arasında ise | I.Derece obez |
35-39.9 kg/m2 arasında ise | II.Derece obez |
40 kg/m2 üzerinde ise | III.Derece morbid obez |
Tablo 1’de verilen sınıflandırmayı yapmak için yazılan R kod bloğu aşağıda verilmiştir. Çalışma kapsamında bu sınıflandırmayı yapmak zorunlu değildir. Sınıflandırmanın nasıl yapıldığını göstermek açısından verilmektedir. Ancak eğer bu sınıflandırma tabakalı örnekleme (stratified sampling) yapılacaksa dikkate alınacaktır. Aşağıdaki R kod bloğunda snıflandırma yapıldıktan sonra arrange() fonksiyonu kullanılarak BKİ değerlerine göre popülasyon veri setini veya listesini küçükten büyüğe doğru sıralıyoruz.
df<-data[,2] %>% as_tibble() %>% mutate(Kategori=ifelse(BKI< 18.5, "Zayif", ifelse(BKI == 18.5 & BKI<25, "Normal",ifelse(BKI == 25 & BKI<30, "Kilolu",ifelse(BKI == 30 & BKI<35, "1. Derece Obez",ifelse(BKI == 35 & BKI<40, "2. Derece Obez","3. Derece Obez")))))) %>% mutate_if(is.character, as.factor) %>% arrange(BKI) %>% mutate(ID=seq(1, NROW(BKI))) %>% select(ID, BKI, Kategori)
df
formattable(head(df,10))
Yukarıdaki R kod bloğunun çalıştırılmasından sonra görülebilmesi adına popülasyon veri setindeki ilk 10 kayıt Tablo 2’de verilmiştir.
Tablo 2: Poplülasyon Veri Setindeki İlk 10 Kayıt
Şimdi örneklem genişliği yada aralık genişliği olan k katsayımızı bulalım. k katsayımıza ilişkin iki durum önümüze çıkmaktadır. Birincisi k’nın tamsayı değeri alması, diğeri ise kesirli bir değer almasıdır. Birinci durum ikinci duruma göre kolaylıkla çözümlenmektedir.
Uygulama
a) k’nın tamsayı değeri alması durumunda sistematik örneklem seçimi
Konuyu kavramak adına ilk örnek uygulamamızı yapabiliriz. Popülasyon büyüklüğü (N) 1000 olan BKİ değerleri içerisinde örneklem büyüklüğü (n) 200 olan gözlemimizi sistematik örnekleme yöntemiyle sırasıyla seçelim.
- 1. k=N/n, yani 1000/200=5 olarak bulunur. k’yı belirledik. Sıra 1 ile k=5 arasında tesadüfi bir tamsayı değeri hesaplamaya gelmiştir. R’da bu işlemi sample(1:k, size=1, replace=F) fonksiyonu ile yapıyoruz. Fonksiyon içerisinde replace argümanı FALSE (F) ve TRUE (T) bileşenlerini içermektedir. Tek bir seçim yaptığımız için burada replace=T şeklinde de kullanabiliriz. Fonksiyon içerisinde yer verilen size argümanı ise bize seçilecek örneklem büyüklüğü göstermektedir. Burada tek bir seçim yaptığımız için size=1 olarak alınmıştır. Diğer taraftan sample() fonksiyonu dinamik bir fonksiyon olduğu için R üzerinde set.seed(1919) fonksiyonu ile sabitlenmiştir her defasında aynı sonuçları elde etmek için. Bahsedilen bu işlemleri yapmak için yazılan R kod bloğu aşağıdadır.
set.seed(1919)
N=NROW(df)#popülasyon büyüklüğü
n=200#seçilecek örneklemin büyüklüğü
k=N/n#5
rs=sample(1:k, size=1, replace=F)#ilk örneklem birimi
rs
Yukarıdaki R kod bloğu çalıştırıldığında ilk örneklem birimimiz (RS) 5 olarak bulunur. Bu 5 sıra numarasına popülasyon veri setinde karşılık gelen gözlem bizim ilk örneklem birimimizi oluşturur. Sıra numarasına göre eşleştirme işlemi aşağıda yazılan R kod bloğu ile yapılmaktadır. Bu kod bloğunda aynı zamanda seçilen örneklem excel (xlsx) dökümanına yazdırılmıştır.
#RS ve k ile örneklem büyüklüğüne ulaşarak bu aralıktan örneklem seçme
ss<-seq(rs, N, by=k)
ss<-as_tibble(ss) %>% rename(ID="value")
ss
#popülasyon listesinden belirlenen örneklem birimlerini seçme
ssorneklemsecimi<-merge(ss, df, all.x = TRUE) %>% as_tibble() %>% mutate("Örneklem Sırası"= seq(1, NROW(BKI))) %>% rename("Popülasyon Sırası"=ID) %>% select("Örneklem Sırası","Popülasyon Sırası", BKI, Kategori)
#seçilen örneklem birimlerini excele yazdırma
writexl::write_xlsx(ssorneklemsecimi, "ornek1.xlsx")
Yukarıdaki R kod bloğunun çalıştırılmasından sonra seçilen örneklem birimlerinin listesi aşağıdaki linkte verilmiş olup, buradan indirebilirsiniz.
b) k’nın kesirli bir değer alması durumunda sistematik örneklem seçimi
İkinci örneğimizde popülasyon büyüklüğü (N) 1000 olan BKİ değerleri içerisinde örneklem büyüklüğü (n) 230 olan gözlemimizi sistematik örnekleme yöntemiyle sırasıyla seçelim.
- 1. k=N/n, yani 1000/230=4,3 olarak bulunur. k’yı belirledik. Ancak k katsayısı kesirli burada. Amacımız bizim k katsayısının tamsayı olmasıdır. Bu amaçla k katsayısını 10 (k x 10) ile çarparak k=43 katsayısını elde ediyoruz. Sıra 1 ile k=43 arasında tesadüfi bir tamsayı değeri hesaplamaya gelmiştir. R’da bu işlemi sample(1:k, size=1, replace=F) fonksiyonu ile yapıyoruz. sample() fonksiyonu dinamik bir fonksiyon olduğu için R üzerinde set.seed(1920) fonksiyonu ile sabitlenmiştir her defasında aynı sonuçları elde etmek için. Bahsedilen bu işlemleri yapmak için yazılan R kod bloğu aşağıdadır.
set.seed(1920)
N1=NROW(df)
n1=230
k1=round(N1/n1,1)#4,3
k1
k1=k1*10#k kesirli olduğu için 10 ile çarpıldı (k=43). Bu durumda RS 1-43 arasında belirlenecektir.
k1
rs1=sample(1:k, size=1, replace=F)
rs1#30
Yukarıdaki kod bloğunda k’yı 10 ile çarpmıştık kesirli olduğu için. Bu durumda hesaplanan örneklem birimlerine ait sıra numaraları N=1000 olan popülasyon büyüklüğü aşacaktır ve bu istenen bir durum değildir. Burada yapacağımız işlem aşağıdaki kod bloğunda da görüleceği üzere hesaplanan sıra numaralarındaki son basamak çıkarılarak popülasyon sıra numaralarını aşmaması sağlanmıştır. Örneğin yukarıdaki R kod bloğu çalıştırıldığında ilk örneklem birimimiz (RS) 30 olarak olarak hesaplanmıştır. Son basamak çıkarıldığında 3 sıra numarasına popülasyon veri setinde karşılık gelen gözlem bizim ilk örneklem birimimizi oluşturacaktır. Bundan sonra ilk örneklem birimimizde olduğu gibi sıra numaralarındaki son basamak çıkarılarak bu sıra numaralarına göre eşleştirme işlemi yapılmıştır. Aşağıda yazılan R kod bloğunda bahsedilen bu adımların yerine getirilmesinin yanısıra seçilen örneklem birimlerine ait liste excel (xlsx) dökümanına da yazdırılmıştır.
nson<-(n1-1)*k1+rs1
ss1<-seq(rs1, nson, by=k1)
#as_tibble(ss1) %>% rename(ID="value")
ss1
x1<-as.character(ss1)
#sıra numaralarından son basamağın çıkarılması
sst1<-as.numeric(substr(x1, 1, nchar(x1)-1))%>% as_tibble()%>% rename(ID="value")
ssorneklemsecimi2<-merge(sst1, df, all.x = TRUE) %>% as_tibble() %>% mutate("Örneklem Sırası"= seq(1, NROW(BKI))) %>% rename("Popülasyon Sırası"=ID) %>% select("Örneklem Sırası","Popülasyon Sırası", BKI, Kategori)
writexl::write_xlsx(ssorneklemsecimi2, "ornek2.xlsx")
Yukarıdaki R kod bloğunun çalıştırılmasından sonra k’nın kesirli olması durumunda seçilen örneklem birimlerinin listesi aşağıdaki linkte verilmiş olup, buradan indirebilirsiniz.
Literatürde bu yapılan işlemin dışında hesaplanan örneklem genişliği (k)’nin kesirli olması durumunda, bu örnekte olduğu gibi, k katsayısını tam sayıya dönüştürmek için aşağı veya yukarı yuvarlandığı görülmektedir. Bu yöntem zaman zaman belirlenmiş olan örneklem büyüklüğü (n)’ndeki örneklem birimlerin eksik veya fazla seçilmesine sebebiyet verebilmektedir. Bu hususu dikkate almakta fayda vardır. Bu nedenle k katsayının 10 ile çarpılması, ardından 1 ile k arasında tesadüfi bir şekilde belirlenen RS (ilk örneklem birimi) ve RS’ye k’nın ilave edilerek elde edilen 2. ve sonraki örneklem birimlerini temsil eden sıra sayılarının son basamağı çıkartılarak kalan sıra sayıları üzerinden gidilmesinin daha sağlıklı ve güvenilir bir yol olacağı düşünülmektedir.
R programlama dili bilmeyenleri de düşünerek Sistematik örnekleme üzerine Microsoft Excel üzerinde hazırlamış olduğum çalışmaya ise aşağıdaki linkten ulaşabilirsiniz.
Microsoft Excel’de Sistematik Örnekleme Üzerine Bir Vaka Çalışması
Yapılan bu çalışmalar ile özellikle veri bilimi (data science) ile ilgilenen akademi ve saha çalışanlarına bir katkı sunulması amaçlanmıştır.
Faydalı olması ve farkındalık oluşturması dileğiyle.
Bilimle ve teknolojiyle kalınız.
Saygılarımla…
Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
Note: It can not be cited or copied without referencing.
Yararlanılan Kaynaklar
- The R Project for Statistical Computing. http://www.r-project.org/
- https://tevfikbulut.com/2020/05/18/tekrarsiz-basit-tesadufi-ornekleme-yontemi-kullanilarak-t-dagilim-tablosu-uzerinden-guven-araliginin-hesaplanmasina-yonelik-bir-simulasyon-calismasi-a-simulation-study-for-the-calculation-of-confiden/
- https://tevfikbulut.com/2020/05/17/tekrarsiz-basit-tesadufi-ornekleme-yontemi-kullanilarak-z-tablosu-uzerinden-guven-araliginin-hesaplanmasina-yonelik-bir-simulasyon-calismasi-a-simulation-study-for-the-calculation-of-confidence-inter/
- Microsoft Office Excel 2016. Microsoft
- http://dissertation.laerd.com/systematic-random-sampling.php
- https://www.sciencedirect.com/topics/mathematics/systematic-sampling
- Kish, Leslie .(1965). Survey Sampling. John Wiley & Sons.
- https://researchbasics.education.uconn.edu/systematic-sampling/
- https://stat.ethz.ch/pipermail/r-help/2004-August/056190.html
- https://tevfikbulut.com/2020/05/19/sistematik-ornekleme-uzerine-bir-vaka-calismasi-a-case-study-on-systematic-sampling/