18 Kasım 2017 Cumartesi

Adım Adım Veri Bilimi - 3 (Temel İstatistik Kavramları)

Gelişmiş ve kullanıcı dostu haline gelmiş ürünler sayesinde veri analizi çalışmalarını sürdürmek her geçen gün daha kolay olmaktadır. Ürünlerin konforu veri analizi yapan kişilerin işlerini kolaylaştırmakla kalmayıp daha fazlasını yapabilmeleri için cesaret vermektedir.

Bu iyi bir şey. Ancak bazen bu rahatlık rehavete ve dikkatsizliğe dönüşebiliyor. Özellikle temel istatistiksel kavramlara yabancılaşma sonucu bu araçlar yanlış kullanılabiliyor. Hatalı çıktılar yıllarca fark edilmeden hatalı kararlar verilmesine sebep olabiliyor. Sonuç olarak telafisi mümkün olmayan zararlar ortaya çıkabiliyor. Araçların doğru kullanılabilmesi için temel dinamiklere hakim olmak şart. Diğer türlü hata yapmak kaçınılmaz olur.

Bir çalışmanın bilimsel olabilmesi için matematiksel (istatistiksel) bazı temellere dayandırılması gerekir. Veri Bilimi (Data Science) çalışmaları da bilimsel yöntemlerle sürdürüldüğü için Veri Bilimcilerinin (Data Scientist) matematiksel (istatistiksel) temel kavramlara hakim olması gerekir.

Bu sebeple Adım Adım Veri Bilimi serimizde bir takım temel İstatistik kavramlarına yer verelim istedim.

Bu konu ile ilişkili olan ve İstatistik biliminin tanımını yaptığımız "Adım Adım Veri Bilimi - 2 ( İstatistik Nedir?)" isimli şu makaleye bir göz atmanızı öneririm:

Serideki bu kısmın önemini daha rahat anlayabilmek için bir soru üzerinde düşünelim istiyorum.

Soru: Bir yatırımım olsun. Ana para miktarı önemli değil. Ancak yine de somutlaştırmak için 100 tl ana param olsun diyelim. Yıl yıl gelir yüzdelerini ve ana paradaki artışı aşağıdaki tabloda görebilirsiniz. Merak ettiğim şey şu; yıllık ortalama yüzde kaç gelir elde ediyorum?


Günlük hayatta sıkça karşılaşabildiğimiz kolay bir soru. Cevabı üzerinde biraz düşünün. Yıllık ortalama yüzde kaç gelir elde ediyorum?

Kolay bir soru olduğu için hızlıca hesaplayabiliriz. Yıl yıl %10, %50, %30 gelir elde ediyorsam, bu durumda üçüncü yılın sonunda yılda ortama (10+50+30) / 3 yani %90/3 sonuç olarak %30 yıllık ortalama gelir elde ediyorum demektir. Yani bildiğimiz aritmetik ortalama aldık.

Kolay bir soru ama yine de sağlamasını da yapalım istiyorum. Bulduğumuz bu yıllık ortalamayı ana paraya uygulayalım. Yıl yıl gelirim şöyle olur:


Fakat o da ne? Olması gerekenden farklı bir sonuç elde ettim. İlginç değil mi? ortalamayı uyguladığımda üçüncü yılın sonunda, gerçekten elde ettiğim gelirden daha fazlası ile karşılaştım. 214.5 elde etmeliydim, 219.7 ile karşılaştım. Sağlamasını yaptığımda işlemin hatalı olduğunu gördüğüme göre bir yerde hata yaptım demektir. Acaba nerede?

Burada aritmetik ortalama kullandık. Hatalı oldu. O halde farklı bir ortalama deneyelim. Mesela az duyduğumuz, belki de normal hayatta hiç kullanmayacağımızı düşündüğümüz bir ortalamaya bakalım. Geometrik ortalamaya ...


Geometrik ortalama yıllık ortalama %28.9 'luk gelirim olduğunu söylüyor. Yıl yıl bu oran üzerinden sağlamasını yaptığımda üçüncü yılın sonunda gerçekten elde ettiğim gelirimle karşılaşıyorum. yani 214.5 ile. Sağlaması geometrik ortalamanın doğru olduğunu gösteriyor. Harika! 

