Variabel & Rumus

Definisi semua variabel penting (p, Bobot, NM, NN, theta, b, SE) dan rumus CTT/IRT yang dipakai yellow-bank-soal.

Definisi Variabel & Istilah

Halaman ini menjelaskan setiap variabel yang muncul di kode dan dokumen yellow-bank-soal.

Variabel CTT (Classical Test Theory)

VariabelNama IndonesiaRumusRangeKeterangan
pTingkat Kesukaran (TK)p = Σ Benar / Total Peserta[0, 1]Proporsi peserta yang menjawab benar. Tinggi = mudah.
BobotBobot soalBobot = 1 − p[0, 1]Soal sulit → bobot besar. Soal mudah → bobot kecil.
Total_Bobot_SiswaTotal bobot siswaΣ Bobot untuk tiap jawaban benar≥ 0Skor tertimbang siswa.
Total_Bobot_MaxTotal bobot maksimalΣ Bobot untuk semua soal> 0Skor maksimum yang mungkin.
NMNilai MentahNM = (Total_Bobot_Siswa / Total_Bobot_Max) × 1000[0, 1000]Skor mentah siswa (skala 1000).
RataanRata-rata NMmean(semua NM)bebasDistribusi rata-rata tryout.
SBSimpangan Bakusqrt(variance(semua NM))> 0Standar deviasi NM.
NNNilai NasionalNN = 500 + 100 × ((NM − Rataan) / SB)[0, 1000] (di-clip)Skor ternormalisasi (mean 500, SD 100).

Kategori kesulitan (standar CTT)

CTT pKategoriLevelSetara b IRT
p < 0.30SukarSulitb > 0.85
0.30 ≤ p ≤ 0.70SedangSedang-0.85 ≤ b ≤ 0.85
p > 0.70MudahMudahb < -0.85

Variabel IRT (Item Response Theory — Rasch 1PL)

VariabelNamaRumusRangeKeterangan
θ (theta)Kemampuan siswaDiestimasi via MLE[-3, +3]Estimasi kemampuan siswa. Awal θ = 0.
bKesulitan soalDikalibrasi dari data respon[-3, +3]Tinggi = soal sulit.
P(θ, b)Probabilitas benarP = 1 / (1 + e^(−(θ − b)))[0, 1]Peluang siswa θ menjawab benar soal b.
I(θ)Fisher InformationI(θ) = P(θ) × (1 − P(θ))[0, 0.25]Maksimal saat θ = b. Dipakai untuk pemilihan soal CAT.
SEStandard Error thetaSE = 1 / sqrt(Σ I(θ))> 0Presisi estimasi θ. Target SE < 0.5 setelah ≥ 15 soal.
θ → NNPemetaan silangNN = 500 + (θ / 3) × 500[0, 1000]Konversi skor IRT ke skala NN untuk komparasi.
CTT → IRTInisialisasi bb ≈ −ln((1 − p) / p)biasanya [-3, +3]Estimasi awal b dari p sebelum dikalibrasi.

Konfigurasi Tryout

FieldTipeDefaultArti
scoring_modectt | irt | hybridcttAlgoritma skor utama.
selection_modefixed | adaptive | hybridfixedStrategi pemilihan soal.
normalization_modestatic | dynamic | hybridstaticCara hitung Rataan & SB.
min_sample_for_dynamicint100Min peserta untuk aktifkan normalisasi dinamis.
static_rataanfloat500.0Rataan manual saat static.
static_sbfloat100.0SB manual saat static.
ai_generation_enabledboolfalseToggle pembuatan soal AI.
hybrid_transition_slotint?nullSlot transisi fixedadaptive (mode hybrid).
min_calibration_sampleint100Min respon untuk kalibrasi IRT.
theta_estimation_methodmle | map | eapmleMetode estimasi theta.
fallback_to_ctt_on_errorbooltrueFallback ke CTT bila IRT gagal.

Konstanta internal IRT

Dari backend/app/services/irt_calibration.py:

python
THETA_MIN = -3.0
THETA_MAX = 3.0
B_MIN = -3.0
B_MAX = 3.0
SE_PRECISION_THRESHOLD = 0.5      # PRD: SE < 0.5 setelah ≥ 15 soal
MLE_BOUNDS = (-6.0, 6.0)          # batas optimasi (lebar), sebelum di-klip ke [-3, +3]
EDGE_CASE_THETA_HIGH = 4.0        # semua jawaban benar
EDGE_CASE_THETA_LOW = -4.0        # semua jawaban salah
NUMERICAL_CLIP = 30               # clipping eksponen untuk stabilitas numerik
DEFAULT_SE_THRESHOLD = 0.5        # terminasi CAT
MIN_ITEMS_FOR_SE = 15             # PRD: min soal sebelum terminasi berbasis SE

Last updated Jul 25, 2026