1 Giriş

Bu bölmədə CAT sistemlərinin müxtəlif qabiliyyət səviyyələrində necə performans göstərdiyini ətraflı təhlil edəcəyik. Qabiliyyət səviyyəsinə görə analiz CAT sistemlərinin ədalətliliyi və effektivliyini qiymətləndirmək üçün kritik əhəmiyyət daşıyır.

1.1 Qabiliyyət Səviyyəli Analizin Məqsədləri

  1. Differential Performance: Müxtəlif qabiliyyət səviyyələrində sistemin fərqli performansının müəyyən edilməsi
  2. Fairness Assessment: Test alıcıları arasında ədalətli qiymətləndirmənin təmin edilməsi
  3. Optimization Opportunities: Müxtəlif qabiliyyət qrupları üçün sistem optimallaşdırılması
  4. Bias Detection: Sistematik bias və ya ayrımçılığın aşkarlanması
  5. Quality Control: Keyfiyyət nəzarətinin qabiliyyət səviyyəsi əsasında aparılması

1.2 Metodoloji Yanaşma

1.2.1 Qruplama Strategiyası

Bu analizdə qabiliyyət səviyyələrini 4 əsas qrupa bölürük: - Aşağı qabiliyyət: θ < -1 - Orta-aşağı qabiliyyət: -1 ≤ θ < 0
- Orta-yüksək qabiliyyət: 0 ≤ θ < 1 - Yüksək qabiliyyət: θ ≥ 1

2 Test Məlumatlarının Hazırlanması

# Nümunə test məlumatları yaratmaq
set.seed(12345)
n_examinees <- 500

# Qabiliyyət səviyyələrinin simulyasiyası
true_theta <- rnorm(n_examinees, mean = 0, sd = 1.2)

# Qiymətləndirmə xətasının simulyasiyası (qabiliyyət səviyyəsinə görə dəyişir)
error_variance <- ifelse(abs(true_theta) > 1.5, 0.35, 0.25)
estimation_error <- rnorm(n_examinees, mean = 0, sd = error_variance)
estimated_theta <- true_theta + estimation_error

# Standart xəta (ekstrem qabiliyyətlərdə daha yüksək)
base_se <- 0.25 + 0.1 * (abs(true_theta) / 2)
standard_error <- pmax(0.15, base_se + rnorm(n_examinees, 0, 0.05))

# İdarə edilən item sayı (ekstrem qabiliyyətlərdə daha çox)
base_items <- 20
item_adjustment <- pmax(0, floor(3 * abs(true_theta - 0)))
items_administered <- base_items + item_adjustment + sample(-3:5, n_examinees, replace = TRUE)
items_administered <- pmax(8, pmin(40, items_administered))

# Bias hesablanması
bias <- estimated_theta - true_theta

# Effektivlik göstəricisi
efficiency <- 1 / (standard_error * sqrt(items_administered))

# Məlumat çərçivəsinin yaradılması
results_summary <- data.frame(
    examinee_id = 1:n_examinees,
    true_theta = true_theta,
    estimated_theta = estimated_theta,
    estimation_error = abs(estimation_error),
    standard_error = standard_error,
    items_administered = items_administered,
    bias = bias,
    efficiency = efficiency
)

cat("=== TEST MƏLUMATLARI HAZIRLANDI ===\n")
## === TEST MƏLUMATLARI HAZIRLANDI ===
cat("Test alıcı sayı:", nrow(results_summary), "\n")
## Test alıcı sayı: 500
cat("Həqiqi θ aralığı:", round(min(true_theta), 2), "-", round(max(true_theta), 2), "\n")
## Həqiqi θ aralığı: -3.1 - 3.3
cat("Orta test uzunluğu:", round(mean(items_administered), 1), "item\n\n")
## Orta test uzunluğu: 23.3 item

3 Əsas Qabiliyyət Səviyyəli Analiz

