# ============================================================ # R'da Eksik Veri (NA) ile Calismak # Senaryo: 100 kisilik yasam doyumu anketinde bos birakilmis # cevaplar (NA) tespit edilip yonetiliyor. # Kullanim: Bu dosyayi ve r-eksik-veri-analizi-veri.csv # dosyasini ayni klasore koyun, RStudio'da calistirin. # Kaynak: veriakademi.com # ============================================================ # --- 1. Veriyi oku ------------------------------------------ veri <- read.csv("r-eksik-veri-analizi-veri.csv", fileEncoding = "UTF-8", stringsAsFactors = FALSE) head(veri) # --- 2. Eksikleri tespit et --------------------------------- colSums(is.na(veri)) # degisken basina NA sayisi mean(is.na(veri$yasam_doyumu)) # NA orani (0.12 = %12) sum(complete.cases(veri)) # tum degiskenleri dolu satir sayisi # --- 3. NA'nin hesaplari nasil bozdugunu gor ---------------- mean(veri$yasam_doyumu) # NA doner! R sizi uyarir mean(veri$yasam_doyumu, na.rm = TRUE) # dogru kullanim # --- 4. Yontem 1: satir silme (listwise deletion) ----------- tam <- na.omit(veri) nrow(tam) # kac gozlem kaldi? # Uygun: NA orani dusukse (%5'ten az) ve rastgele dagiliyorsa. # Risk: orneklem kuculur, sistematik eksikte yanlilik dogar. # --- 5. Yontem 2: ortalama ile doldurma (mean imputation) --- doldurulmus <- veri ort <- mean(veri$yasam_doyumu, na.rm = TRUE) doldurulmus$yasam_doyumu[is.na(doldurulmus$yasam_doyumu)] <- ort sd(veri$yasam_doyumu, na.rm = TRUE) # orijinal sapma sd(doldurulmus$yasam_doyumu) # doldurma sapmayi KUCULTTU # Ders: ortalama doldurma varyansi yapay olarak dusurur; # tezlerde dikkatli ve gerekceli kullanilmalidir. # --- 6. Kategorik degiskende eksik -------------------------- table(veri$gelir_algisi, useNA = "ifany") # Kategorikte yaygin pratik: "Belirtilmemis" kategorisi acmak veri$gelir_algisi[is.na(veri$gelir_algisi)] <- "Belirtilmemis" table(veri$gelir_algisi) # --- 7. Rapor notu ------------------------------------------ # Tezde eksik veri orani, deseni (rastgele mi?) ve secilen # yontem MUTLAKA raporlanir. Ileri yontem icin 'mice' paketi # (coklu atama / multiple imputation) arastirilabilir.