Bu sonuç bir çok kişi tarafından beklenmediktir. Zaten benim dikkat çekmek istediğim şey de tam olarak budur. Temel istatistiksel kavramlara yabancılaşmış kişilerin veri analizi sırasında buna benzer beklenmedik hatalar yapma ihtimali çok yüksektir. Burada rehavetle verilmiş aritmetik ortalama kararı değil, temel kavramlara hakimiyet sonucu verilmiş geometrik ortalama kararı isabetli sonucu vermektedir. 

Bir çok ortalama çeşidi mevcut. Hangisinin tam olarak nerede kullanıldığını ilerleyen yazılarda ihtiyaç oldukça açıklarız. Biz konuya daha temelden girelim ve veri analizi için gerekli temel istatistiksel kavramları ele alalım. Kavramları literatürdeki sıkıcı tanımları ile ifade etmek istemiyorum. Mümkün olduğunca sezgisel ve kullanışlı tanımlarla kavramları ele alalım istiyorum. Önce veri dediğimiz şeyi tanıyalım.

Veri Nedir?


Veri dediğimiz şey sayılar, kelimeler, ölçümler, gözlemler veya kısaca bir şeyi tanımlayan olgulardır.

Verileri nitel ve nicel olarak 2 gruba ayırabiliriz:


  1. Nitel (Qualitative): Bir şeyi tanımlamak, açıklamak için kullanılan bilgidir. Bu türden bilgiler daha çok tabloda tutulabilen kurallı bir yapıda değil de çeşitli biçimlerde tutulabilen serbest yapıda olur. İlgili konudaki gözlemler, dokümanlar, röportajlar vs. kaynakları oluşturur. Mesela "eğlenceli bir tatildi" ifadesi bu türden bir bilgidir.
  2. Nicel (Quantitative): Bir şeyi saymak ve ölçmek için kullanılan bilgidir. Bu türden bilgiler genelde tabloda tutulabilen bir yapıda olur. Nicel verileri iki grupta inceleyebiliriz:
    • Kesikli (Discrete): Sayılabilen, sayılması mantıklı taneli olan şeyler hakkındaki veriler bu gruba girer. Mesela bir ekibin çalışan sayısı 5 kişi olsun. Buradaki kişi sayısı olan 5 kesikli veridir. Ekibi iki grubu ayıralım dediğimizde bu gruplar 2,5 kişilik olamaz. Ara değerler yoktur.
    • Sürekli (Continuous): Ölçülebilen, ölçülmesi mantıklı olan şeyler hakkındaki veriler bu gruba girer. Mesela çalışanların evle iş yeri arası uzaklıkları sürekli veridir. Ara değerlerin tümü mantıklıdır. Ancak bazı durumlarda sürekli veriler kesikli veriler olarak ifade edilebilir. Mesela evle iş yeri arası uzaklığını bazı kriterlere bakarak yakın ve uzak diye iki gruba ayırabiliriz. Böylece bu konudaki veri artık sürekli değil kesikli olur.


Verileri hareketine göre 2 gruba ayırabiliriz:

  1. Yığın Veri (Batch Data): Bu türden veriler ile çalışmak görece daha kolaydır. Genelde konu hakkındaki tüm veri bir arada bulunur. Bu veri kümesi belli bir zaman diliminde bir araya getirilmiştir ve bir bütün olarak analiz edilir. Geleneksel veritabanlarındaki veriler bu kapsamda değerlendirilir. Mesela rapor yapmak için hazırladığınız tablolardaki veriler bir yığın halindedir. Durağandır.
  2. Akan Veri (Stream Data): Bu türden veriler ile çalışmak görece daha karmaşıktır. Verileri yakalamak ve analiz etmek için özel teknik ve araçlar gerekmektedir. Geleneksel yöntemlerin dışına çıkmak gerekir. Kaynaktan parça parça ve neredeyse sürekli olarak üretilir. Analiz genelde gerçek zamanlı olarak yapılır. Mesela bir binadaki sıcaklık sensörlerinden gelen veriler bu türden verilerdir. Durağan değildir. Hareket halindedir. Üstelik bazen geleneksel yöntemlerle yakalanamayacak kadar da hızlı akar.


Verileri yapısına göre 3 gruba ayırabiliriz:

  1. Yapılandırılmamış (Unstructured): Resim, düz metin, video, ses gibi serbest yapıda olan verilerdir. Kendi içinde bir takım standartları olsa da geleneksel yöntemlerle yakalamak, tutmak, işlemek ve değer üretmek pek mümkün değildir.
  2. Yarı Yapılandırılmış (Semi Structured): csv, xml, json, yaml gibi belli kurallara uyan kısmen serbest yapıdaki verilerdir. Her bir kayıt aynı genel kurala uysa da bir birinden farklı tipte ve derinlikte olabilir.
  3. Yapılandırılmış (Structured): Tablo yapısında tutulabilen verilerdir. Veri satır ve sütunların kesişimlerinde tutulur. Her satırda aynı sırada ve aynı tipte kolonlar yer alır. Bildiğimiz tablo mantığı yani. Hemen yeri gelmişken söyleyeyim. Bir araştırmaya göre şirketlerin kendisi hakkında ulaşabileceği verilerin sadece %20'si bu yapıdadır. Günümüzün trend konusu, geriye kalan %80 'lik dilimden, yani yukarıdaki ilk iki türdeki yapıdan değer üretmektir.


Bir önceki yazımızda bahsettiğimiz Betimsel İstatistik (Descriptive Statistics) teknikleri özellikle yapısal veriler üzerinde çalışma ile ilgili çözümler sunar. İlk etapta bu tekniklere odaklanacağız.

İstatistiksel çalışmanın temeli hakkındaki şu bilgileri önemine binaen, önceki yazımdan buraya aynen alıyorum:

İstatistiksel çalışmalarda bazen hakkında veri toplamak istediğimiz grubun tüm üyelerine erişebiliriz. Bazen de zaman, maliyetler vs. gibi bir çok nedenden dolayı grup üyelerinin tümüne ulaşmak mümkün olmayabilir. Bu durumda tüm üyelerine ulaşamadığımız gruba en çok benzeyen küçük bir grup üzerinde çalışmak ve çıkan sonuçlardaki hatayı göz ardı ederek tüm grup hakkında fikir edinmeyi ummak zorunda kalırız. 
İstatistiksel çalışmalarda çoğunlukla küçük bir grup üzerinde yapılan analizlerden elde edilen sonuçlara bakılarak büyük bir grup hakkında karara varılması amaçlanır. Büyük grup olarak nitelendirdiğimiz kitle (ana kütle) hakkında merak ettiğimiz soruların cevabını bu kitleyi (ana kütleyi) en iyi ifade eden küçük grupta yani örneklemde ararız. Sonra bulgularımızı genele yayar, kitleyi anlamak için kullanırız.  
Örneklem üzerinden kitle (ana kütle) hakkında fikir edinme yöntemleri oldukça kullanışlıdır. Mesela bu sayede ülkedeki tüm hayvanları yemeden et kalitesi hakkında fikir edinebiliyoruz. Çok şükür! 
Örneklem seçerken çok dikkatli olmak gerekir. Örneklem kitleyi en iyi ifade edecek şekilde seçilmelidir. Hem örneklem seçimi sırasında hem de veri toplarken ön yargıdan (biased) ve veri toplama sürecini sekteye uğratacak yaklaşımlardan (mesela uzun anketler) uzak durmak gerekir. Kitleyi temsil etmeyecek küçük belirgin bir gruptan çeşitli yönlendirmeler ve kısıtlı cevap seçeneklerine mahkum ederek elde edilen veriler çöptür ve yapılan analizler çöp olur.  
Örneklem seçimi rassal (rastgele) veya kitleyi ifade edecek şekilde iradi (istemli) olarak yapılabilir. Seçilen örneklemlerden veri toplanırken amaca uymayan ve sonucu etkileyen faktörlerin devrede olup olmadığı kontrol edilmelidir.
Yazının tümüne şu linkten ulaşabilirsiniz:

Anakütle veya örneklem hakkında topladığımız veriler aşağıdakine benzer bir tablo formatında olabilir. Bu durumda tablodaki her bir satıra "Birim" (Observation) her bir kolona "Değişken"  (Variable) değişkenin aldığı her bir değere de "Şık" (Value) adı verilir.


Topladığımız bu veriler üzerinde daha rahat çalışmak için bir takım düzenlemeler yapabiliyoruz. Elde etiğimiz veri kümesinin karakteristiğini anlayabilmek için de bir takım teknikler kullanıyoruz.

Bu yazımızda verinin tanımına ve farklı açılardan nasıl incelendiğine bir göz attık. Bir sonraki yazımızda bu düzenlemelerin ve tekniklerin bazılarının neler olduğuna odaklanacağız.