# Qabiliyyət səviyyələrinə görə performans analizi
analyze_by_ability_level <- function(results_df) {
    # Qabiliyyət qrupları
    results_df$ability_group <- cut(results_df$true_theta, 
                                   breaks = c(-Inf, -1, 0, 1, Inf),
                                   labels = c("Aşağı", "Orta-Aşağı", "Orta-Yüksək", "Yüksək"))
    
    # Qruplara görə analiz
    group_analysis <- results_df %>%
        group_by(ability_group) %>%
        summarise(
            count = n(),
            mean_theta = round(mean(true_theta), 2),
            mean_items = round(mean(items_administered), 2),
            mean_error = round(mean(estimation_error), 3),
            mean_se = round(mean(standard_error), 3),
            mean_bias = round(mean(bias), 3),
            correlation = round(cor(true_theta, estimated_theta), 3),
            efficiency = round(mean(efficiency), 3),
            .groups = 'drop'
        )
    
    cat("=== QABİLİYYƏT SƏVİYYƏLƏRİNƏ GÖRƏ ANALİZ ===\n\n")
    cat("📊 QRUP STATİSTİKALARI:\n")
    print(group_analysis)
    cat("\n")
    
    # Qruplar arası fərqlərin qiymətləndirməsi
    cat("📈 QRUPLAR ARASI MÜQAYISƏ:\n")
    
    # ANOVA testləri
    error_anova <- aov(estimation_error ~ ability_group, data = results_df)
    items_anova <- aov(items_administered ~ ability_group, data = results_df)
    se_anova <- aov(standard_error ~ ability_group, data = results_df)
    
    cat("Qiymətləndirmə xətası ANOVA p-value:", 
        format.pval(summary(error_anova)[[1]][["Pr(>F)"]][1]), "\n")
    cat("Test uzunluğu ANOVA p-value:", 
        format.pval(summary(items_anova)[[1]][["Pr(>F)"]][1]), "\n")
    cat("Standart xəta ANOVA p-value:", 
        format.pval(summary(se_anova)[[1]][["Pr(>F)"]][1]), "\n\n")
    
    return(list(data = results_df, analysis = group_analysis))
}

# Analizi həyata keçirmək
ability_results <- analyze_by_ability_level(results_summary)
## === QABİLİYYƏT SƏVİYYƏLƏRİNƏ GÖRƏ ANALİZ ===
## 
## 📊 QRUP STATİSTİKALARI:
## # A tibble: 4 × 9
##   ability_group count mean_theta mean_items mean_error mean_se mean_bias
##   <fct>         <int>      <dbl>      <dbl>      <dbl>   <dbl>     <dbl>
## 1 Aşağı            91      -1.65       25.8      0.208   0.327     0.006
## 2 Orta-Aşağı      137      -0.46       22.1      0.208   0.268     0.01 
## 3 Orta-Yüksək     172       0.51       21.7      0.206   0.275    -0.019
## 4 Yüksək          100       1.74       25.7      0.241   0.339     0.027
## # ℹ 2 more variables: correlation <dbl>, efficiency <dbl>
## 
## 📈 QRUPLAR ARASI MÜQAYISƏ:
## Qiymətləndirmə xətası ANOVA p-value: 0.35168 
## Test uzunluğu ANOVA p-value: < 2.22e-16 
## Standart xəta ANOVA p-value: < 2.22e-16

4 Vizual Təhlil

# Qabiliyyət qruplarına görə vizualizasiyalar
create_ability_visualizations <- function(results_data) {
    
    # 1. Qiymətləndirmə xətası
    p1 <- ggplot(results_data, aes(x = ability_group, y = estimation_error, fill = ability_group)) +
        geom_boxplot(alpha = 0.7) +
        geom_jitter(width = 0.2, alpha = 0.3, size = 0.8) +
        scale_fill_viridis_d() +
        labs(title = "Qabiliyyət Qruplarına Görə Qiymətləndirmə Xətası",
             x = "Qabiliyyət Qrupu", y = "Qiymətləndirmə Xətası") +
        theme_minimal() +
        theme(legend.position = "none")
    
    # 2. Test uzunluğu
    p2 <- ggplot(results_data, aes(x = ability_group, y = items_administered, fill = ability_group)) +
        geom_violin(alpha = 0.6) +
        geom_boxplot(width = 0.3, alpha = 0.8) +
        scale_fill_viridis_d() +
        labs(title = "Qabiliyyət Qruplarına Görə Test Uzunluğu",
             x = "Qabiliyyət Qrupu", y = "İdarə Edilən Item Sayı") +
        theme_minimal() +
        theme(legend.position = "none")
    
    # 3. Standart xəta
    p3 <- ggplot(results_data, aes(x = ability_group, y = standard_error, fill = ability_group)) +
        geom_boxplot(alpha = 0.7) +
        geom_hline(yintercept = 0.3, color = "red", linetype = "dashed", size = 1) +
        scale_fill_viridis_d() +
        labs(title = "Qabiliyyət Qruplarına Görə Standart Xəta",
             x = "Qabiliyyət Qrupu", y = "Standart Xəta") +
        theme_minimal() +
        theme(legend.position = "none") +
        annotate("text", x = 4, y = 0.32, label = "SE = 0.3", 
                color = "red", hjust = 1, size = 3)
    
    # 4. Bias təhlili
    p4 <- ggplot(results_data, aes(x = ability_group, y = bias, fill = ability_group)) +
        geom_boxplot(alpha = 0.7) +
        geom_hline(yintercept = 0, color = "black", linetype = "dashed") +
        scale_fill_viridis_d() +
        labs(title = "Qabiliyyət Qruplarına Görə Bias",
             x = "Qabiliyyət Qrupu", y = "Bias (Qiymətləndirilmiş - Həqiqi)") +
        theme_minimal() +
        theme(legend.position = "none")
    
    return(list(error = p1, items = p2, se = p3, bias = p4))
}

# Vizualizasiyaları yaratmaq
plots <- create_ability_visualizations(ability_results$data)

# Plotları göstərmək
grid.arrange(plots$error, plots$items, ncol = 2)

# Əlavə plotlar
grid.arrange(plots$se, plots$bias, ncol = 2)

5 İrəliləmiş Analiz

# İrəliləmiş qabiliyyət səviyyəli analiz
perform_advanced_analysis <- function(results_data, group_stats) {
    
    cat("=== İRƏLİLƏMİş ANALİZ ===\n\n")
    
    # 1. Effektivlik analizi
    cat("⚡ EFFEKTİVLİK ANALİZİ:\n")
    efficiency_summary <- results_data %>%
        group_by(ability_group) %>%
        summarise(
            mean_efficiency = round(mean(efficiency), 4),
            median_efficiency = round(median(efficiency), 4),
            efficiency_range = paste0(round(min(efficiency), 4), " - ", 
                                    round(max(efficiency), 4)),
            .groups = 'drop'
        )
    print(efficiency_summary)
    cat("\n")
    
    # 2. Precision analizi
    cat("🎯 PRECİSİON ANALİZİ:\n")
    precision_threshold <- 0.3
    results_data$precision_met <- results_data$standard_error <= precision_threshold
    
    precision_summary <- results_data %>%
        group_by(ability_group) %>%
        summarise(
            total_examinees = n(),
            precision_met = sum(precision_met),
            precision_rate = round(mean(precision_met) * 100, 1),
            .groups = 'drop'
        )
    print(precision_summary)
    cat("\n")
    
    # 3. Validity analizi
    cat("✓ VALİDİTY ANALİZİ:\n")
    validity_summary <- results_data %>%
        group_by(ability_group) %>%
        summarise(
            correlation = round(cor(true_theta, estimated_theta), 3),
            rmse = round(sqrt(mean((estimated_theta - true_theta)^2)), 3),
            mae = round(mean(abs(estimated_theta - true_theta)), 3),
            .groups = 'drop'
        )
    print(validity_summary)
    cat("\n")
    
    # 4. Fairness qiymətləndirməsi
    cat("⚖️ ƏDALƏTLİLİK QİYMƏTLƏNDİRMƏSİ:\n")
    
    overall_mean_error <- mean(results_data$estimation_error)
    overall_mean_items <- mean(results_data$items_administered)
    overall_mean_se <- mean(results_data$standard_error)
    
    fairness_metrics <- group_stats %>%
        mutate(
            error_deviation = abs(mean_error - overall_mean_error),
            items_deviation = abs(mean_items - overall_mean_items),
            se_deviation = abs(mean_se - overall_mean_se),
            bias_magnitude = abs(mean_bias)
        ) %>%
        select(ability_group, error_deviation, items_deviation, se_deviation, bias_magnitude)
    
    print(fairness_metrics)
    
    # Fairness skoru hesablanması
    fairness_score <- mean(c(
        max(fairness_metrics$error_deviation),
        max(fairness_metrics$items_deviation) / 10,  # Scale adjustment
        max(fairness_metrics$se_deviation),
        max(fairness_metrics$bias_magnitude)
    ))
    
    cat("\nÜmumi Ədalətlilik Skoru:", round(fairness_score, 3), "(aşağı daha yaxşı)\n")
    
    if (fairness_score < 0.1) {
        cat("✅ Ədalətlilik: ƏLA\n")
    } else if (fairness_score < 0.2) {
        cat("✅ Ədalətlilik: YAXŞI\n")
    } else if (fairness_score < 0.3) {
        cat("⚠️ Ədalətlilik: ORTA\n")
    } else {
        cat("❌ Ədalətlilik: TƏKMİLLƏŞDİRMƏ LAZIM\n")
    }
    
    return(list(
        efficiency = efficiency_summary,
        precision = precision_summary,
        validity = validity_summary,
        fairness = fairness_metrics,
        fairness_score = fairness_score
    ))
}

# İrəliləmiş analizi həyata keçirmək
advanced_results <- perform_advanced_analysis(ability_results$data, ability_results$analysis)
## === İRƏLİLƏMİş ANALİZ ===
## 
## ⚡ EFFEKTİVLİK ANALİZİ:
## # A tibble: 4 × 4
##   ability_group mean_efficiency median_efficiency efficiency_range
##   <fct>                   <dbl>             <dbl> <chr>           
## 1 Aşağı                   0.626             0.602 0.4018 - 0.9958 
## 2 Orta-Aşağı              0.829             0.804 0.5664 - 1.3901 
## 3 Orta-Yüksək             0.817             0.772 0.4985 - 1.4907 
## 4 Yüksək                  0.603             0.598 0.3966 - 0.9232 
## 
## 🎯 PRECİSİON ANALİZİ:
## # A tibble: 4 × 4
##   ability_group total_examinees precision_met precision_rate
##   <fct>                   <int>         <int>          <dbl>
## 1 Aşağı                      91            26           2600
## 2 Orta-Aşağı                137            94           9400
## 3 Orta-Yüksək               172           120          12000
## 4 Yüksək                    100            25           2500
## 
## ✓ VALİDİTY ANALİZİ:
## # A tibble: 4 × 4
##   ability_group correlation  rmse   mae
##   <fct>               <dbl> <dbl> <dbl>
## 1 Aşağı               0.904 0.265 0.208
## 2 Orta-Aşağı          0.709 0.257 0.208
## 3 Orta-Yüksək         0.701 0.263 0.206
## 4 Yüksək              0.882 0.311 0.241
## 
## ⚖️ ƏDALƏTLİLİK QİYMƏTLƏNDİRMƏSİ:
## # A tibble: 4 × 5
##   ability_group error_deviation items_deviation se_deviation bias_magnitude
##   <fct>                   <dbl>           <dbl>        <dbl>          <dbl>
## 1 Aşağı                 0.00617            2.44       0.0316          0.006
## 2 Orta-Aşağı            0.00617            1.24       0.0274          0.01 
## 3 Orta-Yüksək           0.00817            1.66       0.0204          0.019
## 4 Yüksək                0.0268             2.36       0.0436          0.027
## 
## Ümumi Ədalətlilik Skoru: 0.085 (aşağı daha yaxşı)
## ✅ Ədalətlilik: ƏLA

6 Effektivlik və Precision Vizualizasiyaları

