a)

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
veri <- read_excel("odev3.xlsx")
head(veri)
## # A tibble: 6 × 18
##   Cinsiyet   SES   WV1   WV2   WV3   WV4   WV5   WV6   WV7   WV8   WV9  WV10
##      <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1        2     2     3     2     3     1     1     2     3     1     1     4
## 2        2     3     6     2     3     2     2     1     1     1     1     7
## 3        2     2     1     1     1     1     1     1     1     1     1     2
## 4        2     2     6     4     4     2     4     6     3     6     4     5
## 5        2     2     1     2     1     1     3     2     3     1     1     4
## 6        2     3     6     6     5     6     5     6     5     6     5     5
## # ℹ 6 more variables: WV11 <dbl>, WV12 <dbl>, WV13 <dbl>, WV14 <dbl>,
## #   WV15 <dbl>, WV16 <dbl>
sum(is.na(veri))
## [1] 0

b)

table(veri$Cinsiyet)
## 
##   1   2 
## 257  74
table(veri$SES)
## 
##   1   2   3 
##  18 262  51
library(ggplot2)

ggplot(veri, aes(x = factor(Cinsiyet))) +
  geom_bar(fill = "lightblue") +
  labs(title = "Cinsiyet Dağılımı", x = "Cinsiyet", y = "Frekans") +
  scale_x_discrete(labels = c("1" = "Kadin", "2" = "Erkek"))

ggplot(veri, aes(x = factor(SES))) +
  geom_bar(fill = "lightpink") +
  labs(title = "SES Dağılımı", x = "SES Seviyesi", y = "Frekans") +
  scale_x_discrete(labels = c("1" = "Dusuk", "2" = "Orta", "3" = "Yuksek"))

c)

Bu yazdığım kodu chatgptden yardım alarak yazdım. Sondaki kısmı ise şöyle açıklıyor:

→ Bir fonksiyon olduğunu belirtir (lambda fonksiyon gibi düşünebilirsin). . → Her sütundaki değeri temsil eder. 8 - . → Mevcut değeri ters çevirir.

veri <- veri %>%
  mutate(across(WV1:WV9, ~ 8 - .))

d)

veri <- veri %>%
  mutate(
    Boyut1_Toplam = rowSums(select(., WV1:WV9), na.rm = TRUE),
    Boyut2_Toplam = rowSums(select(., WV10:WV16), na.rm = TRUE)
  )
head(veri)
## # A tibble: 6 × 20
##   Cinsiyet   SES   WV1   WV2   WV3   WV4   WV5   WV6   WV7   WV8   WV9  WV10
##      <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1        2     2     5     6     5     7     7     6     5     7     7     4
## 2        2     3     2     6     5     6     6     7     7     7     7     7
## 3        2     2     7     7     7     7     7     7     7     7     7     2
## 4        2     2     2     4     4     6     4     2     5     2     4     5
## 5        2     2     7     6     7     7     5     6     5     7     7     4
## 6        2     3     2     2     3     2     3     2     3     2     3     5
## # ℹ 8 more variables: WV11 <dbl>, WV12 <dbl>, WV13 <dbl>, WV14 <dbl>,
## #   WV15 <dbl>, WV16 <dbl>, Boyut1_Toplam <dbl>, Boyut2_Toplam <dbl>
library(ggplot2)

ggplot(veri, aes(x = Boyut1_Toplam)) +
  geom_histogram(binwidth = 5, fill = "steelblue", color = "black", alpha = 0.7) +
  labs(title = "Boyut1 Toplam Puan Dağılımı", x = "Toplam Puan", y = "Frekans") 

ggplot(veri, aes(x = Boyut2_Toplam)) +
  geom_histogram(binwidth = 5, fill = "blue", color = "black", alpha = 0.7) +
  labs(title = "Boyut2 Toplam Puan Dağılımı", x = "Toplam Puan", y = "Frekans") 

e)

library(ggplot2)

ortalama <- mean(veri$Boyut2_Toplam, na.rm = TRUE)
std_sapma <- sd(veri$Boyut2_Toplam, na.rm = TRUE)

ggplot(veri, aes(x = Boyut2_Toplam)) +
  geom_histogram(binwidth = 5, fill = "coral", color = "black", alpha = 0.7) +
  
  geom_vline(xintercept = ortalama, color = "blue", linetype = "dashed") +
  annotate("text", x = ortalama, y = 10, label = paste("Ortalama:", round(ortalama, 2)), 
           color = "blue", vjust = -1) +

  geom_vline(xintercept = ortalama + std_sapma, color = "green", linetype = "dashed") +
  annotate("text", x = ortalama + std_sapma, y = 10, label = "+1 Std Sapma", 
           color = "green", vjust = -1) +
  
  geom_vline(xintercept = ortalama - std_sapma, color = "red", linetype = "dashed") +
  annotate("text", x = ortalama - std_sapma, y = 10, label = "-1 Std Sapma", 
           color = "red", vjust = -1) +

  labs(title = "Boyut2 Toplam Puan Dağılımı", x = "Toplam Puan", y = "Frekans")

f)

library(dplyr)
library(outliers)
library(summarytools)
## Warning: package 'summarytools' was built under R version 4.4.3
## 
## Attaching package: 'summarytools'
## The following object is masked from 'package:tibble':
## 
##     view
library(DT)

z_scores <- veri %>%
  select(Boyut1_Toplam, Boyut2_Toplam) %>% 
  scores(type = "z") %>% 
  as.data.frame() %>% 
  round(2)
head(z_scores)
##   Boyut1_Toplam Boyut2_Toplam
## 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)
## Descriptive Statistics  
## z_scores  
## N: 331  
## 
##                         Min    Max
## ------------------- ------- ------
##       Boyut1_Toplam   -3.48   1.20
##       Boyut2_Toplam   -2.65   1.62
DT::datatable(z_scores)
ggplot(veri, aes(y = Boyut1_Toplam)) +
  geom_boxplot(fill = "steelblue", outlier.color = "red", outlier.shape = 16) +
  labs(title = "Boyut1 Toplam Puan - Boxplot", y = "Toplam Puan") +
  theme_minimal()

ggplot(veri, aes(y = Boyut2_Toplam)) +
  geom_boxplot(fill = "coral", outlier.color = "red", outlier.shape = 16) +
  labs(title = "Boyut2 Toplam Puan - Boxplot", y = "Toplam Puan") +
  theme_minimal()

Boyut 1 de 3 tane uç değer bulunurken, bpyut 2 de herhangi bir uç değer buşunmamıştır.

Ödevi yaparken Chatgptden yardım aldım.Bu sebeple, beklediğimden daha kısa sürdü. Toplamda 50 dakika sürdü.