30 Kasım 2016 Çarşamba

R Dili ile Lorenz Eğrisi Çizmek ve Gini Katsayısını Hesaplamak

Gini katsayısı, Lorenz eğrisini kullanır ve bir dağılımın eşitsizliğini ifade eder. Gini katsayısı 0 ile 1 arasında bir sayıdır. Bu sayı 0'a yaklaştıkça eşit bir dağılım görürüz.

Genelde gelir dağılımının eşitsizlik derecesini ifade etmek için kullanılır. Bu konuda yazmış olduğum ayrıntılı yazıya bir göz atmanızı tavsiye ederim. Çünkü bu yazı onun devamı niteliğinde olacak.

Yazıma şuradan erişebilirsiniz:

Bir Dağılımın Eşitsizlik Ölçüsü - Gelir Dağılımı (Gini Coefficient, Lorenz Curve)
http://www.abdullahkise.com/2016/11/bir-daglmn-esitsizlik-olcusu-gelir.html

Bu yazımızda Gini katsayısının R ile nasıl hesaplandığına odaklanacağız.

Eğer R için gerekli ortamınız kurulu değilse ve R hakkında güzel bir giriş yapmak isterseniz şu yazıma bir göz atmanızı tavsiye ederim:

Adım Adım Veri Bilimi - 1 (R Dünyasına Giriş)
http://www.abdullahkise.com/2016/10/adm-adm-veri-bilimi-1-r-dunyasna-giris.html

Hangi R ortamını kurduğunuz çok önemli değil. Biz Microsoft R Open (MRO) kurulumu üzerinde çalışacağız.

Gini katsayısını hesaplamak için çeşitli yöntemler kullanmak mümkün. Özetle formül şöyleydi:


Ancak integral hesabı yapmak veya hataya açık yöntemleri denemek yerine R paketleriyle kolayca doğrudan sonuç alabilirsiniz. Bu konuda 2 paket öneriyorum. Hakkındaki ayrıntılı bilgilere şu linklerden erişebilirsiniz:


Biz Ineq paketi üzerinden ilerleyelim. Şu adımları atıyoruz:

# Gerekli R paketini indirip kuralım - "ineq"
install.packages("ineq")

# kütüphaneyi ortamımızda kullanmak üzere yükleyelim.
library(ineq)

# Gelir örneğini bir vector şeklinde verelim. Önceki yazımızda bu veri kümesini kullanmıştık.
# vector 1 satırlık matris olarak kabul edilebilir. Aynı veri tipinden elemanlar içerir.
# vector c(1,2,3) şeklinde tanımlanır.
gelirler = c ( 1300, 1500, 2000, 5000, 7000, 8000, 10000, 20000, 60000, 80000 )
# gelirler değişkenine vector atadık

# Gelirlerin grafiğini çizelim.
plot(gelirler)


# Gelirlerin Lorenz Eğrisini çizelim.
# Çizgi rengi için col, Koordinat başlıkları için xlab,ylab parametrelerini kullandık
plot(Lc(gelirler), col = "red", xlab = "Kümülatif Nufus %", ylab = "Kümülatif Gelir %")


# Gini katsayısını hesaplayalım.
ineq(gelirler, type = "Gini")
# Output:   [1] 0.6282341

Bir de projenin tamamını görmek için ekran görüntüsüne bakalım:


Sonuç olarak Gini katsayısı 0.6 çıktı. Bir hayli eşit olmayan dağılıma sahibiz. 

Sizler de farklı veri kümelerinin dağılımlarındaki eşitsizliği bu şekilde inceleyebilirsiniz. Hatta bir adım daha ileri gidip veri kümelerini dosyadan okuyabilir paketlerin dokümantasyonlarına bakarak gelişmiş çalışmalar yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder