Her Haftaya Bir R Paketi: “naniar ile doyumsuzca missing data görselleştirmesi”

Merhabalar,

Veri bilimi projelerimizde eksik verileri anlamlandırma, arkasındaki mekanizmayı anlama, eksiklik gerçek anlamda bir eksiklik mi gibi durumlarla mücadele ederiz. Bazen sancılı bazen de çok kritik bir süreçtir. Çünkü eksik veriler konusunda alacağımız kararlar ileriye yönelik planlarımızı ciddi şekilde etkileyebilir. Bu sebeple onları iyi tanımak, verideki rollerini belirlemek; modellerimizde yanlılığı bunun sonucunda da aşırı öğrenmeyi önleyebilir. Gelin R programındaki naniar paketiyle eksik verileri, sadece veri içerisinde konumlarını değilde neden, nerelerden kaynaklandığı bilgisini de bizlere sunabilecek görseller elde edelim.

Veri seti 1973 yılında New York’ta günlük hava durumu ile ilgili bazı parametreler barındırmaktadır.

library(naniar)
head(airquality, 10)

İlk olarak büyük resme odaklanalım; genel anlamda missing data dağılımını görelim:

vis_miss(airquality)

Veri setinde değişken bazında, hangi gözlemlerde eksiklik olduğu ve toplamda yüzde 4.8 oranında eksik veriye sahip olduğumuz bilgisini görsel bize verdi. İki değişkende eksiklik görüyoruz. Bu iki değişkeninde eşanlı bir şekilde eksik olduğu gözlemleri de görselden çıkartabiliyoruz. Bu durumu daha detaylı görebiliriz; değişkenler arasındaki eksikliğin kesişimlerini ve bunların kombinasyonlarını görebiliriz:

gg_miss_upset(airquality)

 

Bu çok değerli bir görsel: Sol yatay grafikten sadece iki değişkende -Solar.R ve Ozone- eksiklik olduğunu ve bunların miktarlarını görüyoruz. Büyük barplot’da sadece Ozone değişkeninde 35 tane, sadece Solar.R değişkeninde 5 tane, hem Ozone hem de Solar.R değişkeninde birlikte 2 tane eksik gözlem var. Gelin bu iki değişken arasındaki ilişkiyi ve her iki değişkendeki eksik verileri arasındaki ilişkiyi de inceleyelim:

library(ggplot2)
ggplot(airquality, aes(x = Ozone, y = Solar.R)) + 
  geom_miss_point() + 
  theme_dark()

Buna bir de ay bazında bir kırılım ekleyip, eksik veri mekanizmasını da araştırabiliriz:

ggplot(airquality, aes(x = Ozone, y = Solar.R)) + 
    geom_miss_point(size = 2) + 
    facet_wrap( ~ Month) +
    theme_dark()

İki değişkende de  5. ve 8. aylarda eksik değerler bulunuyor. Acaba bu değişkenlerdeki eksiklik ay değişkenine bağlı olabilir mi, aydan dolayı mı bir eksiklik var? Devam edelim. Veri setindeki her değişkende bulunan eksik gözlem miktarını hızlı bir şekilde görmek isteyebiliriz:

gg_miss_var(airquality, facet = Month) 
gg_miss_var(airquality, facet = Month, show_pct = TRUE)  #show_pct argümanı ile eksik verilerin yüzdesini görebiliriz.

Month değişkeni kırılımında her değişkendeki eksik veri miktarını görselleştirdik. Yine eksik veri mekanizmasını araştırırken harika bilgiler edinebilceğimiz bir grafik. Örneğin burada bazı aylarda Ozone değişkeninde eksik veri miktarının yüksek olduğunu görüyoruz; bununla birlikte diğer değişkenlerde bulunan eksik verileri de bu kırılımlard karşılaştırma şansı yakalıyoruz. Mesela 8. ayda hem Ozone hem de Solar.R değişkeninde kafa kafaya bir eksiklik var.

Suyunu çıkarılım 😀 Yine Month değişkeni kırılımında her değişkendeki eksik veri yüzdesini kategori bazında görselleştirerek daha zengin bir bilgi sağlayabiliriz:

gg_miss_fct(x = airquality, fct = Month)

Şimdi veri setimizde ilk gözlemden son gözleme kadar olan eksik değerlerin kümülatif toplamlarını görelim:

gg_miss_case_cumsum(airquality)

150 tane gözlemden 42’sinde eksik değer olduğunu bunların veride nasıl bir örüntüde gittiğini göstermiş oldu.

Aynı işlemi sütun bazında yapalım; değişkenler bazında eksik değerlerin kümülatif toplamlarını görelim:

gg_miss_var_cumsum(airquality)

Son olarak; verimizde binlerce değişken var ve biz nokta atışı hangi değişkenlerde eksik değer var, bunları bilmek istiyoruz:

gg_miss_which(airquality)

Eksik gözlem içermeyen değişkenler siyah ile eksik veri bulunduran değişkenler gri ile gösterilmiştir. Buradaki amacımız eksik verilerin nedenlerini, diğer değişkenler ile ilşkili olup olmadığını araştırabilmenin görsel yolla aktarımıydı. Eksik veri mekanizması hakkında daha detaylı bilgi almak isterseniz:

https://www.veribilimiokulu.com/veri-bilimi-yarismasini-nasil-kazandim-ii/

 

 

KAYNAKÇA

https://cran.r-project.org/web/packages/naniar/vignettes/naniar-visualisation.html

https://github.com/njtierney/naniar

https://www.datasciencecentral.com/profiles/blogs/exploring-kaggle-titanic-data-with-r-packages-nanair-and-upsetr

https://cran.r-project.org/web/packages/naniar/readme/README.html

 

 

 

 

 

 

Yazar Hakkında
Toplam 10 yazı
Tuğbanur GÜVELİ
Tuğbanur GÜVELİ
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara