Hptpy: Hipotez Testi Kütüphanesi

Herkese merhaba! Uzun zamandır veri bilimi ile alakalı bir yazı yazamamıştım. Okulda son dönemim olduğu için tez çalışmama oldukça fazla vakit ayırmak zorunda kalmıştım. Artık okulum bittiğine göre yazılarıma kaldığım yerden devam edebilirim!

Uzun zamandır internette Python mu R mı muhabbeti dönmekte. Kimileri R hakkında etmediği laf kalmazken, kimileri de Python hakkında olumsuz eleştirilerini yapmaktadır. Eğer benim şahsi fikrimi sorucak olursanız; ikisininde iyi olduğu konular var. Aynı şekilde ikisininde kötü olduğu konular var. Birinden birini kesip atmak bana göre doğru değil.

Örneğin; Hipotez Testleri. Her ne kadar Python’da hipotez testleri ile ilgili kütüphaneler olsa da, test sonuçları kısmında nerdeyse bir çıktı vermemekteler. Örneğin Scipy kütüphanesi ile iki örneklem t – testi yaptığınızda fonksiyon size sadece hesaplanmış t istatistiği değerini ve p değeri vermektedir. Ancak aynı işlemi R’da yaptığımızda ise bize aşağıdaki çıktıyı vermektedir:

R’da Bağımsız Örneklem T Testi Çıktısı

Görüldüğü gibi R’daki çıktı oldukça dolu bir içeriğe sahip; alternatif hipotezler, güven aralıkları, iki gruba ait ortalamalar vb. Yani bize bilimsel olarak her türlü bilgiyi veriyor. Scipy içindeki t – testi yetersizdir demiyorum. Sonuçta bize bir p değeri veriyor. Ancak bir hipotez yaparken yapılması gereken ilk şey; test edilecek hipotezleri yazmaktır.

Şuana kadar hipotez testleri konusunda, R dili açık ara öndedir. Python’da da aynı R’daki gibi bir hipotez testi kütüphanesi fikri yaklaşık 1 senedir aklımdaydı. Ve 2019’un Ağustos ayında ilk çalışmamı yayımladım: Hptpy! Şu zamana kadar okul bitirme telaşından dolayı kütüphanenin tanıtımını yapamadım. Ama geç olsun, güç olmasın. 🙂

Hptpy Nedir?

Hptpy, bir hipotez testinde olması gereken bütün bilgileri içeren bir hipotez testi kütüphanesidir. Hptpy kütüphanesini bilgisayarınıza kurmak için pip install hptpy komutunu kullanabilirsiniz. Şuan için detaylı bir dokümantasyonu bulunmamaktadır, ancak bu yazımda kütüphanenin içerdiği fonksiyonlardan kısaca bahsedeceğim. Önümüzdeki günlerde detaylı bir dokümantasyon yazmaya başlayacağım.

Şuan için kütüphanenin içerdiği testler şunlardır: Tek Örneklem T-Testi, İki Örneklem Bağımlı T-Testi, İki Örneklem Bağımsız T-Testi, Tek Yönlü Varyans Analizi Testi ve bu testin Homojenlik testleri, bunun yanında varyans analizinde çoklu karşılaştırma için Tukey testi.

Tek Örneklem T-Testi

Öncelikle Hptpy içinden t_tests modülünü çağırmalıyız.

import hptpy.t_tests as t_tests

Örnek verimizde su şişelerinin içindeki suyun hacmi ml cinsinden bulunmaktadır.

Burada test etmek istediğimiz, ortalama su hacmini 500 ml olup olmadığıdır. Bunun için t_tests içinden onesamp fonksiyonunu kullanacağız.

t_tests.onesamp(x = bottles["Volume"], popmean = 500, conf_level=0.95)

Görüldüğü gibi, 3 tane parametre girdik. Birincisi kullanacağımız veri, ikincisi test etmek istediğimiz ortalama değer, üçüncüsü ise güven düzeyidir. Testin sonucunda hangi hipotezi reddedeceğimizi görmekteyiz. %95 güven düzeyi ile şişelerin içindeki ortalama su hacmi 500 ml’ye eşittir.

İki Örneklem Bağımlı T-Testi

Örnek verimizde fareler uygulanan bir ilaç tedavisi sonrasında kilolarındaki değişime ait veriler bulunmaktadır.

Farelerin önceki ve sonraki ağırlıklarının birbirine eşit olup olmadığını test edeceğiz.

t_tests.twosamp_paired(x = bef_af["before"], y = bef_af["after"], conf_level = 0.95)

Burada “x” ve “y”, farelerin ilaç tedavisinden önceki ve sonraki kütleleridir.

Test sonucuna göre farelerin önceki ve sonraki ağırlıkları birbirine eşit değildir.

İki Örneklem Bağımsız T-Testi

Örnek verimizde kadın ve erkeklere ait kilo bilgileri bulunmaktadır. Kadın ve erkeklerin ortalama kilolarının eşit olup olmadığını test edeceğiz. Burada erkek ve kadınların kilolarının varyanslarının eşit olduğu kabul ediyoruz.

t_tests.twosamp_independent(x = weight["women"], y = weight["men"], equal_var = True, conf_level = 0.95)

Test sonucunda görüldüğü gibi kadın ve erkeklerin ortalama kiloları birbirine eşit değildir.

Tek Yönlü Varyans Analizi Testi

Öncelikle hptpy içinden “anova” modülünü çağırıyoruz.

import hptpy.anova as anova

Örnek verimizde “Difficile” adındaki hayali ilacın libido etkisi üzerindeki etkisi incelenmektedir. Veride “dose” ve “libido” değişkenleri vardır. “dose” değişkeninde “placebo”, “low” ve “high” kategorileri bulunmaktadır. “libido” değişkeninde ise 7 noktalı likert ölçeğe ait bir veri vardır. 7 değeri en yüksek, 1 değeri en düşük değere tekabül etmektedir.

Burada test etmek istediğimiz şey, doz miktarların etkileri arasında anlamlı bir olup olmadığıdır.

anova.anova(formula = "libido ~ C(dose)", data = dat)

Yukarıda anova fonksiyonun içindeki “formula” parametresinin içine varyans analizi modelimizi yazdık. “~” işaretinin sol tarafına libido değişkenini, sağ tarafına ise “dose” değişkenini yazdık. Genelleme yapacak olursak; sağ tarafa grup değişkenini, sol tarafa faktör değişkenini yazıyoruz.

Test sonucuna göre doz miktarlarının etkileri arasında anlamlı bir fark vardır. Ancak hangi doz miktarının bu farkı yarattığını bilmiyoruz.

Tukey Çoklu Karşılaştırma Testi

Grupların arasındaki farkları incelemek için Tukey testi kullanılır.

anova.tukey_hsd(factor="libido", group="dose", data = dat)

Levene Varyansların Homojenliği Testi

Tek yönlü varyans analizi testinin varsayımlarından birisi, gruplar arası varyansların eşitliğidir. Bunu test etmek için Levene testi kullanılır. Aşağıdaki Levene testi gösterilmiştir.

anova.homogeneity(factor="libido", group="dose", data = dat)

Bu teste göre gruplar arası varyanslar birbirine eşittir.

Hptpy Yol Haritası

Bundan sonraki süreçte yapılacak olanlar şunlardır:

  • Tek yönlü varyans analizi geliştirilecektir.
  • Parametrik olmayan hipotez testleri geliştirilecektir.
  • MANOVA testi geliştirilecektir.
  • Testlere daha fazla parametre eklenip, kullanıcıya daha fazla esneklik sağlanacaktır.

Eveet, bir yazımın daha sonu gelmiş bulunmaktayım. Hptpy hakkında olumlu veya olumsuz bütün yorumlarınızı bekliyorum. Geri bildirimler, geliştirme aşamasında oldukça önemlidir.

Yokluk hipotezini kabul etme hatasına düşmemeniz dileğiyle, esen kalın.

Hakkında Alperen Balık

Yıldız Teknik Üniversitesi İstatistik Bölümü öğrencisi. Veri Bilimcisi. İlgilendiği alanlar; Makine Öğrenmesi, Dashboard Tasarlama, Yazılım Geliştirme

GÖZ ATMAK İSTEYEBİLİRSİNİZ

GNU/Linux üzerinde Bash Komutları ile Veri Seti Keşfi ve Ön İşleme-2

Merhaba, GNU/Linux komutları ile veri seti keşfi ve ön işleme yolculuğa devam ediyoruz. İlk yazımız …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir