
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.
- Ham verileri keşfetmek
- Düzenli veri formatı – Tidy data
- 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://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.
- Ham verileri keşfetmek
- Düzenli veri formatı – Tidy data
- 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
