İkinci ders kapsamında ilk olarak bir veri seti üzerinden bir önceki dersi tekrar ettik. TRUSA.RDS vei setini RStudio ortamına yükledik ve veriyi okuttuk. TRUSA <- readRDS(“../data/TRUSA.RDS”). Daha sonra naniar paketinde yer alan mis_var_table() fonksiyonu ile eksik veriler hakkında bir tablo eide ettik. Analize dahil edeceğimiz değişkenlerin toplamlarını elde etmek amacıyla
TRUSA$toplam <- TRUSA %>% select(star_with(“M”)) %>% rowSums()
satırını yazdık. Toplam değerlerini elde ettikten sonra ülkelere yönelik değerleri görmek amacıyla TRUSA %>% group_by(CNT) %>% summarise(n=n()), ort=mean(toplam), sd=sd(toplam), min=min(toplam), max=max(toplam))
kodunu yazdık ve ilgili değerleri elde ettik. Geçen hafta da kullandığımız describe() fonksiyonu ile istatistikler hakkında detaylı bilgilere ulaşabildik. Effectsize paketinde yer alan t.test() fonksiyonu ile t.test(toplam~CNT=TRUSA) veri setinin ilgili kısımlarına t-testi uyguladık. Yine aynı pakkete yer alan cohen.d() fonksiyonu ile cohen istatistiğini hesapladık ve burada Mahanalobis uzaklığı değerine ulaştık. Daha sonra veri setinde %5, %10 ve %15 oranlarında eksik veri oluşturmak amacıyla TRUSA_5<- introNAs(TRUSA, percent=5) satırını %10 ve %15 içinde alt alta yazdık. Sonrasında eksik verilerin rastgele olup olmadığını kontrol etmek amacıyla mcar() fonksiyonu ile kontrol ettik. TRUSA_5 %>% is.na %>% colSums() ile her sütundaki NA eksik veri toplamını elde edebiliriz. Eksik veri ssayısı az ve rastgele olduğunda liste bazında silme yapabiliriz. TRUSA_5_1w<- na.omit(TRUSA_5) %5 oranı için bunu uyguladığımızda veri setinde çok az veri kaldı.%15 için yaptığımızda bu sayı daha da artar. Bu nedenle geçen derste kullandığımız çoklu atamayı bu veri seti için uyguladık. Yine T-test ve cohen istatistiklerini elde etmek amacıyla t.test_result_1<- t.test()SUM~CNT, data=TRUSA_5_1w var_Eequal=TRUE, cohen_d_result<- cohen.d(TRUSA_5_1w\(SUM(TRUSA_5_1w\)CNT=“TUR”), (TRUSA_5_1w\(SUM(TRUSA_5_1w\)CNT=“USA”), pooled=TRUE kodlarını kullandık. Çoklu atama açin TURSA_5 _im1<- mice(TRUSA_5[2,36], m=5, maxit=50, method=“logreg”, seed=500) bu kodu %10 ve %15 oranları içinde ayrı ayrı yazıp çalıştırdık ve diğer adıma geçtik. Sonraki adımda %5 için completed_data_1<-complete(TRUSA_5_İM_1, 1) completed_data_2<-complete(TRUSA_5_İM_1, 2) completed_data_3<-complete(TRUSA_5_İM_1, 3) completed_data_4<-complete(TRUSA_5_İM_1, 4) completed_data_5<-complete(TRUSA_5_İM_1, 5) kodunu 5 atama için çalıştırdık. Bunun sayısı değişebilir analizimizin türüne çalışma amacına göre vs değişkenlik gösterebilir. Son olarak t.test_result_1<- t.test(SUM~CNT, data=completed_data_1, var_equal=TRUE) kodu ile bütün analize uyguladık ve sonuçları karşılaştrdık.
İkinci ders kapsamında veri incelemeden yine bahsettik. Burada uç
değerleri inceledik vetek değişkenli verilerde +-3,29 aralığı dışında
kalan değerlerin uç değer olarak alınabileceğini çok değişkenli
verilerde ise Mahanalobis uzaklaığına bakılması gerektiğinden söz ettik.
Burada uç değerler silinebilir veya dönüşüme tabi tutulabilir. Burada
logaritmik dönüşümlerin yorumlaması zor olabilir. Dönüşümü yaptıktan
sonra yorumlamayı da logx üzerinden yapmak gerekir. İlk olarak uç
değerleri incelemek için SCREEN.SAV veri setini ssitme yükledik ve
gerekli pkaetleri aktifleştirdik. Sonrasında eksik veri düzenlemesi
yapmak için screen <- screen %>% mutate(INCOME =
ifelse(is.na(INCOME), mean(INCOME, na.rm =TRUE),INCOME)) %>%
na.omit() summary(screen) kodunu çalıştırdık.Daha sonra da
x <- c(3,5,7,NA,9) ifelse(is.na(x),mean(x,na.rm=TRUE),x) koduyla uç
değerleri çalışmak için hazırladık. Kategorik değişkenlerde uç değerleri
incelemek için library(summarytools) freq(screen$RACE,
round.digits=2,report.nas = FALSE, style = “rmarkdown”) kodunu
çalıştırdık ve uç değerleri de görebileceğimiz detaylı bir tablo eld
ettik. Burada ıç değerler total veri setine göre fazla ise değişkeni
analizden çıkarmak söz konusu olabilir. Yine grafik incelendiğinde
çarpıklığın çok fazla olduğunu anlıyoruz. Sürekli değişkenlerde uç
değerleri incelemek için bütün değerleri z değerlerine dönüştürmek
gerekşir. Outliers paketindeki scores() fonksiyonu ile uç değerler
hesaplanabilir. Yine summarytools paketinde yer alan dscr() fonksiyonu
ile z değerlerine ulaşılabilir. descr(z.scores, stats = c(“min”, “max”),
transpose = TRUE, headings = FALSE) Somrasında ilgili değişkenlerin z
puanların +-4 aralığında olup olmadığına bakarak uç değerleri tespit
edebiliriz. DT paketiyle ineraktif grafik ve tablolar yapabiliriz. Uç
değerleri tespit etmenin en etkili yolu grafik incelemesidir. Eğer bir
değişken araştırma için önemli fakat çok fazla uç değere sahipse
logaritmik dönüşümü yapılabilir. Bu işlem özellikle sağa çarpık
verilerde iyi sonuçlar verir. çok değişkenli veri setlerindeki uç
değerleri belirlemek için Mahalanobis uzaklığının kullanılabileceğinden
bahsetmiştik. Bu uzaklık bize ki-kare değerini baz alarak sonuç verir.
burada kritik ki-kare değerinin cutoff değeri 2.05105’in üzerindeyse
0.001 düzeyinde analamlı olarak değerlendirilir ve uç değer olduğuna
işaret eder. Bunları belirlemek için which(md> cutoff) kodu
kullanılabilir. Silmek içinse veri[-ucdegerler, ] kodu
kullanılabilr.
Normallik sayılıtısnın sağlanmadığına bakmak için spesifik bir test olmasa da uç değerler incelendiğinde normallikle ilgili yorum yapılabilir. Kestirilen değerlerle gerçek değer arasındaki fark olan artıklar normalliği sağlıyorsa çok değişkenli normallik sağlanıyor diyebiliriz. Normalliği incelemek için çarpıklık ve basıklık değerleri incelenir. Burada çarpıklık ve basıklık değerleri +-1 aralığında olduğunda normallik sağlanıyor diyebiliriz. Fakat çarpıklık ve basıklık değerleri her zaman yeterli olmayabilir. skew.ratio() fonksiyonu ile çarpıklık değeri çarpıklığa ait standart hatalara bölünür. bu deeğerin +-3 değer aralığında gezmesi istendik bir durumdur. Daha sonra normallik jarque.test() fonksiyonu ile de teste edilebilir. Burada p değeri anlamlı sonuçlar verirse verinin normal dağılımdan sapma gösterdiği sonucuna ulaşılabilir. normallik için qq grafikleri de incelenebilir. Bu grafiklerle de normallik sayılıtısı gözlemlenir. Bu grafiklerde nromallipğin sağlanmasına işaret olarak verinin 45 derecelik eğimin içinde kalmasıdır. T-tes ve ANOVA normalliğin ihlali vaesayımına çok direçlidir. Yani normallik sağlanmasa bile yapılabilir. Fakat çoklu regesyonda normallik sayıltısının sağlanması beklenir.