Logo Logo
  • Ana Sayfa
  • Hakkında
  • Kategoriler
    • Genel
    • İstatistik
    • Makine Öğrenme
    • Model Geliştirme
    • Sağlık
    • Teknoloji
  • Tüm Yazılarım
  • İletişim

İletişim

  • Email buluttevfik@gmail.com

Site Haritası

  • Ana Sayfa
  • Hakkında
  • İletişim

Sosyal Medya Adresleri

R Programlama Diliyle Sistematik Örnekleme Üzerine Bir Vaka Çalışması: A Case Study on Systematic Sampling with R Programming Language

  • ANA SAYFA
  • Blog Details
Mayıs 20 2020
  • Makine Öğrenme

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.

Microsoft Excel’de Sistematik Örnekleme Üzerine Bir Vaka Çalışması: A Case Study on Systematic Sampling in Microsoft Excel

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:

  1. 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.
  2. 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.
  3. İ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.
    1. İkinci örneklem birimi RS + k
    2. Üçüncü örneklem birimi için RS +2k
    3. Dörtüncü örneklem birimi için RS +3k
    4. 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 Setiİndir

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ğeriKategori
8.5 kg/m2’nin altında isezayıf
18.5-24.9 kg/m2 arasında isenormal kilolu
25-29.9 kg/m2 arasında isefazla kilolu
30-34.9 kg/m2 arasında iseI.Derece obez
35-39.9 kg/m2 arasında iseII.Derece obez
40 kg/m2 üzerinde iseIII.Derece morbid obez
Kaynak: https://www.sbn.gov.tr/BKindeksi.aspx

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.

Sistematik Örnekleme: Örnek 1İndir

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.

Sistematik Örnekleme: Örnek 2İndir

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/
Önceki yazı Sonraki Yazı
İlk SeçimÖrneklem KatsayısıRandom StartRSSampling FractionSistematik ÖrneklemeSistematik Tesadüfi ÖrneklemeSystematic Random SamplingSystematic Sampling

Yorum Yaz Cevabı iptal et

Son Yazılar

  • Kanada Sağlık Sisteminde Bekleme Süreleri
  • Araştırma Metodolojisi Notları-II
  • Araştırma Metodolojisi Notları-I
  • Microsoft Excel’de Bulut Endeks-Beta [BE-β] Simülasyonu
  • R’da Statik ve Dinamik Haritalama Vaka Çalışmaları: Türkiye Örneği

Son Yorumlar

  1. Küresel İnovasyon Endeksi 2021 Yılı Raporu ve Türkiye - winally.com - Küresel İnovasyon Endeksi’nde Türkiye Ne Durumda?
  2. R’da Birliktelik Kuralları | canözkan - Apriori Algoritması Üzerine Bir Vaka Çalışması: A Case Study on Apriori Algorithm
  3. Tevfik BULUT - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  4. Ahmet Aksoy - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  5. Tevfik BULUT - Z Tablosuna Göre Güven Aralığının Hesaplanmasına Yönelik Bir Simülasyon Çalışması: A Simulation Study for Calculating Confidence Interval by Z Table

Arşivler

  • Ocak 2023
  • Ekim 2022
  • Eylül 2022
  • Nisan 2022
  • Mart 2022
  • Ekim 2021
  • Eylül 2021
  • Ağustos 2021
  • Temmuz 2021
  • Haziran 2021
  • Mayıs 2021
  • Nisan 2021
  • Şubat 2021
  • Ocak 2021
  • Aralık 2020
  • Kasım 2020
  • Ekim 2020
  • Eylül 2020
  • Ağustos 2020
  • Temmuz 2020
  • Haziran 2020
  • Mayıs 2020
  • Nisan 2020
  • Mart 2020
  • Şubat 2020
  • Ocak 2020
  • Aralık 2019
  • Kasım 2019
  • Ekim 2019
  • Eylül 2019
  • Ağustos 2019
  • Mayıs 2019
  • Şubat 2019
  • Aralık 2018
  • Eylül 2018
  • Ağustos 2018
  • Temmuz 2018
  • Mayıs 2018
  • Nisan 2018
  • Ekim 2017
  • Temmuz 2017
  • Haziran 2017
  • Mayıs 2017
  • Ocak 2017

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Etiketler

Accuracy Basit Tesadüfi Örnekleme Bernoulli Olasılık Dağılımı Confusion Matrix Coronavirus Doğruluk Doğruluk Oranı Dünya Sağlık Örgütü EDA Epidemi Epidemiyology Epidemiyoloji Exploratory Data Analysis Exploratory Data Analysis (EDA) F1 Forecast Keşifsel Veri Analizi Kitle Olasılık Fonksiyonu Koronavirüs Koronavirüs Salgını Olasılık Olasılıklı Örneklem OSB Pandemi Point Estimation Point Forecast Prevalance Prevalans Probability Sampling R Recall Salgın Sağlık Bakanlığı Simple Random Sampling Tahmin TBATS TURKEY TÜRKİYE Veri Madenciliği WHO World Health Organization Yapay Zeka ÇKKV Örneklem Örneklem Büyüklüğü
Logo

Burada, gazete ve dergilerde yayınlanan çalışmalarımın tamamı çalışmakta olduğum kurumdan bağımsız olarak özel hayatımda yaptığım çalışmalardır. Dolayısıyla, burada yer alan çalışmalardan emeğe saygı adına kaynak gösterilmesi suretiyle azami ölçüde herkes yararlanabilir.

Site Haritası

  • Ana Sayfa
  • Hakkında
  • Blog
  • İletişim

Linkler

  • winally.com

Bana Ulaşın

Bu sayfa, bazı temel bilgilerin ve bir iletişim formunun yer aldığı bir iletişim sayfasıdır. Suç teşkil edecek, yasadışı, tehditkar, rahatsız edici, hakaret ve küfür içeren, aşağılayıcı, küçük düşürücü, kaba, müstehcen, ahlaka aykırı, kişilik haklarına zarar verici ya da benzeri niteliklerde içeriklerden doğan her türlü mali, hukuki, cezai, idari sorumluluk içeriği gönderen Kişilere aittir.

  • Email: buluttevfik@gmail.com

© Copyright 2022 Tevfik Bulut