1 a)

a. “odev3.xlsx” dosyasını R ortamına aktarınız ve veri setinde eksik veri olup olmadığını kontrol ediniz.

library(readxl)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)

# Veriyi R ortamına aktarma
data <- read_excel("odev3.xlsx")

# Eksik veri kontrolü
sum(is.na(data))
## [1] 0

1 b)

b. Cinsiyet ve SES değişkenlerinin kategorilerinde nasıl dağıldığını hem tablo hem de grafikle gösteriniz.

# Cinsiyet ve SES değişkenlerinin dağılımını tablo olarak göster
table(data$Cinsiyet)
## 
##   1   2 
## 257  74
table(data$SES)
## 
##   1   2   3 
##  18 262  51
# Cinsiyet dağılımını grafikle göster
ggplot(data, aes(x = factor(Cinsiyet))) +
  geom_bar() +
  labs(title = "Cinsiyet Dağılımı", x = "Cinsiyet", y = "Frekans")

# SES dağılımını grafikle göster
ggplot(data, aes(x = factor(SES, labels = c("Dusuk", "Orta", "Yuksek")))) +
  geom_bar() +
  labs(title = "SES Dağılımı", x = "SES", y = "Frekans")


1 c)

c. Boyut1 alt boyutunda yer alan maddeler olumsuz maddelerdir, bu maddeleri yeniden kodlayınız.

# Boyut1 alt boyutundaki maddeleri yeniden kodlama
 
data <- data %>%
  mutate(across(WV1:WV9, ~ 8 - .))

1 d)

d. Boyut1 ve Boyut2 alt boyutunun her ikisi için de toplam puan hesaplayınız. Her iki alt ölçeğin toplam puan dağılımını histogram çizerek gösteriniz.

# Boyut1 ve Boyut2 alt boyutlarının toplam puanlarını hesaplama
data <- data %>%
  mutate(
    Boyut1_Total = rowSums(across(WV1:WV9), na.rm = TRUE),
    Boyut2_Total = rowSums(across(WV10:WV16), na.rm = TRUE))
# Boyut1 toplam puan dağılımını histogramla göster
ggplot(data, aes(x = Boyut1_Total)) +
  geom_histogram(binwidth = 5, fill = "blue", color = "black") +
  labs(title = "Boyut1 Toplam Puan Dağılımı", x = "Toplam Puan", y = "Frekans")

# Boyut2 toplam puan dağılımını histogramla göster
ggplot(data, aes(x = Boyut2_Total)) +
  geom_histogram(binwidth = 5, fill = "red", color = "black") +
  labs(title = "Boyut2 Toplam Puan Dağılımı", x = "Toplam Puan", y = "Frekans")

1 e)

e. Boyut2 alt boyutunun toplam puan grafiğine ortalamadan bir dikey referans çizgisi çizdiriniz. Bu çizginin üstüne ortalama değerini yazdırınız. Ayrıca grafiğe ortalamanın bir standart sapma fazlası ve bir standart sapma azı olan noktalarda da birer referans çizgisi ekleyeniz. Bu çizgiler üzerine de açıklama ekleyiniz

# Boyut2 toplam puan grafiğine referans çizgileri ekleme
mean_boyut2 <- mean(data$Boyut2_Total)
sd_boyut2 <- sd(data$Boyut2_Total)

ggplot(data, aes(x = Boyut2_Total)) +
  geom_histogram(binwidth = 5, fill = "red", color = "black") +
  geom_vline(xintercept = mean_boyut2, color = "blue", linetype = "dashed", linewidth = 1) +
  geom_vline(xintercept = mean_boyut2 + sd_boyut2, color = "green", linetype = "dashed", linewidth = 1) +
  geom_vline(xintercept = mean_boyut2 - sd_boyut2, color = "green", linetype = "dashed", linewidth = 1) +
  annotate("text", x = mean_boyut2, y = 20, label = paste("Ortalama:", round(mean_boyut2, 2)), color = "blue") +
  annotate("text", x = mean_boyut2 + sd_boyut2, y = 15, label = paste("+1 SD:", round(mean_boyut2 + sd_boyut2, 2)), color = "green") +
  annotate("text", x = mean_boyut2 - sd_boyut2, y = 15, label = paste("-1 SD:", round(mean_boyut2 - sd_boyut2, 2)), color = "green") +
  labs(title = "Boyut2 Toplam Puan Dağılımı", x = "Toplam Puan", y = "Frekans")

1 f)

library(outliers)
library(dplyr)
library(summarytools)
## 
## Attaching package: 'summarytools'
## The following object is masked from 'package:tibble':
## 
##     view
z_scores <- data %>%
  select(19:20) %>% 
  scores(type = "z") %>% 
  as.data.frame() %>% 
  round(2)
head(z_scores)
##   Boyut1_Total Boyut2_Total
## 1         0.51        -0.10
## 2         0.33         0.71
## 3         1.20         0.00
## 4        -1.40         0.61
## 5         0.68         0.71
## 6        -2.36         0.61
summarytools::descr(z_scores,stats = c("min","max"),transpose = TRUE ,headings = FALSE)
## 
##                        Min    Max
## ------------------ ------- ------
##       Boyut1_Total   -3.48   1.20
##       Boyut2_Total   -2.65   1.62

Minimum ve maksimum z değerleri kesme noktası [-3,3] alındığında Boyut1_Total için uç değer gözlenmiş olup Boyut2_Total için uç değer belirlenmemiştir.

library(DT)
DT::datatable(z_scores)
# Boyut1 toplam puanı için kutu grafiği
ggplot(data, aes(y = Boyut1_Total)) +
  geom_boxplot(fill = "blue", color = "black", outlier.color = "red", outlier.shape = 16) +
  labs(title = "Boyut1 Toplam Puanı Kutu Grafiği", y = "Toplam Puan")

# Boyut2 toplam puanı için kutu grafiği
ggplot(data, aes(y = Boyut2_Total)) +
  geom_boxplot(fill = "red", color = "black", outlier.color = "red", outlier.shape = 16) +
  labs(title = "Boyut2 Toplam Puanı Kutu Grafiği", y = "Toplam Puan")

Boyut1 değişkeninde 3 adet uç değer tespit edilirken, Boyut2 değişkeninde herhangi bir uç değer bulunmamıştır. —