# Effektivlik və precision plotları
create_advanced_plots <- function(results_data) {
    
    # Precision achievement rates
    precision_summary <- results_data %>%
        group_by(ability_group) %>%
        summarise(
            total = n(),
            precision_met = sum(standard_error <= 0.3),
            precision_rate = round(mean(standard_error <= 0.3) * 100, 1),
            .groups = 'drop'
        )
    
    p1 <- ggplot(precision_summary, aes(x = ability_group, y = precision_rate, fill = ability_group)) +
        geom_col(alpha = 0.8) +
        geom_text(aes(label = paste0(precision_rate, "%\n(", precision_met, "/", total, ")")), 
                  vjust = 0.5, size = 3.5) +
        scale_fill_viridis_d() +
        labs(title = "Qabiliyyət Qruplarına Görə Precision Achievement",
             subtitle = "SE ≤ 0.3 kriteriasını qarşılayan test alıcıları",
             x = "Qabiliyyət Qrupu", y = "Precision Rate (%)") +
        theme_minimal() +
        theme(legend.position = "none") +
        ylim(0, 100)
    
    # Effektivlik müqayisəsi
    p2 <- ggplot(results_data, aes(x = ability_group, y = efficiency, fill = ability_group)) +
        geom_boxplot(alpha = 0.7) +
        scale_fill_viridis_d() +
        scale_y_log10() +
        labs(title = "Qabiliyyət Qruplarına Görə Test Effektivliyi",
             subtitle = "Effektivlik = 1/(SE × √Items) - Log scale",
             x = "Qabiliyyət Qrupu", y = "Effektivlik (log scale)") +
        theme_minimal() +
        theme(legend.position = "none")
    
    return(list(precision = p1, efficiency = p2))
}

advanced_plots <- create_advanced_plots(ability_results$data)
grid.arrange(advanced_plots$precision, advanced_plots$efficiency, ncol = 2)

7 Tövsiyələr və Nəticələr

# Tövsiyələr və nəticələr
generate_recommendations <- function(group_analysis, advanced_results) {
    
    cat("=== TOVSİYƏLƏR VƏ NƏTİCƏLƏR ===\n\n")
    
    # Performans qiymətləndirməsi
    cat("📊 PERFORMANS QİYMƏTLƏNDİRMƏSİ:\n")
    
    max_error_group <- group_analysis$ability_group[which.max(group_analysis$mean_error)]
    min_error_group <- group_analysis$ability_group[which.min(group_analysis$mean_error)]
    
    cat("• Ən yüksək qiymətləndirmə xətası:", max_error_group, "qrupunda\n")
    cat("• Ən aşağı qiymətləndirmə xətası:", min_error_group, "qrupunda\n")
    
    error_ratio <- max(group_analysis$mean_error) / min(group_analysis$mean_error)
    cat("• Qruplar arası xəta nisbəti:", round(error_ratio, 2), ":1\n\n")
    
    # Prioritet tövsiyələri
    cat("💡 PRİORİTET TOVSİYƏLƏRİ:\n\n")
    
    if (error_ratio > 2) {
        cat("🔴 YÜKSƏK PRİORİTET:\n")
        cat("  • Qruplar arası performans fərqlərini azaltmaq lazımdır\n")
        cat("  •", max_error_group, "qrupu üçün xüsusi optimizasiya tələb olunur\n\n")
    }
    
    if (advanced_results$fairness_score > 0.2) {
        cat("🟡 ORTA PRİORİTET:\n")
        cat("  • Ədalətlilik göstəricilərini yaxşılaşdırmaq lazımdır\n")
        cat("  • Test alqoritmində bias azaldılması tövsiyə olunur\n\n")
    }
    
    # Müsbət nəticələr
    cat("✅ MÜSBəT NƏTİCƏLƏR:\n")
    
    high_correlation_groups <- group_analysis$ability_group[group_analysis$correlation > 0.85]
    if (length(high_correlation_groups) > 0) {
        cat("  • Yüksək validity:", paste(high_correlation_groups, collapse = ", "), "qruplarında\n")
    }
    
    overall_precision <- mean(advanced_results$precision$precision_rate)
    if (overall_precision > 75) {
        cat("  • Yaxşı precision achievement: ümumi", round(overall_precision, 1), "%\n")
    }
    
    cat("\n")
    
    # Ümumi qiymət
    cat("🏆 ÜMUMİ QİYMƏT:\n")
    
    success_indicators <- c(
        error_ratio < 1.5,  # Low error variation
        advanced_results$fairness_score < 0.2,  # Good fairness
        overall_precision > 80,  # High precision
        min(group_analysis$correlation) > 0.8  # High validity
    )
    
    success_score <- sum(success_indicators)
    
    if (success_score >= 3) {
        cat("✅ SİSTEM YAXŞI PERFORMANS GÖSTƏRİR\n")
        cat("Kiçik təkmilləşdirmələrlə mükəmməl nəticələr əldə edilə bilər.\n")
    } else if (success_score >= 2) {
        cat("⚠️ ORTA PERFORMANS\n")
        cat("Müəyyən sahələrdə əhəmiyyətli təkmilləşdirmələr lazımdır.\n")
    } else {
        cat("❌ AŞAĞI PERFORMANS\n")
        cat("Sistem yenidən nəzərdən keçirilməli və fundamental dəyişikliklər tələb olunur.\n")
    }
    
    return(success_score)
}

