1. Soruların çözümü için gerekli paketler aşağıdaki gibidir, bu paketleri kurulum bloğunda etkinleştiriniz: (10 puan)
library(dplyr)
library(stringr)
library(ggplot2)
library(readr)
library(psych)
library(knitr)
library(papaja)
  1. İkinci kod bloğunuzu aşağıdaki kod satırı ile veri seti yüklemek için oluşturunuz. Bu kod bloğunda ayrıca veriyi düzenleneyecek aşağıdaki koduda ekleyiniz. (10 puan)
ARASINAV <- read_csv("2024_OLC731_ARASINAV.csv")
ARASINAV <- ARASINAV %>%
 mutate(
 Program_Abv = str_split_i(Course_Number, " ", 1),
 Course_Number_Num = as.integer(str_extract(Course_Number, "\\d+")),
 Term_Season = str_extract(Term, "Autumn|Spring|Summer|Winter")
 )

#Belirli değerleri görmek için kullanılabilir.
ARASINAV %>%
pull(Program_Abv) %>%
 unique() %>%
 sort()
##   [1] "A"      "AAS"    "ACADEM" "ACCTG"  "AES"    "AFRAM"  "AIS"    "AMATH" 
##   [9] "ANTH"   "ARAB"   "ARCH"   "ARCHY"  "ARCTIC" "ART"    "ASIAN"  "ASL"   
##  [17] "ASTBIO" "ASTR"   "ATM"    "B"      "BCS"    "BIME"   "BIO"    "BIOC"  
##  [25] "BIOEN"  "BIOL"   "BIOST"  "BSE"    "C"      "CEE"    "CEP"    "CFR"   
##  [33] "CFRM"   "CHEM"   "CHID"   "CHIN"   "CHSTU"  "CL"     "CLAS"   "CM"    
##  [41] "COM"    "CONJ"   "CS&SS"  "CSE"    "DANCE"  "DENT"   "DENTCL" "DENTFN"
##  [49] "DENTPC" "DESIGN" "DIS"    "DPHS"   "DRAMA"  "DXARTS" "E"      "ECFS"  
##  [57] "ECON"   "EDC&I"  "EDLPS"  "EDPSY"  "EDSPE"  "EDTEP"  "EDUC"   "EGYPT" 
##  [65] "EMBA"   "ENDO"   "ENGL"   "ENGR"   "ENTRE"  "ENV"    "ENVIR"  "EPI"   
##  [73] "ESRM"   "ESS"    "EURO"   "FHL"    "FIN"    "FINN"   "FISH"   "FRENCH"
##  [81] "G"      "GEMBA"  "GEN"    "GENOME" "GEOG"   "GERMAN" "GIS"    "GREEK" 
##  [89] "GTTL"   "GWSS"   "HCDE"   "HCID"   "HEBR"   "HIHIM"  "HINDI"  "HIST"  
##  [97] "HONORS" "HSERV"  "HSMGMT" "HSTAA"  "HSTAFM" "HSTAM"  "HSTAS"  "HSTCMP"
## [105] "HSTEU"  "HSTLAC" "HSTRY"  "HUM"    "I"      "IMMUN"  "IMT"    "IND"   
## [113] "INDO"   "INDON"  "INFO"   "INFX"   "INSC"   "INTSCI" "IPM"    "ISS"   
## [121] "ITAL"   "JAPAN"  "JSIS"   "KOREAN" "L"      "LAB"    "LATIN"  "LAW"   
## [129] "LING"   "LIS"    "LIT"    "LSJ"    "M"      "MATH"   "MCB"    "MEBI"  
## [137] "MEDCH"  "MEDEX"  "MGMT"   "MICROM" "MKTG"   "MODHEB" "MOLMED" "MSE"   
## [145] "MSIS"   "MUHST"  "MUSAP"  "MUSED"  "MUSEN"  "MUSEUM" "MUSIC"  "N"     
## [153] "NBIO"   "NCLIN"  "NEAR"   "NEUBEH" "NEURO"  "NME"    "NMETH"  "NORW"  
## [161] "NSG"    "NURS"   "NUTR"   "O"      "OCEAN"  "OPMGT"  "ORALB"  "ORALM" 
## [169] "ORTHO"  "P"      "PA"     "PABIO"  "PATH"   "PB"     "PCEUT"  "PEDO"  
## [177] "PERIO"  "PHARBE" "PHARM"  "PHARMP" "PHCOL"  "PHG"    "PHIL"   "PHRMRA"
## [185] "PHYS"   "POL"    "POLSH"  "PORT"   "PPM"    "PROS"   "PRSAN"  "PSYCH" 
## [193] "Q"      "QERM"   "QMETH"  "R"      "REHAB"  "RELIG"  "RES"    "RHB"   
## [201] "RUSS"   "SCAND"  "SCTL"   "SEFS"   "SIS"    "SISA"   "SISAF"  "SISEA" 
## [209] "SISJE"  "SISLA"  "SISME"  "SISRE"  "SISSE"  "SLAV"   "SLAVIC" "SMA"   
## [217] "SMEA"   "SOC"    "SPAN"   "SPH"    "SPHSC"  "STAT"   "SWA"    "SWED"  
## [225] "TAGLG"  "THAI"   "TKISH"  "TMMBA"  "UCONJ"  "URBDP"  "URDU"   "VALUES"
## [233] "VIET"   "WOMEN"
  1. Genel Not Ortalaması Dağılımı (Average_GPA) ile ilgili özet bilgiler (betimsel istatistikler) üreten kod bloğu oluşturunuz. Bu kod bloğunda yapılması istenenler aşağıda listelenmiştir (30 puan)
#Betimsel istatistikleri hesaplamadan önce Average_GPA değişkenindeki tüm eksik verileri (NA’leri)kaldırınız.
betimsel <- as.vector(describe(na.omit(ARASINAV$Average_GPA)))

#Veri kümesinde kaç kurs/ders var?
n_kurs <- length(ARASINAV$Course_Number)

#Tüm derslerin genel not ortalamasının (Average_GPA ) ortalaması nedir? (2 ondalık ile yazdırınız.)
general_mean <- round(mean(ARASINAV$Average_GPA,na.rm = T),2)

#Kurslardaki/derslerdeki ortalama öğrenci sayısı (Student_Count) nedir? (2 ondalık ile yazdırınız.)
n_stu <- round(mean(ARASINAV$Student_Count),2)

#Kurslardaki/derslerdeki minumum öğrenci sayısı (Student_Count) nedir?
min_stu <- min(ARASINAV$Student_Count)

#Kurslardaki/derslerdeki maksimum öğrenci sayısı (Student_Count) nedir?
max_stu <- max(ARASINAV$Student_Count)

summary_table <- 
  tibble(
  N = betimsel$n,
  GPA_ort=round(betimsel$mean,2),
  GPA_sd=round(betimsel$sd,2),
  GPA_median=betimsel$median,
  GPA_min=betimsel$min,
  GPA_max=betimsel$max,
  GPA_range=betimsel$range,
  GPA_skew=round(betimsel$skew,2),
  GPA_kurt=round(betimsel$kurtosis,2),
  GPA_se=round(betimsel$se,2),
  Kurs_sayi = n_kurs,
  Ort_ogrenci = round(n_stu,2),
  Min_stu = min_stu,
  Max_stu = max_stu
  ) 

apa_table(summary_table,caption = "Tablo 1 - GPA ve Kurslara İlişkin Betimsel İstatistikler")
(#tab:Tablo 1)
Tablo 1 - GPA ve Kurslara İlişkin Betimsel İstatistikler
N GPA_ort GPA_sd GPA_median GPA_min GPA_max GPA_range GPA_skew GPA_kurt GPA_se Kurs_sayi Ort_ogrenci Min_stu Max_stu
39,241.00 3.41 0.33 3.50 1.60 4.00 2.40 -0.55 -0.03 0.00 39242 45.38 13.00 730.00

Tablo 1’e göre GPA değerlerinin ortalaması 3.41 ve standart sapması 0.33dir. Minimum GPA değeri 1.6, maksimum GPA değeri ise 4tür. GPA değerlerine ilişkin çarpıklık katsayısı -0.55, basıklık değeri ise -0.03’dir. GPA değerlerinin normal dağılım gösterdiği yorumu yapılabilir. Bu veri setinde bulunan kurs sayisi 39242’dir. Kurs başına ortalama 45.38 düşmektedir. Bir kursta en az 13, en çok 730 öğrenci bulunmaktadır.

  1. Genel Not Ortalaması (Average_GPA) değişkeninin nasıl dağıldığını görmek için histogramını oluşturunuz. (15 puan)
hist(
  na.omit(ARASINAV$Average_GPA),
  main = "Ortalama GPA Degerlerinin Dağılımı",
  xlab = "Ortalama GPA Degerleri",
  ylab = "Frekans")

c şıkkında üretilen çarpıklık ve basıklık değerleri ile birlikte ortalama GPA değerlerine ilişkin histogram incelendiğinde çarpıklık (-0.55) ve basıklık değerleri (-0.03) GPA değerlerinin normal dağılım gösterdiğine işaret ediyor da olsa histograma bakıldığında GPA değerlerinin sola çarpık dağılım gösterdiği yorumu yapılabilir.

  1. Genel Not Ortalaması (Average_GPA) değişkeninin y ekseninde, Öğrenci Sayısının ise (Student_Count) ise x ekseninde olduğu saçılım grafiğni çizdiriniz. (15 puan)
ggplot(ARASINAV, aes(x = Student_Count, y = Average_GPA)) +
  geom_point(color = "blue", alpha = 0.6) +        
  labs(
    title = "Ortalama GPA ve Öğrenci Sayılarına Ait Saçılım Grafiği",  
    x = "Öğrenci Sayısı",                                    
    y = "Ortalama GPA"                                       
  ) +
  theme_apa()
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).

