Ana içeriğe atla

Veri Bilimi Okulu

R ile Veri Manipülasyonu | Bölüm 3/3
R ile Veri Manipülasyonu | Bölüm 3/3
sp3

Sonuç

Tüm süreç boyunca veri manipülasyonu hakkında teorik bilgiler edindik. Artık önümüze veri geldiğinde neler yapacağımızı, hangi yaklaşımlarla hareket edeceğimizi biliyoruz. Bundan sonrasında bu teorik bilgilerimizi pratiğe dökme zamanı. Aşağıdaki üç aşamayı dikkatli bir şekilde uyguladığınızda daha bilinçli bir şekilde veri manipülasyonunu gerçekleştirebiliriz.

  1. Ham verileri keşfetmek
  2. Düzenli veri formatı – Tidy data
  3. Veriyi analizler için hazırlamak

Tüm bu teorik bilgileri bir hava durumu seti üzerinde uygulamasını yaptığımız bölüme de göz atarmanız, teorik bilgilerin pekişmesine yardımcı olacaktır. Ayrıca bu teorik bilgileri kendi veri setleriniz üzerinde denemeniz sizlere iyi bir deneyim kazandıracakır.

Chatbu WhatsApp Asistanı

Uygulama linki aşağıdadır.

https://www.veribilimiokulu.com/r-ile-veri-manipulasyonu-uygulama/

Kaynak: https://www.datacamp.com/courses/cleaning-data-in-r

 

 

6. Eksik Gözlemler ve Özel Değerler

Eksik gözlemler,

  • rastgele olabilir ama varsayımı tehlikelidir.
  • Bazen değişkenler veya ilgili çıktılar ile ilişkilidir.
  • R’da eksik gözlemler NA olarak temsil edilir.
  • Diğer formatlarda da olabilir. Örneğin, Excelde #N/A şeklinde, SPSS ve SAS’ta . şeklinde veya boş bir metin olarak karşımıza çıkabilir.

Özel Değerler,

  • Inf – Infinte Value = Sonsuz Değerler
1/0
## [1] Inf
22222^22222
## [1] Inf
  • Nan – Not a number = Bir sayı değil
0/0
## [1] NaN

6.1. Eksik Gözlem Tespiti

Eksik gözlemlerimizin olduğu bir veri seti oluşturalım.

df <- data.frame(
  a = c(1,NA,8,NA),
  b = c(3,NA,88,23),
  c = c(2,45,3,1)
)

df
##    a  b  c
## 1  1  3  2
## 2 NA NA 45
## 3  8 88  3
## 4 NA 23  1
  • is.na() tüm veri setinde mantıksal olarak eksik gözlem tespiti için kullanılır.
is.na(df)
##          a     b     c
## [1,] FALSE FALSE FALSE
## [2,]  TRUE  TRUE FALSE
## [3,] FALSE FALSE FALSE
## [4,]  TRUE FALSE FALSE
  • any(is.na()) veri setinde herhangi bir eksik gözlem var mı diye bakmak için kullanılır.
any(is.na(df))
## [1] TRUE

Eksik gözlemlerimizin olduğunu artık biliyoruz. Peki ne kadar eksi gözlemimiz var ?

sum(is.na(df))
## [1] 3

Elimizde 3 tane eksik gözlemimiz bulunmakta. Yani mantıksal olarak 3 tane TRUE mevcut.

Ayrıca summary fonksiyonu ile veri setinin özetine bakarsak eksik gözlemlerimizin nerede kaç tane olduğunu da görebiliriz.

summary(df)
##        a              b              c        
##  Min.   :1.00   Min.   : 3.0   Min.   : 1.00  
##  1st Qu.:2.75   1st Qu.:13.0   1st Qu.: 1.75  
##  Median :4.50   Median :23.0   Median : 2.50  
##  Mean   :4.50   Mean   :38.0   Mean   :12.75  
##  3rd Qu.:6.25   3rd Qu.:55.5   3rd Qu.:13.50  
##  Max.   :8.00   Max.   :88.0   Max.   :45.00  
##  NA's   :2      NA's   :1

6.2. Eksik Gözlemler ile Mücadele

  • Satır bazında eksik gözlem olmayan değerleri mantıksal olarak göstermek,
complete.cases(df)
## [1]  TRUE FALSE  TRUE FALSE
  • Eksik gözlemlerin silinmesi,
df[complete.cases(df),]
##   a  b c
## 1 1  3 2
## 3 8 88 3

veya,

na.omit(df)
##   a  b c
## 1 1  3 2
## 3 8 88 3

7. Aykırı Değerler