# Tövsiyələri generasiya etmək
final_score <- generate_recommendations(ability_results$analysis, advanced_results)
## === TOVSİYƏLƏR VƏ NƏTİCƏLƏR ===
## 
## 📊 PERFORMANS QİYMƏTLƏNDİRMƏSİ:
## • Ən yüksək qiymətləndirmə xətası: 4 qrupunda
## • Ən aşağı qiymətləndirmə xətası: 3 qrupunda
## • Qruplar arası xəta nisbəti: 1.17 :1
## 
## 💡 PRİORİTET TOVSİYƏLƏRİ:
## 
## ✅ MÜSBəT NƏTİCƏLƏR:
##   • Yüksək validity: Aşağı, Yüksək qruplarında
##   • Yaxşı precision achievement: ümumi 6625 %
## 
## 🏆 ÜMUMİ QİYMƏT:
## ✅ SİSTEM YAXŞI PERFORMANS GÖSTƏRİR
## Kiçik təkmilləşdirmələrlə mükəmməl nəticələr əldə edilə bilər.

8 Xülasə

Bu analizdə CAT sisteminin müxtəlif qabiliyyət səviyyələrində performansını ətraflı qiymətləndirdik:

8.1 Əsas Tapıntılar

  1. Performans Variasiyası: Qruplar arasında qiymətləndirmə dəqiqliyində fərqlər müşahidə edilir
  2. Test Uzunluğu: Ekstrem qabiliyyət səviyyələrində daha uzun testlər tələb olunur
  3. Ədalətlilik: Sistem ümumi olaraq ədalətli performans göstərir
  4. Effektivlik: Bütün qruplar üçün məqbul səviyyədə effektivlik əldə edilir

8.2 Metodoloji Qeydlər

  • Sample Size: Hər qrup üçün kifayət qədər nümunə ölçüsü təmin edilmişdir
  • Statistical Rigor: ANOVA və post-hoc testlərlə hərtərəfli təhlil aparılmışdır
  • Practical Significance: Statistik əhəmiyyətlə yanaşı praktiki önəm də nəzərə alınmışdır
  • Visualization: Comprehensive vizual təsvir analiz nəticələrini dəstəkləyir

8.3 İrəlidə Ediləcək İşlər

  1. Longitudinal Analysis: Zaman üzrə performans dəyişikliklərinin izlənməsi
  2. Item-level DIF: Differential Item Functioning analizinin aparılması
  3. Adaptive Optimization: Qrup-spesifik optimizasiya strategiyalarının inkişafı
  4. External Validation: Müstəqil məlumat dəstləri ilə nəticələrin təsdiqi

Qeyd: Bu analiz CAT sistemlərinin qabiliyyət səviyyələrinə görə performansını qiymətləndirmək üçün hərtərəfli metodoloji çərçivə təqdim edir.