Saçılım grafiği incelendiğinde öğrencilerin GPA değerlerinin 2.5 ile 3.5 civarında yoğunlaştığı yorumu yapılabilir.

  1. Veri setinden filter() fonksiyonunu kullanarak iki farklı alt küme (veri seti) oluşturup bu alt kümler arasında karşılaştırma yapınız. (20 puan) Alt kümeler (veri setleri) şunlar olabilir: ○ İki farklı program (Program_Abv’ye dayalı) ○ İki farklı eğitmen (Primary_Instructor’a göre) ○ İki farklı Akademik Yıl (Akademik_Yıl temelinde) ○ Farklı büyüklükte sınıflar ○ Ya da yukarıdaki seçimlerin kombinasyonları (örneğin, bir programda farklı sınıf büyüklükleri) vb. Bu iki alt kümenin (veri setinin) her biri için raporlayacağınız en az 4 betimsel değeri hesaplayın (örneğin, ders sayısı, Ortalama_GPA ortalaması vb.). Her bir alt küme için uygun grafiği (görselleştirmek istediğiniz değişken ya da değişkenlere uygun olarak histogram, bar ya da saçılım grafiği) çiziniz. Verilerin her bir alt kümesi için aynı iki grafiği yapmalısınız, böylece bunları karşılaştırabilirsiniz. Not: d ve e seçeneklerinde yapmanızı istediğim saçılım grafikleri ve histogramın aynısını yapabilir veya Course_Number ile Student_Count dağılım grafiği gibi başka şeyler de yapabilirsiniz. Şimdi, hesapladığınız en az 4 betimsel değeri içeren ve grafiklerden fark ettiğiniz farklılıkları veya benzerlikleri tartışan özet paragraf oluşturun.
data_progabv <- filter(.data = ARASINAV, Program_Abv == "A" | Program_Abv == "FIN")
data_a <- filter(data_progabv,Program_Abv == "A")
data_fin <- filter(data_progabv,Program_Abv == "FIN")

A_GPA <- round(mean(na.omit(data_a$Average_GPA),na.rm = T,2))
n_stu_A <- round(mean(data_a$Student_Count),2)
min_stu_A <- min(data_a$Student_Count)
max_stu_A <- max(data_a$Student_Count)

FIN_GPA <- round(mean(na.omit(data_fin$Average_GPA),na.rm = T,2))
n_stu_FIN <- round(mean(data_fin$Student_Count),2)
min_stu_FIN <- min(data_fin$Student_Count)
max_stu_FIN <- max(data_fin$Student_Count)

table_A <- 
  tibble(
    A_GPA,
    n_stu_A,
    min_stu_A,
    max_stu_A)

apa_table(table_A,caption = "Tablo A - GPA ve Kurslara İlişkin Betimsel İstatistikler")
(#tab:unnamed-chunk-3)
Tablo A - GPA ve Kurslara İlişkin Betimsel İstatistikler
A_GPA n_stu_A min_stu_A max_stu_A
3.00 37.83 13.00 268.00
table_FIN <- 
  tibble(
    FIN_GPA,
    n_stu_FIN,
    min_stu_FIN,
    max_stu_FIN)

apa_table(table_FIN,caption = "Tablo FIN - GPA ve Kurslara İlişkin Betimsel İstatistikler")
(#tab:unnamed-chunk-3)
Tablo FIN - GPA ve Kurslara İlişkin Betimsel İstatistikler
FIN_GPA n_stu_FIN min_stu_FIN max_stu_FIN
3.00 46.08 13.00 90.00

Tablo A ve Tablo FIN incelendiğinde A grubunda yer alan öğrenciler ve FIN grubunda yer alan öğrencilerin GPA ortamaları birbirinden farklıdır, aynı zamanda A grubunda yer alan öğrencilerin sayısı FIN grubunda yer alan öğrencilerin sayısından daha az olduğu görülmektedir.

ggplot(data_a, aes(x = Student_Count, y = Average_GPA)) +
  geom_point(color = "blue", alpha = 0.6) +        
  labs(
    title = "A - Ortalama GPA ve Öğrenci Sayılarına Ait Saçılım Grafiği",  
    x = "Öğrenci Sayısı",                                    
    y = "Ortalama GPA"                                       
  ) +
  theme_apa()

ggplot(data_fin, aes(x = Student_Count, y = Average_GPA)) +
  geom_point(color = "blue", alpha = 0.6) +        
  labs(
    title = "FIN - Ortalama GPA ve Öğrenci Sayılarına Ait Saçılım Grafiği",  
    x = "Öğrenci Sayısı",                                    
    y = "Ortalama GPA"                                       
  ) +
  theme_apa()

Grafik A ve Grafik FIN incelendiğinde ise Grafik A’daki öğrencilerin ortalamalarının 3.0 civarında yoğunlaştığını, Grafik FIN’deki öğrencilerin ortalamalarının 3.6 ve 3.2 civarında yoğunlaştığı yorumu yapılabilir.