Örneğin 30 kişilik bir sınıfın boy ortalamasını bulmak istiyoruz.Ama bu sınıfta 2 metrelik bir öğrencinin olduğunu düşünelim. Bu öğrenci nedeniyle boy ortalaması olması gerekenden yüksek çıkacaktır. Bu yüzden analizi yapmadan bu öğrenciyi hesaba katmamak gerekir. İşte bu 2 metrelik öğrenci bir aykırı gözlem / değerdir.

Aykırı gözlem tespitinde boxplot kullanışlı bir araçtır. Boxplotun uçlarının dışındaki noktalar bize aykırı değerleri göstermektedir.

set.seed(10)

outliers <- c(rnorm(30, mean = 15, sd = 5), -5,30,55)

boxplot(outliers, horizontal = TRUE)

Aykırı değerler,

  • veri içerisindeki diğer değerlerden uzaktadır
  • yanlış veri girişinden, deneysel bir hatadan, ölçme hatalarından kaynaklanır.

Bir veri bilimci olarak kendimize sormamız gereken soru, “bu aykırı gözlemler neden veri içerisinde ?”. Buna karar verdikten sonra problemimize bağlı olarak aykırı değerlere veri setinden atılablir veya tutulabilir.

7.1. Bariz Hatalar

boxplot(outliers, horizontal = TRUE)

Yukarıdaki boxplotun aslında bir şirkette çalışanların yaş dağılımını olduğunu söylersek, verideki -5 değeri yanlış bir veridir.

  • Bariz hataları pek çok formatta karşımıza çıkabilir.

Örneğin, yaş verisinde aykırı gözlemin negatif veya 250 gibi olması akla yatkın bir gözlem değildir.

  • Bariz hatalara bazı yanlışlıklar neden olur.

Veri giriş hataları, ölçüm hataları, eksik gözlemler için özel değerler girilmesi (-1 gibi) ve benzer yanlışlıklar ile bariz hatalar karşımıza çıkar.

  • Bariz hatalar ortadan kaldırılmalı veya düzeltilmelidir.

7.2. Aykırı Değerleri ve Hataları Bulma

Aykırı değerlerin olduğu bir veri seti oluşturalım.

set.seed(10)
df2 <- data.frame(A = rnorm(100,50,10),
                  B = c(rnorm(99,50,10),500),
                  C = c(rnorm(99,50,10),-1))

summary fonksiyonundaki özet istatistikler ile aykırı gözlemleri tespit edebiliriz. Çıktıda minimum ve maksimum değerlere bakara değişkenlerdeki aykırı değerler görülebilir.

summary(df2)
##        A               B                C        
##  Min.   :28.15   Min.   : 26.79   Min.   :-1.00  
##  1st Qu.:41.71   1st Qu.: 41.35   1st Qu.:43.01  
##  Median :48.07   Median : 50.82   Median :50.53  
##  Mean   :48.63   Mean   : 53.66   Mean   :49.57  
##  3rd Qu.:55.93   3rd Qu.: 56.73   3rd Qu.:57.14  
##  Max.   :72.21   Max.   :500.00   Max.   :74.30

B değişkeninin maksimum değeri 500, C değişkeninin minimum değeri ise -1’dir. B değişkeninin histogramına bakalım.

hist(df2$B, breaks = 20)

Histogramdaki tüm değerler 0 ile 100 arasındadır fakat grafiğin en sağında tek bir gözlem bulunmakta. Muhtemelen 500 değeri yanlışıkla girilmiş olabilir diye düşünebiliriz.

Aykırı gözlemleri daha iyi görmek için bir boxplot çizdirelim. Boxplotta da görüleceği üzere 500 ve -1 değerleri birer aykırı gözlemlerdir.

boxplot(df2)

Sonuç

Tüm süreç boyunca veri manipülasyonu hakkında teorik bilgiler edindik. Artık önümüze veri geldiğinde neler yapacağımızı, hangi yaklaşımlarla hareket edeceğimizi biliyoruz. Bundan sonrasında bu teorik bilgilerimizi pratiğe dökme zamanı. Aşağıdaki üç aşamayı dikkatli bir şekilde uyguladığınızda daha bilinçli bir şekilde veri manipülasyonunu gerçekleştirebiliriz.

  1. Ham verileri keşfetmek
  2. Düzenli veri formatı – Tidy data
  3. Veriyi analizler için hazırlamak

Tüm bu teorik bilgileri bir hava durumu seti üzerinde uygulamasını yaptığımız bölüme de göz atarmanız, teorik bilgilerin pekişmesine yardımcı olacaktır. Ayrıca bu teorik bilgileri kendi veri setleriniz üzerinde denemeniz sizlere iyi bir deneyim kazandıracakır.

Uygulama linki aşağıdadır.

https://veribilimiokulu.com/2018/08/25/r-ile-veri-manipulasyonu-uygulama/

Kaynak: https://www.datacamp.com/courses/cleaning-data-in-r

 

 

Bir yanıt yazın