knitr::opts_chunk$set(echo = TRUE)
library(dplyr)
library(wakefield)
library(writexl)
library(ggplot2)
library(gridExtra)
library(CTT)

#Bu dosyada 10 madde ve 10,000 kişilik örneklemin verilerini içeren bir veriseti oluşturulacak ve maddelerin güçlük düzeyleri belirlenecektir.

##Veri setinin oluşturulması

Madde1 <- rbinom (n=10000, size = 1, prob = 0.7)
Madde2 <- rbinom (n=10000, size = 1, prob = 0.6)
Madde3 <- rbinom (n=10000, size = 1, prob = 0.5)
Madde4 <- rbinom (n=10000, size = 1, prob = 0.4)
Madde5 <- rbinom (n=10000, size = 1, prob = 0.3)
Madde6 <- rbinom (n=10000, size = 1, prob = 0.4)
Madde7 <- rbinom (n=10000, size = 1, prob = 0.5)
Madde8 <- rbinom (n=10000, size = 1, prob = 0.6)
Madde9 <- rbinom (n=10000, size = 1, prob = 0.5)
Madde10 <- rbinom (n=10000, size = 1, prob = 0.5)
Cinsiyet <- sample(c("Erkek", "Kadın"), 10000, replace = T, prob = c(.5,.5))
SED <- sample(c("Düşük", "Orta", "Yüksek"), 10000, replace = T, prob = c(.3, .5, .2))

VeriSeti <- data.frame(ID = 1:10000, Cinsiyet, SED, Madde1, Madde2, Madde3, 
                       Madde4,Madde5,Madde6,
                       Madde7,Madde8,Madde9,Madde10)

VeriSeti <- VeriSeti %>% 
  mutate(Toplam = Madde1+Madde2+Madde3+Madde4+Madde5+Madde6+Madde7+Madde8+Madde9+Madde10)

head(VeriSeti)
##   ID Cinsiyet    SED Madde1 Madde2 Madde3 Madde4 Madde5 Madde6 Madde7 Madde8
## 1  1    Erkek Yüksek      1      0      0      0      0      0      1      0
## 2  2    Erkek   Orta      1      0      1      1      0      0      0      0
## 3  3    Erkek  Düşük      1      0      0      0      0      0      1      1
## 4  4    Erkek   Orta      1      1      1      0      0      0      1      0
## 5  5    Kadın  Düşük      0      1      1      0      1      0      0      1
## 6  6    Erkek   Orta      1      1      0      0      1      0      0      1
##   Madde9 Madde10 Toplam
## 1      0       0      2
## 2      1       1      5
## 3      0       0      3
## 4      0       0      4
## 5      1       1      6
## 6      0       0      4
#Toplam puanların dağılımı

summary(VeriSeti$Toplam)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   4.000   5.000   4.986   6.000  10.000
hist(VeriSeti$Toplam)

###Cinsiyet ve SEDe göre toplam puan dağılımları

VeriSeti %>%  group_by(Cinsiyet) %>% 
  summarise(N = n(), M=mean(Toplam), SD = sd(Toplam))
## # A tibble: 2 × 4
##   Cinsiyet     N     M    SD
##   <chr>    <int> <dbl> <dbl>
## 1 Erkek     5051  5.01  1.55
## 2 Kadın     4949  4.96  1.53
VeriSeti %>% group_by(SED) %>% 
  summarise(N = n(), M=mean(Toplam), SD = sd(Toplam))
## # A tibble: 3 × 4
##   SED        N     M    SD
##   <chr>  <int> <dbl> <dbl>
## 1 Düşük   2986  4.95  1.55
## 2 Orta    5001  5.02  1.53
## 3 Yüksek  2013  4.96  1.57
###Madde analizi
maddeAnaliz <- itemAnalysis(VeriSeti[,4:14])
print(maddeAnaliz$itemReport, digits = 2)
##    itemName itemMean pBis  bis alphaIfDeleted
## 1    Madde1     0.70 0.14 0.19         0.5453
## 2    Madde2     0.61 0.18 0.22         0.5396
## 3    Madde3     0.50 0.17 0.21         0.5411
## 4    Madde4     0.39 0.17 0.21         0.5415
## 5    Madde5     0.29 0.15 0.19         0.5449
## 6    Madde6     0.40 0.17 0.21         0.5412
## 7    Madde7     0.50 0.18 0.23         0.5386
## 8    Madde8     0.60 0.18 0.23         0.5390
## 9    Madde9     0.51 0.16 0.20         0.5419
## 10  Madde10     0.49 0.16 0.20         0.5423
## 11   Toplam     4.99 1.00 1.02         0.0044
#Madde Güçlüklerinin Grafiği

maddeAnaliz <- itemAnalysis(VeriSeti[,4:13])
ggplot(maddeAnaliz$itemReport, aes(x=itemName, y=itemMean), ylim = c(0,1))+
  geom_col() +
  facet_wrap(. ~ "Madde Güçlük İndeksi", nrow = 2)