sd1 <- function(x) {
ort = mean(x)
n = length(x)
sqrt(sum((x-ort)^2)/(n-1))
}
ornek_1 <- c(6, 12, 18, 20, 24)
ornek_2 <- rnorm(10)
ornek_3 <- seq(1, 10, length.out = 5)
sd1(ornek_1)
## [1] 7.071068
sd1(ornek_2)
## [1] 0.7606357
sd1(ornek_3)
## [1] 3.557562
sd1 <- function(x, yuvarla=3) {
ort = mean(x)
n = length(x)
std = sqrt(sum((x-ort)^2)/(n-1))
round(std, yuvarla)
}
sd1(ornek_1)
## [1] 7.071
sd1(ornek_2, 2)
## [1] 0.76
sd1(ornek_3, 4)
## [1] 3.5576
cat("Ornek 1: SD1 = ", sd1(ornek_1), " : ")
## Ornek 1: SD1 = 7.071 :
cat("SD = ", round(sd(ornek_1),3))
## SD = 7.071
cat("\nOrnek 2: SD1 = ", sd1(ornek_2), " : ")
##
## Ornek 2: SD1 = 0.761 :
cat("SD = ", round(sd(ornek_2), 2))
## SD = 0.76
cat("\nOrnek 3: SD1 = ", sd1(ornek_3, 4), " : ")
##
## Ornek 3: SD1 = 3.5576 :
cat("SD = ", round(sd(ornek_3), 2))
## SD = 3.56
10 Puan
std_hata <- function(x, rxx) {
round(sd1(x)*sqrt(1-rxx), 3)
}
test_puanlari <- rnorm(20, 65, 12.5)
cat("Standard Hata = ", std_hata(test_puanlari, 0.9))
## Standard Hata = 4.898
15 Puan
df <- read_delim("sinav_veri.csv",
delim = ";", escape_double = FALSE, trim_ws = TRUE)
## New names:
## Rows: 199 Columns: 23
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: ";" chr
## (2): A, kiz dbl (21): 1...1, 0...4, 0...5, 0...6, 0...7, 0...8, 0...9, 0...10,
## 0...11, 0...
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `1` -> `1...1`
## • `0` -> `0...4`
## • `0` -> `0...5`
## • `0` -> `0...6`
## • `0` -> `0...7`
## • `0` -> `0...8`
## • `0` -> `0...9`
## • `0` -> `0...10`
## • `0` -> `0...11`
## • `0` -> `0...12`
## • `0` -> `0...13`
## • `0` -> `0...14`
## • `0` -> `0...15`
## • `0` -> `0...16`
## • `0` -> `0...17`
## • `0` -> `0...18`
## • `0` -> `0...19`
## • `0` -> `0...20`
## • `0` -> `0...21`
## • `1` -> `1...22`
## • `0` -> `0...23`
colSums(is.na(df))
## 1...1 A kiz 0...4 0...5 0...6 0...7 0...8 0...9 0...10 0...11
## 0 0 0 0 0 0 0 0 0 0 0
## 0...12 0...13 0...14 0...15 0...16 0...17 0...18 0...19 0...20 0...21 1...22
## 0 0 0 0 0 0 0 0 0 0 0
## 0...23
## 0
colnames(df)
## [1] "1...1" "A" "kiz" "0...4" "0...5" "0...6" "0...7" "0...8"
## [9] "0...9" "0...10" "0...11" "0...12" "0...13" "0...14" "0...15" "0...16"
## [17] "0...17" "0...18" "0...19" "0...20" "0...21" "1...22" "0...23"
df <- df %>%
rename(
duzey = `1...1`,
sube = A,
cinsiyet = kiz
) %>%
rename_with(~ paste0("madde_", seq_along(.x)), .cols = 4:ncol(df))
colnames(df)
## [1] "duzey" "sube" "cinsiyet" "madde_1" "madde_2" "madde_3"
## [7] "madde_4" "madde_5" "madde_6" "madde_7" "madde_8" "madde_9"
## [13] "madde_10" "madde_11" "madde_12" "madde_13" "madde_14" "madde_15"
## [19] "madde_16" "madde_17" "madde_18" "madde_19" "madde_20"
df1 <- df %>%
mutate(
id = paste0("id_", row_number())
)%>%
relocate(id, .before = 1)
df1 <- df1 %>%
rowwise() %>%
mutate(toplam = sum(c_across(5:24)))
unique(df1$sube)
## [1] "A" "B"
puan_ozet <- df1 %>%
group_by(sube, cinsiyet) %>%
summarise(
puan_ortalamalari = mean(toplam),
.groups = "drop"
)
puan_ozet
## # A tibble: 4 × 3
## sube cinsiyet puan_ortalamalari
## <chr> <chr> <dbl>
## 1 A erkek 8.52
## 2 A kiz 8.80
## 3 B erkek 9.84
## 4 B kiz 10.9
Öğrencileri toplam puana göre
0 ile 6 arasını alt grup,
7 ile 12 arasını orta grup,
13 ile 20 arasını ise ust grup olacak
şekilde gruplandırınız. Gruplama değişkeninize grup adını verip “sinav_order” nesnesine yeni bir sütun olarak ekleyiniz. Alt, orta ve ust grupta kaçar öğrenci yer almaktadır. Tek bir komutla hesaplayınız.
df1 <- df1 %>%
mutate(grup = if_else(toplam < 7, "alt", ifelse(toplam < 13, "orta", "ust")))
sinav_order <- df1 %>%
group_by(grup) %>%
summarise(
ogr_sayi = n(),
.groups = "drop"
)
sinav_order
## # A tibble: 3 × 2
## grup ogr_sayi
## <chr> <int>
## 1 alt 59
## 2 orta 86
## 3 ust 54
15 Puan
Maddenin ayırt ediciliğinin göstergesi olarak madde puanları ve toplam puanlar arasındaki korelasyon katsayısı hesaplanabilir. İki kategorili puanlanan bir madde için ise değişkenlerden birisi iki kategorili olduğunda, Pearson momentler çarpımı korelasyon katsayısının özel bir durumu olarak kullanılan nokta çift-serili korelasyon katsayısından (point biserial correlation coefficient) veya çift-serili korelasyon katsayısından (biserial correlation coefficient) yararlanılabilir.
Nokta çift-serili korelasyon katsayısı, iki kategorili değişken için gerçekte iki kategori söz konusu olduğu durumda kullanılır. Bir j maddesi için nokta çift serili korelasyon katsayısı ( ) aşağıdaki formül aracılığıyla hesaplanabilir:
rj <- numeric(20)
ayirt_idx <- function(rj, df){
for (j in 1:20) {
item <- df[[j+4]]
X <- df$toplam
mu_plus <- mean(X[item == 1])
mu_X <- mean(X)
sigma_X <- sd(X)
p_j <- mean(item==1)
q_j <- 1 - p_j
rj[j] <- ((mu_plus - mu_X) / sigma_X) * sqrt(p_j / q_j)
}
rj
}
ayirt_idx(rj, df1)
## [1] 0.6086214 0.5499273 0.3260259 0.5237670 0.4626285 0.3308481 0.5354088
## [8] 0.4499519 0.3828833 0.3720028 0.5861155 0.5991665 0.3546041 0.5920853
## [15] 0.3469635 0.2654915 0.5450052 0.4768227 0.4497346 0.4991788
df_kiz <- df1 %>%
filter(cinsiyet == "kiz")
df_erkek <- df1 %>%
filter(cinsiyet == "erkek")
rj <- numeric(20)
cat("Kiz ogrenciler icin ayirt edicilik indeksleri:\n", ayirt_idx(rj, df_kiz))
## Kiz ogrenciler icin ayirt edicilik indeksleri:
## 0.5810854 0.6464826 0.2566686 0.5763143 0.5290629 0.3754478 0.5783361 0.4618652 0.3563437 0.3573436 0.6971955 0.6055387 0.3737377 0.6377886 0.4083681 0.2572383 0.5386172 0.5647909 0.4378722 0.5585959
cat("\nErkek ogrenciler icin ayirt edicilik indeksleri:\n", ayirt_idx(rj, df_erkek))
##
## Erkek ogrenciler icin ayirt edicilik indeksleri:
## 0.6328106 0.4750751 0.3960679 0.4665142 0.4046936 0.2819558 0.4880214 0.4282748 0.4221388 0.4150818 0.4426708 0.587464 0.3580788 0.5591645 0.2539383 0.2583115 0.5465421 0.3688898 0.4632029 0.4340192
NOT : CTT paketi düzeltilmiş nokta çift-serili korelasyon katsayısı hesapladığı için sonuçlar aynı çıkmayacaktır.
##tum grup icin madde ayirt edicilik indeksi hesaplama
sinav_order <- na.omit(df1[, 5:24])
sinav_order <- as.data.frame(lapply(sinav_order, function(x) as.numeric(factor(x))))
results <- itemAnalysis(sinav_order)
results$itemReport
## itemName itemMean pBis bis alphaIfDeleted
## 1 madde_1 1.472362 0.5325005 0.6679736 0.7926395
## 2 madde_2 1.532663 0.4662085 0.5850195 0.7965260
## 3 madde_3 1.552764 0.2223960 0.2796250 0.8102930
## 4 madde_4 1.361809 0.4404748 0.5647819 0.7981402
## 5 madde_5 1.371859 0.3725305 0.4760794 0.8018938
## 6 madde_6 1.824121 0.2527882 0.3721675 0.8074690
## 7 madde_7 1.713568 0.4587350 0.6094167 0.7974399
## 8 madde_8 1.572864 0.3563574 0.4493761 0.8028188
## 9 madde_9 1.301508 0.2912730 0.3835769 0.8061256
## 10 madde_10 1.522613 0.2709413 0.3397731 0.8076442
## 11 madde_11 1.402010 0.5085188 0.6445160 0.7941789
## 12 madde_12 1.582915 0.5228126 0.6604933 0.7933087
## 13 madde_13 1.623116 0.2555410 0.3260651 0.8082837
## 14 madde_14 1.522613 0.5136604 0.6441543 0.7937453
## 15 madde_15 1.381910 0.2471269 0.3148623 0.8087556
## 16 madde_16 1.321608 0.1653721 0.2155496 0.8127010
## 17 madde_17 1.412060 0.4619459 0.5841894 0.7968317
## 18 madde_18 1.321608 0.3913177 0.5100520 0.8008936
## 19 madde_19 1.326633 0.3613564 0.4698978 0.8024920
## 20 madde_20 1.402010 0.4113426 0.5213512 0.7997198
sinav_order <- as.data.frame(lapply(df_kiz[, 5:24], function(x) as.numeric(factor(x))))
results <- itemAnalysis(sinav_order)
results$itemReport
## itemName itemMean pBis bis alphaIfDeleted
## 1 madde_1 1.525253 0.5079534 0.6370895 0.8245147
## 2 madde_2 1.464646 0.5823557 0.7309197 0.8208584
## 3 madde_3 1.585859 0.1574412 0.1990193 0.8408772
## 4 madde_4 1.363636 0.5056330 0.6479231 0.8247827
## 5 madde_5 1.343434 0.4540209 0.5861548 0.8272252
## 6 madde_6 1.828283 0.3061134 0.4532869 0.8334166
## 7 madde_7 1.727273 0.5137805 0.6885776 0.8248177
## 8 madde_8 1.666667 0.3807781 0.4936761 0.8305583
## 9 madde_9 1.282828 0.2712500 0.3611538 0.8351890
## 10 madde_10 1.464646 0.2625281 0.3295013 0.8362052
## 11 madde_11 1.484848 0.6406746 0.8031772 0.8179275
## 12 madde_12 1.626263 0.5380853 0.6872475 0.8232173
## 13 madde_13 1.565657 0.2807040 0.3535630 0.8353177
## 14 madde_14 1.484848 0.5722536 0.7174016 0.8213441
## 15 madde_15 1.464646 0.3173880 0.3983564 0.8336445
## 16 madde_16 1.383838 0.1593511 0.2029163 0.8406418
## 17 madde_17 1.525253 0.4603319 0.5773613 0.8268317
## 18 madde_18 1.343434 0.4937708 0.6374731 0.8253918
## 19 madde_19 1.333333 0.3546766 0.4598357 0.8317286
## 20 madde_20 1.404040 0.4841544 0.6133476 0.8257261
sinav_order <- as.data.frame(lapply(df_erkek[, 5:24], function(x) as.numeric(factor(x))))
results <- itemAnalysis(sinav_order)
results$itemReport
## itemName itemMean pBis bis alphaIfDeleted
## 1 madde_1 1.42 0.5567584 0.7029857 0.7553444
## 2 madde_2 1.60 0.3787481 0.4802679 0.7678543
## 3 madde_3 1.52 0.2898619 0.3634541 0.7739481
## 4 madde_4 1.36 0.3714313 0.4765533 0.7683841
## 5 madde_5 1.40 0.3014638 0.3822683 0.7730814
## 6 madde_6 1.82 0.1952509 0.2858725 0.7784454
## 7 madde_7 1.70 0.3998831 0.5270444 0.7666735
## 8 madde_8 1.48 0.3250119 0.4075282 0.7715420
## 9 madde_9 1.32 0.3257611 0.4249305 0.7713891
## 10 madde_10 1.58 0.3119495 0.3938800 0.7723994
## 11 madde_11 1.32 0.3481865 0.4541827 0.7699466
## 12 madde_12 1.54 0.5036155 0.6323466 0.7590273
## 13 madde_13 1.68 0.2565274 0.3346204 0.7757973
## 14 madde_14 1.56 0.4717331 0.5936846 0.7613315
## 15 madde_15 1.30 0.1482463 0.1953880 0.7823553
## 16 madde_16 1.26 0.1575338 0.2130306 0.7813627
## 17 madde_17 1.30 0.4650926 0.6129903 0.7624676
## 18 madde_18 1.30 0.2700372 0.3559080 0.7748730
## 19 madde_19 1.32 0.3707283 0.4835867 0.7684895
## 20 madde_20 1.40 0.3334901 0.4228789 0.7709267
25 Puan
34 bireye bir testin A ve B formları uygulanmıştır. A ve B formlarında yer alan sorular aynı olmakla birlikte, soru numaraları farklıdır. Soru numaraları karşılıkları aşağıda verilmiştir. Örneğin A kitapçığındaki birinci soru, b kitapçığında 2. soru olarak verilmiştir.
form_ab <- read_excel("FORMAB.xlsx")
esleme <- data.frame(
A = 1:11,
B = c(2,3,1,5,6,7,8,4,9,11,10)
)
esleme
## A B
## 1 1 2
## 2 2 3
## 3 3 1
## 4 4 5
## 5 5 6
## 6 6 7
## 7 7 8
## 8 8 4
## 9 9 9
## 10 10 11
## 11 11 10
# Sadece madde kolonlarını seç
maddeler <- paste0("m",1:11)
form_A <- form_ab %>%
filter(kitapcik == "A")
form_B <- form_ab %>%
filter(kitapcik == "B")
form_B <- form_ab %>%
filter(kitapcik == "B") %>%
mutate(across(all_of(maddeler), as.character)) %>%
transmute(
id,
kitapcik = "A",
setNames(form_B[paste0("m", esleme$B)], paste0("m", esleme$A))
)
form_son <- bind_rows(form_A, form_B)
cevap_anahtari <- c(m1 = "B", m2 = "D", m3= "C", m4= "A", m5= "E",
m6= "E", m7= "D", m8="B", m9="A", m10="E", m11= "E")
maddeler <- names(cevap_anahtari) # m1:m11
form_son <- form_son %>%
mutate(across(all_of(maddeler),
~ ifelse(.x == cevap_anahtari[cur_column()], 1, 0)))
write.csv(form_son, "FORMAB-10.csv")
madde_guclugu <- form_son %>%
summarise(across(m1:m11, ~ mean(.x, na.rm = TRUE))) %>%
pivot_longer(everything(), names_to = "madde", values_to = "gucluk")
madde_guclugu
## # A tibble: 11 × 2
## madde gucluk
## <chr> <dbl>
## 1 m1 0.909
## 2 m2 1
## 3 m3 1
## 4 m4 0.941
## 5 m5 0.676
## 6 m6 0.941
## 7 m7 0.517
## 8 m8 1
## 9 m9 1
## 10 m10 0.333
## 11 m11 0.970
25 Puan
pisa2015 <- read_csv("pisa2015.csv")
## New names:
## Rows: 5895 Columns: 223
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (2): CNT, STRATUM dbl (221): ...1, CNTRYID, CNTSCHID, CNTSTUID, BOOKID,
## W_FSTUWT, W_FSTURWT1, ...
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
pisa2015_yeni <- pisa2015 %>%
select(ST001D01T:ST129Q08TA, PV1SCIE)
head(pisa2015_yeni)
## # A tibble: 6 × 24
## ST001D01T ST004D01T STRATUM MISCED FISCED IMMIG LANGN ESCS JOYSCIE SCIEEFF
## <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 9 1 TUR0235 0 4 1 344 -1.79 -2.12 1.85
## 2 9 1 TUR0235 0 2 1 857 -1.83 2.16 -0.215
## 3 9 1 TUR0235 4 4 1 857 -1.20 0.893 0.556
## 4 9 1 TUR0235 6 5 1 344 -0.907 0.125 0.504
## 5 9 1 TUR0235 0 1 1 857 -4.11 2.16 0.109
## 6 9 1 TUR0235 1 5 1 344 -1.06 -0.309 -1.43
## # ℹ 14 more variables: ST094Q01NA <dbl>, ST094Q02NA <dbl>, ST094Q03NA <dbl>,
## # ST094Q04NA <dbl>, ST094Q05NA <dbl>, ST129Q01TA <dbl>, ST129Q02TA <dbl>,
## # ST129Q03TA <dbl>, ST129Q04TA <dbl>, ST129Q05TA <dbl>, ST129Q06TA <dbl>,
## # ST129Q07TA <dbl>, ST129Q08TA <dbl>, PV1SCIE <dbl>
pisa2015_yeni <- pisa2015_yeni %>%
mutate(across(starts_with("ST094"),
~factor(., levels = 1:4,
labels = c("1_Kesinlikle katılmıyorum",
"2_Katılmıyorum",
"3_Katılıyorum",
"4_Kesinlikle katılıyorum"))))
str(pisa2015_yeni %>%
select(starts_with("ST094")))
## tibble [5,895 × 5] (S3: tbl_df/tbl/data.frame)
## $ ST094Q01NA: Factor w/ 4 levels "1_Kesinlikle katılmıyorum",..: 1 4 3 2 4 2 3 3 2 3 ...
## $ ST094Q02NA: Factor w/ 4 levels "1_Kesinlikle katılmıyorum",..: 1 4 3 3 4 3 3 3 2 3 ...
## $ ST094Q03NA: Factor w/ 4 levels "1_Kesinlikle katılmıyorum",..: 1 4 3 3 4 1 3 3 3 3 ...
## $ ST094Q04NA: Factor w/ 4 levels "1_Kesinlikle katılmıyorum",..: 1 4 3 3 4 2 3 3 2 3 ...
## $ ST094Q05NA: Factor w/ 4 levels "1_Kesinlikle katılmıyorum",..: 1 4 4 3 4 4 3 3 3 3 ...
pisa2015_yeni <- pisa2015_yeni %>%
rename(FEN_OKURYAZARLIK=PV1SCIE,
SINIF_DUZEYI=ST001D01T,
CINSIYET=ST004D01T,
ISTATISTIKI_BOLGE_BIRIMLERI=STRATUM,
ANNE_EGITIM_DUZEYI=MISCED,
BABA_EGITIM_DUZEYI=FISCED,
GOCMENLIK_STATUSU=IMMIG,
EVDE_KONUSULAN_DIL=LANGN,
SOSYO_EKONOMIK_DUZEY=ESCS,
FEN_ZEVK_SEV_1=ST094Q01NA,
FEN_ZEVK_SEV_2=ST094Q02NA,
FEN_ZEVK_SEV_3=ST094Q03NA,
FEN_ZEVK_SEV_4=ST094Q04NA,
FEN_ZEVK_SEV_5=ST094Q05NA,
FEN_OZYETER_1=ST129Q01TA,
FEN_OZYETER_2=ST129Q02TA,
FEN_OZYETER_3=ST129Q03TA,
FEN_OZYETER_4=ST129Q04TA,
FEN_OZYETER_5=ST129Q05TA,
FEN_OZYETER_6=ST129Q06TA,
FEN_OZYETER_7=ST129Q07TA,
FEN_OZYETER_8=ST129Q08TA,
FEN_ZEVK_OLCU=JOYSCIE,
FEN_OZYETER_OLCU=SCIEEFF)
pisa2015_yeni1 <- pisa2015_yeni %>%
mutate(BOLGE2 = case_when(
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0101","TUR0102","TUR0103") ~ "TR1: Istanbul",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0104","TUR0105","TUR0106") ~ "TR2: Batı Marmara",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0107","TUR0108","TUR0109") ~ "TR3: Ege",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0110","TUR0111","TUR0112") ~ "TR4: Dogu Marmara",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0213","TUR0214","TUR0215") ~ "TR5: Batı Anadolu",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0216","TUR0217","TUR0218") ~ "TR6: Akdeniz",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0219","TUR0220","TUR0221") ~ "TR7: Orta Anadolu",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0222","TUR0223","TUR0224") ~ "TR8: Batı Karadeniz",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0225","TUR0226","TUR0227") ~ "TR9: Dogu Karadeniz",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0228","TUR0229","TUR0230") ~ "TRA: Kuzeydogu Anadolu",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0231","TUR0232","TUR0233") ~ "TRB: Ortadogu Anadolu",
ISTATISTIKI_BOLGE_BIRIMLERI %in% c("TUR0234","TUR0235","TUR0236") ~ "TRC: Guneydogu Anadolu"))
pisa2015_yeni1$CINSIYET <- factor(pisa2015_yeni1$CINSIYET,
levels= c(1,2),
labels=c("Kiz","Erkek"))
ggplot(pisa2015_yeni1, aes(x=CINSIYET,y=FEN_OKURYAZARLIK)) +
geom_boxplot(fill= "green", alpha= 0.7)+
stat_summary(fun = mean, geom = "point", shape = 20,
size = 4, color = "red") +
labs(
x= "CINSIYET",
y="FEN OKURYAZARLIK PUANI",
title = "KUTU GRAFIGI: CINSIYETE GORE FEN OKURYAZARLIK "
)+
theme_minimal()
bolge_ortalamasi <- pisa2015_yeni1 %>%
group_by(BOLGE2) %>%
summarise(Fen_ortalama = mean(FEN_OKURYAZARLIK, na.rm = TRUE)) %>%
arrange(desc(Fen_ortalama))
bolge_ortalamasi
## # A tibble: 12 × 2
## BOLGE2 Fen_ortalama
## <chr> <dbl>
## 1 TR2: Batı Marmara 438.
## 2 TR3: Ege 437.
## 3 TR5: Batı Anadolu 435.
## 4 TR1: Istanbul 434.
## 5 TR6: Akdeniz 433.
## 6 TR4: Dogu Marmara 430.
## 7 TR7: Orta Anadolu 416.
## 8 TR8: Batı Karadeniz 412.
## 9 TR9: Dogu Karadeniz 409.
## 10 TRA: Kuzeydogu Anadolu 404.
## 11 TRC: Guneydogu Anadolu 388.
## 12 TRB: Ortadogu Anadolu 382.
ggplot(bolge_ortalamasi, aes(x = reorder(BOLGE2, -Fen_ortalama), y = Fen_ortalama)) +
geom_bar(stat = "identity", fill = "lightgreen") +
labs(
x = "Bolge",
y = "Ortalama Fen Okuryazarlik Puani",
title = "Bolgelere Gore Ortalama Fen Okuryazarlik Puanlari"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
6.1. FEN_OKURYAZARLIK (PV1SCIE) ile SOSYO_EKONOMIK_DUZEY (ESCS) değişkenleri arasındaki Pearson korelasyon katsayısını hesaplayınız (7.1). Ayrıca, bu iki değişken ve ANNE_EGITIMI (MISCED) ile BABA_EGITIMI (FISCED) değişkenlerini de içeren bir korelasyon matrisi (7.2) oluşturup bu matrisi yuvarlayarak gösteriniz (7.3).
# Pearson korelasyon katsayısı
cor(pisa2015_yeni1$FEN_OKURYAZARLIK, pisa2015_yeni1$SOSYO_EKONOMIK_DUZEY,
use = "complete.obs", method = "pearson")
## [1] 0.2895673
# Korelasyon matrisi için kullanılacak değişkenleri seçelim
degiskenler <- pisa2015_yeni1[, c("FEN_OKURYAZARLIK", "SOSYO_EKONOMIK_DUZEY",
"ANNE_EGITIM_DUZEYI", "BABA_EGITIM_DUZEYI")]
# Korelasyon matrisi
cor_matris <- cor(degiskenler, use = "complete.obs", method = "pearson")
# Yuvarlanmış korelasyon matrisi
round(cor_matris, 3)
## FEN_OKURYAZARLIK SOSYO_EKONOMIK_DUZEY ANNE_EGITIM_DUZEYI
## FEN_OKURYAZARLIK 1.000 0.289 0.099
## SOSYO_EKONOMIK_DUZEY 0.289 1.000 0.661
## ANNE_EGITIM_DUZEYI 0.099 0.661 1.000
## BABA_EGITIM_DUZEYI 0.169 0.778 0.560
## BABA_EGITIM_DUZEYI
## FEN_OKURYAZARLIK 0.169
## SOSYO_EKONOMIK_DUZEY 0.778
## ANNE_EGITIM_DUZEYI 0.560
## BABA_EGITIM_DUZEYI 1.000
6.2. Basit doğrusal regresyon analizi kullanarak, SOSYO_EKONOMIK_DUZEY (ESCS) değişkeninin FEN_OKURYAZARLIK (PV1SCIE) puanını ne ölçüde yordadığını inceleyiniz (8.1). Elde ettiğiniz regresyon modelinin özetini (summary) görüntüleyiniz (8.2) ve regresyon denklemini yorumlayınız (8.3).
model <- lm(FEN_OKURYAZARLIK ~ SOSYO_EKONOMIK_DUZEY, data = pisa2015_yeni1)
summary(model)
##
## Call:
## lm(formula = FEN_OKURYAZARLIK ~ SOSYO_EKONOMIK_DUZEY, data = pisa2015_yeni1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -254.267 -51.435 -2.633 51.343 241.124
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 450.4508 1.5393 292.64 <2e-16 ***
## SOSYO_EKONOMIK_DUZEY 19.1735 0.8281 23.15 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 73.9 on 5857 degrees of freedom
## (36 observations deleted due to missingness)
## Multiple R-squared: 0.08385, Adjusted R-squared: 0.08369
## F-statistic: 536.1 on 1 and 5857 DF, p-value: < 2.2e-16
6.3 (Regresyon denklemi yorumlama) FEN OKURYAZARLIK= 450.45+19.17× SOSYO EKONOMIK DUZEY
R-squared = 0.08385.Bu değer, fen okuryazarlık puanlarındaki toplam değişkenliğin yaklaşık %8.4’ünün sosyo-ekonomik düzey ile açıklandığını göstermektedir. Bu düşük bir değerdir ve model istatistiksel olarak anlamlı olsada açıklayıcılığı sınırlıdır.
Residual standard error = 73.9. Bu, modelin fen okuryazarlık puanlarını ortalama yaklaşık ±74 puan hata ile tahmin ettiğini göstermektedir.