CAT

Ability Estimation - MCAT (MLE, MAP, EAP)

irufano · · 91 min read

Dokumen ini merangkum tiga metode estimasi kemampuan (ability, θ\theta) multidimensional CAT: Maximum Likelihood Estimation (MLE), Maximum A Posteriori (MAP / Bayes Modal), dan Expected A Posteriori (EAP). Fokus dokumen: landasan teori tiap metode, pembuktian aljabar bahwa perhitungan identik dengan literatur, dan contoh perhitungan manual per metode.


1. Konsep Fondasi: Prior, Likelihood, dan Posterior

Sebelum masuk ke formula teknis, berikut intuisi ketiga konsep yang menjadi inti ketiga metode estimasi:

Prior: "Apa yang kita tahu tentang θ\theta sebelum ada data?"

Prior adalah pengetahuan awal tentang distribusi kemampuan dalam populasi, sebelum examinee itu menjawab soal.

  • Contoh: Asumsi umum populasi peserta tes adalah θN(0,1)\theta \sim N(0,1) (normal dengan mean 0, variance 1)

    • Ini berarti: "Sebelum tes, kami percaya kebanyakan orang punya kemampuan dekat 0, dan semakin jauh dari 0 semakin jarang"
    • Misal θ=+3\theta=+3 dianggap sangat jarang di populasi (hanya 0.13% dalam normal)
  • Prior tidak bergantung pada respons - pure belief/asumsi tentang populasi, bukan tentang satu examinee

  • Prior adalah penyeimbang antara data (likelihood) dan asumsi awal tentang populasi

Rumus sederhana: π(θ)=N(μ,σ2)\pi(\theta) = N(\mu, \sigma^2) (biasanya prior normal dengan mean μ\mu dan variance σ2\sigma^2)


Likelihood: "Seberapa cocok data dengan parameter θ\theta?"

Likelihood menjawab: Jika kemampuan examinee adalah θ\theta, seberapa besar peluang dia menjawab respons yang kita observasi?

  • Contoh: Examinee menjawab 3 item: benar, salah, benar (respons u=[1,0,1]\mathbf{u}=[1,0,1])

    • Jika kemampuannya θ=0\theta=0 (median), likelihood mungkin 0.1 (tidak terlalu cocok - item pertama harusnya lebih mudah)
    • Jika kemampuannya θ=+1\theta=+1 (tinggi), likelihood mungkin 0.5 (lebih cocok - pola respons sesuai dengan kemampuan lebih tinggi)
  • Likelihood adalah fungsi dari θ\theta yang menggukur "bukti yang ada mendukung θ\theta berapa"

  • Semakin tinggi likelihood, semakin "masuk akal" nilai θ\theta tersebut berdasarkan data respons

Rumus sederhana: L(θ)=iPi(θ)uiQi(θ)1uiL(\theta) = \prod_i P_i(\theta)^{u_i} \cdot Q_i(\theta)^{1-u_i} (produk probabilitas per item)


Posterior: "Apa yang kita tahu tentang θ\theta setelah melihat data?"

Posterior adalah update belief tentang θ\theta setelah menggabungkan prior (pengetahuan awal) dengan likelihood (bukti dari respons).

Formula Bayes: p(θu)=p(uθ)p(θ)p(u)=Likelihood×PriorNormalisasip(\theta \mid \mathbf{u}) = \frac{p(\mathbf{u} \mid \theta) \cdot p(\theta)}{p(\mathbf{u})} = \frac{\text{Likelihood} \times \text{Prior}}{\text{Normalisasi}}

  • Contoh interpretasi:

    • Prior: "Mayoritas populasi punya θ\theta dekat 0" → N(0,1)N(0,1)
    • Likelihood dari data: "Respons ini cocok dengan θ=+1\theta=+1" → peak di +1
    • Posterior: "Setelah data ini, estimate kita adalah θ=+0.5\theta=+0.5" → compromise antara prior (0) dan likelihood (+1)
  • Posterior adalah distribusi probabilitas atas θ\theta (bukan single point)

  • Posterior bergantung pada keduanya: prior (populasi) dan likelihood (data eksaminee)

Intuisi numeric: Jika prior sangat kuat (variance kecil), estimasi akan tertarik ke mean prior. Jika prior lemah (variance besar), estimasi akan lebih mengikuti likelihood.


Ringkasan: Bayesian dalam Tiga Konsep

Bayesian concept

Dalam pendekatan Bayesian, terdapat tiga konsep penting yang menjadi fondasi semua metode estimasi:

Konsep Definisi Peran
Prior Keyakinan awal tentang kemampuan peserta sebelum mengerjakan soal Pengetahuan tentang populasi secara umum
Likelihood Probabilitas peserta memberikan respons tertentu jika memiliki kemampuan tertentu Bukti dari data yang terobservasi (respons peserta)
Posterior Keyakinan yang telah diperbarui setelah melihat respons peserta Kombinasi prior + likelihood (Bayesian update)

Contoh Numerik Sederhana

Setup: Misalkan kemampuan peserta (θ\theta) hanya mungkin berada pada tiga nilai diskrit: Rendah, Sedang, atau Tinggi.

Step 1: Prior (sebelum ada data)

Sebelum peserta mengerjakan soal, kita belum tahu kemampuannya. Asumsi awal (prior) hampir merata:

Kemampuan (θ\theta) Prior π(θ)\pi(\theta) Interpretasi
Rendah 0.33 Peluang peserta rendah = 33%
Sedang 0.33 Peluang peserta sedang = 33%
Tinggi 0.34 Peluang peserta tinggi = 34%

Distribusi hampir seragam karena belum ada informasi dari peserta.


Step 2: Likelihood (dari satu respons)

Sekarang peserta menjawab satu soal yang SULIT dengan BENAR.

Kemudian kita tanya: "Jika peserta punya kemampuan X, seberapa besar peluang dia bisa jawab soal sulit ini dengan benar?"

Kemampuan Likelihood L(benar soal sulitθ)L(\text{benar soal sulit} \mid \theta) Interpretasi
Rendah 0.1 Jika rendah, peluang benar soal sulit hanya 10%
Sedang 0.4 Jika sedang, peluang benar soal sulit 40%
Tinggi 0.85 Jika tinggi, peluang benar soal sulit 85%

Observasi: Peserta bisa benar soal sulit di semua kemampuan level, tapi paling cocok dengan kemampuan tinggi.


Step 3: Posterior (setelah melihat respons)

Sekarang kita gabungkan prior + likelihood menggunakan formula Bayes:

p(θbenar soal sulit)L×πp(\theta \mid \text{benar soal sulit}) \propto L \times \pi
Kemampuan Prior Likelihood Prior × Likelihood Posterior (dinormalisasi)
Rendah 0.33 0.1 0.033 0.05
Sedang 0.33 0.4 0.132 0.30
Tinggi 0.34 0.85 0.289 0.65
Sum 0.454 1.00

Interpretasi: Berdasarkan jawaban benar untuk soal sulit tersebut:

  • Peluang Rendah turun drastis: 33% → 5%
  • Peluang Sedang sedikit meningkat: 33% → 30%
  • Peluang Tinggi meningkat signifikan: 34% → 65%

Kesimpulan: Setelah satu respons, kita sekarang 65% yakin bahwa peserta memiliki kemampuan tinggi (vs 34% sebelumnya).


Pola Umum Bayesian Update

text
Posterior ∝ Prior × Likelihood

Artinya: Belief terbaru = (Keyakinan awal) × (Dukungan dari data)

Intuisi:

  • Jika prior kuat tapi likelihood lemah → posterior condong ke prior
  • Jika prior lemah tapi likelihood kuat → posterior condong ke likelihood
  • Jika prior dan likelihood seimbang → posterior adalah compromise

2. Model dan Notasi Dasar (dipakai oleh ketiga metode)

Model respons item M3PL/M2PL [1, Eq.1, p.275]:

Pi(θ)=ci+(1ci)σ(aiθ+di),σ(z)=11+ezP_i(\boldsymbol\theta) = c_i + (1-c_i)\,\sigma(\mathbf{a}_i\cdot\boldsymbol\theta + d_i), \qquad \sigma(z) = \frac{1}{1+e^{-z}}

Likelihood dari seluruh respons yang sudah di-observasi [1, Eq.2–3, p.276]:

θ^argmaxθf(uθ),f(uθ)=i=1nPi(θ)uiQi(θ)1ui\hat{\boldsymbol\theta} \equiv \arg\max_{\boldsymbol\theta} f(\mathbf{u}\mid\boldsymbol\theta), \qquad f(\mathbf{u}\mid\boldsymbol\theta) = \prod_{i=1}^{n} P_i(\boldsymbol\theta)^{u_i}\,Q_i(\boldsymbol\theta)^{1-u_i}

dengan ui{0,1}u_i\in\{0,1\} respons examinee pada item ii yang sudah di-administer, dan Qi(θ)=1Pi(θ)Q_i(\boldsymbol\theta)=1-P_i(\boldsymbol\theta). Mulder & van der Linden menyatakan langsung setelah Eq.3 [1, p.276]: "The MLE can [be] found by setting the derivative of the logarithm of (3) equal to zero and solv[ing] the system for θ\theta using a numerical method such as Newton–Raphson (e.g., Segall, 1996) or an EM algorithm." - namun paper tidak menuliskan bentuk eksplisit turunannya. Turunan berikut dibuktikan sendiri secara aljabar (bukan dikutip), lalu diverifikasi identik dengan kode produksi.


Bagaimana Tiga Metode Berbeda Menggunakan Prior dan Likelihood

Metode Filosofi Rumus Gunakan Prior? Kapan Cocok
MLE Maksimalkan likelihood murni θ^=argmaxL(θ)\hat\theta = \arg\max L(\theta) Tidak Banyak item, prior tidak penting
MAP Maksimalkan posterior (mode) θ^=argmaxg(θ)=L(θ)×π(θ)\hat\theta = \arg\max g(\theta) = L(\theta) \times \pi(\theta) Ya Awal tes (item sedikit), prior bisa menahan divergen
EAP Rata-rata posterior θ^=E[θu]=θg(θ)dθ\hat\theta = E[\theta \mid \mathbf{u}] = \int \theta \cdot g(\theta) d\theta Ya Awal tes, ketika distribusi posterior penting (bukan hanya titik estimasi)

Perbedaan intuitif:

  1. MLE: "Cari θ\theta yang paling menjelaskan data yang ada, tanpa asumsi tentang populasi" → Estimasi "murni dari data"

    • Risiko: Bisa divergen jika data pattern khusus (semua benar/salah) karena tidak ada penahan dari prior
  2. MAP: "Cari θ\theta yang paling menjelaskan data SEKALIGUS konsisten dengan prior populasi" → Estimasi "data + prior pengetahuan"

    • Keuntungan: Prior bertindak sebagai "penalti" yang mencegah divergen
    • Risiko: Bisa over-shrink ke mean prior jika prior terlalu kuat
  3. EAP: "Hitung rata-rata θ\theta dari distribusi posterior (bukan hanya modus)" → Estimasi "rerata yang realistic"

    • Keuntungan: Selalu finite (integral atas domain terbatas), stabil
    • Risiko: Rata-rata bisa berbeda dari mode jika posterior skewed
    • Bonus: SE otomatis dihitung (variance posterior)

Mulder & van der Linden [1, p.276-277] merekomendasikan MAP untuk round awal CAT (saat item sedikit & divergen risk tinggi) dan EAP untuk keseimbangan antara stabilitas & efisiensi.


2.1 Pembuktian: Skor (gradien log-likelihood)

logf(uθ)=i=1n[uilogPi(θ)+(1ui)logQi(θ)]\log f(\mathbf{u}\mid\boldsymbol\theta) = \sum_{i=1}^n \Big[u_i\log P_i(\boldsymbol\theta) + (1-u_i)\log Q_i(\boldsymbol\theta)\Big]

Karena Qi/θ=Pi/θ\partial Q_i/\partial\boldsymbol\theta = -\partial P_i/\partial\boldsymbol\theta:

logfθ=i[uiPi1uiQi]Piθ=iuiQi(1ui)PiPiQiPiθ\frac{\partial \log f}{\partial\boldsymbol\theta} = \sum_i \left[\frac{u_i}{P_i} - \frac{1-u_i}{Q_i}\right]\frac{\partial P_i}{\partial\boldsymbol\theta} = \sum_i \frac{u_iQ_i - (1-u_i)P_i}{P_iQ_i}\,\frac{\partial P_i}{\partial\boldsymbol\theta}

Aljabar pembilang: uiQi(1ui)Pi=ui(1Pi)Pi+uiPi=uiPiu_iQ_i-(1-u_i)P_i = u_i(1-P_i)-P_i+u_iP_i = u_i-P_i. Dan dengan aturan rantai pada Pi(θ)=ci+(1ci)σ(zi)P_i(\boldsymbol\theta)=c_i+(1-c_i)\sigma(z_i), zi=aiθ+diz_i=\mathbf{a}_i\cdot\boldsymbol\theta+d_i:

Piθ=(1ci)σ(zi)(1σ(zi))ai=Piai\frac{\partial P_i}{\partial\boldsymbol\theta} = (1-c_i)\,\sigma(z_i)\big(1-\sigma(z_i)\big)\,\mathbf{a}_i = P'_i\,\mathbf{a}_i

(PiP'_i = notasi yang sama seperti item_selection_summary #0). Maka:

logf(θ)=iai(uiPi)PiPiQi\boxed{\nabla\log f(\boldsymbol\theta) = \sum_i \mathbf{a}_i\,\frac{(u_i-P_i)\,P'_i}{P_iQ_i}}

Ini identik dengan mle.rs:32-33: residual=(x-p)*p_prime/(p*q); grad += a*residual.

2.2 Fisher Information Matrix sebagai pengganti Hessian (Fisher scoring)

Hessian eksak (turunan kedua logf\log f) melibatkan turunan kedua PiP'_i yang rumit. Praktik standar -dipakai baik oleh Baker (2001, lihat #3.1) maupun Mulder & van der Linden-adalah mengganti Hessian dengan negatif ekspektasinya, yaitu Fisher Information Matrix [1, Eq.4, p.276]:

Ii(θ)E ⁣[2θθlogf(Uiθ)]=Qi(θ)[Pi(θ)ci]2Pi(θ)(1ci)2aiai\mathbf{I}_i(\boldsymbol\theta) \equiv -E\!\left[\frac{\partial^2}{\partial\boldsymbol\theta\partial\boldsymbol\theta^\top}\log f(U_i\mid\boldsymbol\theta)\right] = \frac{Q_i(\theta)\big[P_i(\theta)-c_i\big]^2}{P_i(\theta)(1-c_i)^2}\,\mathbf{a}_i\mathbf{a}_i^\top

Substitusi ini disebut Fisher scoring (metode skor). Pembuktian bahwa formula ini identik dengan w=(P')²/(PQ) yang dipakai mle.rs/map.rs/mirt::item_fim: substitusikan P=(Pici)/(1ci)P^*=(P_i-c_i)/(1-c_i) (invers dari Pi=ci+(1ci)PP_i=c_i+(1-c_i)P^*), maka 1P=(1Pi)/(1ci)=Qi/(1ci)1-P^*=(1-P_i)/(1-c_i)=Q_i/(1-c_i), sehingga

Pi=(1ci)P(1P)=(1ci)Pici1ciQi1ci=(Pici)Qi1ciP'_i = (1-c_i)P^*(1-P^*) = (1-c_i)\cdot\frac{P_i-c_i}{1-c_i}\cdot\frac{Q_i}{1-c_i} = \frac{(P_i-c_i)Q_i}{1-c_i} wi=(Pi)2PiQi=(Pici)2Qi2/(1ci)2PiQi=Qi(Pici)2Pi(1ci)2w_i = \frac{(P'_i)^2}{P_iQ_i} = \frac{(P_i-c_i)^2Q_i^2/(1-c_i)^2}{P_iQ_i} = \frac{Q_i(P_i-c_i)^2}{P_i(1-c_i)^2} \quad\blacksquare
  • sama persis dengan Ii(θ)\mathbf{I}_i(\boldsymbol\theta) di atas. Untuk M2PL (ci=0c_i=0): wi=Pi(1Pi)w_i=P_i(1-P_i), dan Ii(θ)=Pi(1Pi)aiai\mathbf{I}_i(\boldsymbol\theta)=P_i(1-P_i)\,\mathbf{a}_i\mathbf{a}_i^\top. FIM total teradditif atas item yang sudah dijawab [1, Eq.6, p.277]: IS(θ)=iSIi(θ)\mathbf{I}_S(\boldsymbol\theta)=\sum_{i\in S}\mathbf{I}_i(\boldsymbol\theta), dan estimator ini terdistribusi asimtotik normal [1, Eq.7, p.277]: θ^N(θ0,IS1(θ0))\hat{\boldsymbol\theta}\sim N\big(\theta_0,\mathbf{I}_S^{-1}(\theta_0)\big) - generalisasi multivariat dari batas bawah Cramér–Rao.

Keterangan variabel (tambahan untuk estimasi):

Simbol Arti
u=(u1,,un)\mathbf{u}=(u_1,\dots,u_n) Vektor respons examinee pada nn item yang sudah di-administer
f(uθ)f(\mathbf{u}\mid\boldsymbol\theta) Fungsi likelihood - peluang bersama seluruh respons pada θ\boldsymbol\theta
logf(θ)\nabla\log f(\boldsymbol\theta) Skor (score function) - gradien log-likelihood, =0=0 pada MLE
Ii(θ)\mathbf{I}_i(\boldsymbol\theta), IS(θ)\mathbf{I}_S(\boldsymbol\theta) FIM item ii / FIM kumulatif himpunan item SS (identik dengan Ii(θ)I_i(\theta) di item_selection notes)
PP^* σ(zi)\sigma(z_i), bagian sigmoid murni tanpa guessing (dipakai pada pembuktian wiw_i)

2.3 Metode Numerik: Iterasi dan Konvergensi

Ketiga metode estimasi (MLE, MAP, EAP) menggunakan algoritma numerik iteratif untuk menemukan estimasi kemampuan θ^\hat{\boldsymbol\theta}. Bagian ini menjelaskan konsep umum yang berlaku di semua metode.

Apa itu Iterasi?

Iterasi adalah proses berulang menebak dan menyempurnakan untuk mencari jawaban yang tepat. Berbeda dengan rumus sederhana yang langsung memberi hasil, algoritma numerik bekerja seperti ini:

Analogi Konkret: Menyetel Radio

text
Tebakan awal (θ₀):  Tombol di posisi random → Suara berisik ❌
     ↓ (Dengarkan dan perbaiki posisi)
Tebakan 1 (θ₁):     Tombol digeser → Suara mulai jernih
     ↓ (Dengarkan dan perbaiki lagi)
Tebakan 2 (θ₂):     Tombol digeser lagi → Suara lebih jernih

Tebakan 3 (θ₃):     Tombol fine-tuning → Suara jernih sempurna

Tebakan 4 (θ₄):     Tombol tidak perlu digeser lagi ✓ SELESAI

Dalam notasi matematika, setiap iterasi mengikuti pola:

θ^s+1=θ^s+Δθs\hat{\boldsymbol\theta}_{s+1} = \hat{\boldsymbol\theta}_s + \Delta\boldsymbol\theta_s

di mana:

  • ss = nomor iterasi (0, 1, 2, 3, ...)
  • θ^s\hat{\boldsymbol\theta}_s = estimasi pada iterasi ke-ss
  • Δθs\Delta\boldsymbol\theta_s = perubahan parameter (step size) pada iterasi ss

Apa itu Konvergensi?

Konvergensi adalah kondisi ketika perubahan parameter menjadi sangat sangat kecil sehingga iterasi bisa dihentikan. Kriteria konvergensi formal yang dipakai di semua metode:

θ^s+1θ^s<106KONVERGEN - Iterasi Berhenti\left\|\hat{\boldsymbol\theta}_{s+1} - \hat{\boldsymbol\theta}_s\right\| < 10^{-6} \quad\Rightarrow\quad \text{KONVERGEN - Iterasi Berhenti}

Artinya: Jika perubahan norm kurang dari 0.000001, maka nilai θ^\hat{\boldsymbol\theta} sudah stabil dan siap digunakan sebagai estimasi final.

Contoh Numerik: Pola Konvergensi

Iterasi θ^\hat{\boldsymbol\theta} Perubahan (Δθ\|\Delta\boldsymbol\theta\|) Status
0 1.0000 - Tebakan awal (arbitrary)
1 0.2267 0.7733 Perubahan BESAR ← masih jauh dari optimal
2 0.3239 0.0973 Perubahan lebih kecil ← semakin dekat
3 0.3248 0.0009 Perubahan sangat kecil
4 0.3248 0.0000001 < 10⁻⁶ ✓ KONVERGEN!

Interpretasi:

  • Awal (Iterasi 1-2): Perubahan besar, algoritma masih "mencari arah"
  • Tengah (Iterasi 3): Perubahan kecil, algoritma sudah dekat ke jawaban
  • Akhir (Iterasi 4): Perubahan sangat kecil (< 10⁻⁶), berhenti dan gunakan θ = 0.3248 sebagai hasil final

Mengapa Perlu Konvergensi?

  1. Sebelum konvergen: Nilai θ^\hat{\boldsymbol\theta} masih berubah-ubah, belum stabil
  2. Setelah konvergen: Nilai θ^\hat{\boldsymbol\theta} sudah stabil, aman digunakan sebagai estimasi kemampuan final

Implementasi Praktis

Dalam kode produksi (mle.rs, map.rs, dll), konvergensi diimplementasikan sebagai:

rust
// Setiap iterasi:
if (theta_next - theta_current).norm() < 1e-6 {
    break;  // ← Keluar loop, konvergen ditemukan
}
// Batasi juga iterasi maksimal (misal 100) untuk menghindari infinite loop

Catatan: Ketiga metode (MLE, MAP, EAP) menggunakan kriteria konvergensi yang sama, meskipun cara menghitung Δθ\Delta\boldsymbol\theta berbeda:

  • MLE: Update berbasis likelihood saja
  • MAP: Update berbasis likelihood + prior penalty
  • EAP: Biasanya tidak iteratif (langsung integrasi numerik)

3. Maximum Likelihood Estimation (MLE)

3.1 Teori

MLE mencari θ^\hat{\boldsymbol\theta} yang memaksimalkan f(uθ)f(\mathbf{u}\mid\boldsymbol\theta) [1, Eq.2, p.276] - lihat #2 untuk definisi lengkap dan pembuktian skor/FIM. Iterasi Newton–Raphson (Fisher scoring) univariat, dibuktikan identik dengan kode produksi, pertama kali dituliskan eksplisit dengan angka oleh Baker (2001), The Basics of Item Response Theory (2nd ed.), Bab 5 "Estimating an Examinee's Ability", Eq.[5-1], p.86 [2]:

θ^s+1=θ^s+i=1Nai[uiPi(θ^s)]i=1Nai2Pi(θ^s)Qi(θ^s)(5-1)\hat\theta_{s+1} = \hat\theta_s + \frac{\displaystyle\sum_{i=1}^N a_i\big[u_i-P_i(\hat\theta_s)\big]}{\displaystyle\sum_{i=1}^N a_i^2\,P_i(\hat\theta_s)\,Q_i(\hat\theta_s)} \tag{5-1}

Untuk M2PL univariat (c=0c=0, k=1k=1), logf=ai(uiPi)\nabla\log f=\sum a_i(u_i-P_i) (#4.1) dan IS=ai2PiQi\mathbf{I}_S=\sum a_i^2P_iQ_i (#4.2) - Eq.[5-1] Baker adalah Fisher scoring θ^s+1=θ^s+IS1logf\hat\theta_{s+1}=\hat\theta_s+\mathbf{I}_S^{-1}\nabla\log f pada kasus 1-dimensi, dituliskan dengan notasi (a,b,c)(a,b,c) alih-alih (a,d,c)(a,d,c) (lihat #3.2.1 untuk konversi d=abd=-ab).

Generalisasi ke k>1k>1 dimensi mengganti pembagian skalar dengan perkalian matriks invers:

θ^s+1=θ^s+IS(θ^s)1logf(θ^s),θ^s+1θ^s<106stop\hat{\boldsymbol\theta}_{s+1} = \hat{\boldsymbol\theta}_s + \mathbf{I}_S(\hat{\boldsymbol\theta}_s)^{-1}\,\nabla\log f(\hat{\boldsymbol\theta}_s), \qquad \left\|\hat{\boldsymbol\theta}_{s+1}-\hat{\boldsymbol\theta}_s\right\| < 10^{-6} \Rightarrow \text{stop}

Mulder & van der Linden mencatat langsung setelah definisi MLE [1, p.276]: "The likelihood function may not have a maximum (e.g., when only correct or incorrect item responses are observed), or a local instead of a global maximum may be found." - dibuktikan ulang secara eksperimental di #5.2.3.

Keterangan variabel:

Simbol Arti
θ^s\hat\theta_s Estimasi kemampuan pada iterasi ke-ss
aia_i (Baker) ai\equiv \mathbf{a}_i (notasi vektor) Parameter diskriminasi item ii
NN Jumlah item yang sudah di-administer
IS(θ)1\mathbf{I}_S(\boldsymbol\theta)^{-1} Invers FIM kumulatif - berperan sebagai "step size" matriks pada Newton step

3.1.1 Teori: Standard Error (SE) untuk MLE

SE bukan formula terpisah - ia jatuh langsung dari sifat asimtotik normal yang sudah dibuktikan di #2.2 [1, Eq.7, p.277]: θ^N(θ0,IS1(θ0))\hat{\boldsymbol\theta}\sim N(\theta_0,\mathbf{I}_S^{-1}(\theta_0)). Jika IS1(θ0)\mathbf{I}_S^{-1}(\theta_0) adalah matriks kovarians (asimtotik) dari estimator, maka variance per-dimensi adalah elemen diagonalnya, dan SE adalah akarnya:

SE(θ^j)=[IS(θ^)1]jj,j=1,,k\boxed{SE(\hat\theta_j) = \sqrt{\left[\mathbf{I}_S(\hat{\boldsymbol\theta})^{-1}\right]_{jj}}}, \qquad j=1,\dots,k

dengan IS(θ^)\mathbf{I}_S(\hat{\boldsymbol\theta}) dievaluasi pada estimasi final (konvergen), bukan pada titik awal. Untuk kasus univariat (k=1k=1), ini tereduksi ke bentuk skalar yang memakai penyebut yang sama persis dengan Newton step Eq.[5-1] Baker [2, p.86] (lihat #3.1):

SE(θ^)=1i=1Nai2Pi(θ^)Qi(θ^)SE(\hat\theta) = \frac{1}{\sqrt{\displaystyle\sum_{i=1}^N a_i^2\,P_i(\hat\theta)\,Q_i(\hat\theta)}}

Identik dengan kode produksi: se_vector() (mirt.rs:62-71) menghitung diag(IS1)\sqrt{\text{diag}(\mathbf{I}_S^{-1})} persis seperti rumus di atas, dipanggil lewat McatEngine::compute_se (engine.rs:159): EstimationMethod::Mle => se_vector(cum_fim, k). cum_fim sendiri adalah IS(θ^)\mathbf{I}_S(\hat{\boldsymbol\theta}) - dijumlahkan dari item_fim() (mirt.rs:26-36, definisi identik #2.2) atas seluruh item yang sudah dijawab, dievaluasi pada θ^\hat{\boldsymbol\theta} hasil konvergensi - bukan dihitung di dalam mle.rs itu sendiri (lihat komentar mle.rs:34-36: "MLE's SE is derived afterward from the cumulative FIM (McatEngine::compute_se), not produced here"), melainkan satu langkah terpisah setelah loop Newton-Raphson berhenti.

Interpretasi: SE mengukur presisi estimasi θ^\hat\theta - semakin banyak item terjawab (atau semakin diskriminatif item-nya, aia_i besar), semakin besar IS\mathbf{I}_S, semakin kecil IS1\mathbf{I}_S^{-1}, dan semakin kecil SE (estimasi makin presisi). Karena MLE tidak punya suku prior penambah informasi, SE-nya selalu \geq SE MAP pada data identik - dibuktikan di #4.1.2: HMAPISHMAP1IS1\mathbf{H}_{MAP}\succeq\mathbf{I}_S \Rightarrow \mathbf{H}_{MAP}^{-1}\preceq\mathbf{I}_S^{-1}.

3.2 Perhitungan Manual

3.2.1 DEMO 1: Reproduksi Baker (2001), k=1

Item Baker (2001, p.87) dalam parameterisasi (a,b,c)(a,b,c), dikonversi ke (a,d,c)(a,d,c) produksi via d=abd=-ab (karena z=aθ+d=a(θb)z=a\theta+d=a(\theta-b)):

Item aa bb (Baker) d=abd=-ab cc uu
1 1.0 1-1 +1.0+1.0 0 1
2 1.2 00 0.00.0 0 0
3 0.8 11 0.8-0.8 0 1

A priori θ^0=1.0\hat\theta_0=1.0 - dikutip langsung, Baker (2001, p.87): "Initially, the θ^s\hat\theta_s on the right side of the equal sign is set to some arbitrary value, such as 1."

Iterasi 1 (M2PL sehingga P=P=σ(aθ+d)P=P^*=\sigma(a\theta+d)):

Step 1: Hitung zi=aθ+dz_i = a\theta + d untuk setiap item dengan θ^0=1.0\hat\theta_0=1.0:

Item aa dd zi=a(1.0)+dz_i = a(1.0) + d
1 1.0 +1.0 1.0(1.0)+1.0=2.01.0(1.0) + 1.0 = 2.0
2 1.2 0.0 1.2(1.0)+0.0=1.21.2(1.0) + 0.0 = 1.2
3 0.8 -0.8 0.8(1.0)0.8=0.00.8(1.0) - 0.8 = 0.0

Step 2: Hitung Pi=σ(zi)=11+eziP_i = \sigma(z_i) = \frac{1}{1+e^{-z_i}} dan Qi=1PiQ_i=1-P_i:

Item ziz_i Pi=σ(zi)P_i = \sigma(z_i) QiQ_i
1 2.0 11+e2.0=11+0.1353=0.8808\frac{1}{1+e^{-2.0}} = \frac{1}{1+0.1353} = 0.8808 10.8808=0.11921-0.8808=0.1192
2 1.2 11+e1.2=11+0.3012=0.7685\frac{1}{1+e^{-1.2}} = \frac{1}{1+0.3012} = 0.7685 10.7685=0.23151-0.7685=0.2315
3 0.0 11+e0=12=0.5000\frac{1}{1+e^{0}} = \frac{1}{2} = 0.5000 10.5000=0.50001-0.5000=0.5000

Step 3: Hitung residual & weight menggunakan Eq.[5-1] Baker untuk setiap item:

Residual: residi=ai(uiPi)\text{resid}_i = a_i(u_i - P_i) dan weight: wti=ai2PiQi\text{wt}_i = a_i^2 P_i Q_i

Item uu ai(uiPi)a_i(u_i-P_i) ai2PiQia_i^2P_iQ_i Perhitungan
1 1 1.0(10.8808)=+0.11921.0(1-0.8808) = +0.1192 (1.0)2(0.8808)(0.1192)=0.1050(1.0)^2(0.8808)(0.1192) = 0.1050 1.0×0.1192=0.11921.0 \times 0.1192 = 0.1192
2 0 1.2(00.7685)=0.92221.2(0-0.7685) = -0.9222 (1.2)2(0.7685)(0.2315)=0.2562(1.2)^2(0.7685)(0.2315) = 0.2562 1.44×0.1779=0.25621.44 \times 0.1779 = 0.2562
3 1 0.8(10.5000)=+0.40000.8(1-0.5000) = +0.4000 (0.8)2(0.5000)(0.5000)=0.1600(0.8)^2(0.5000)(0.5000) = 0.1600 0.64×0.2500=0.16000.64 \times 0.2500 = 0.1600
sum -0.4030 0.5212

Step 4: Hitung update parameter Newton-Raphson:

Δθ^=ai(uiPi)ai2PiQi=0.40300.5212=0.7733\Delta\hat\theta = \frac{\sum a_i(u_i-P_i)}{\sum a_i^2P_iQ_i} = \frac{-0.4030}{0.5212} = -0.7733 θ^1=θ^0+Δθ^=1.0+(0.7733)=0.2267\hat\theta_1 = \hat\theta_0 + \Delta\hat\theta = 1.0 + (-0.7733) = 0.2267

Iterasi 2 dengan θ^1=0.2267\hat\theta_1 = 0.2267:

Step 1: Hitung ziz_i untuk setiap item:

Item aa dd zi=a(0.2267)+dz_i = a(0.2267) + d
1 1.0 +1.0 1.0(0.2267)+1.0=1.22671.0(0.2267) + 1.0 = 1.2267
2 1.2 0.0 1.2(0.2267)+0.0=0.27201.2(0.2267) + 0.0 = 0.2720
3 0.8 -0.8 0.8(0.2267)0.8=0.61860.8(0.2267) - 0.8 = -0.6186

Step 2: Hitung PiP_i dan QiQ_i:

Item ziz_i PiP_i QiQ_i
1 1.2267 11+e1.2267=0.7732\frac{1}{1+e^{-1.2267}} = 0.7732 0.2268
2 0.2720 11+e0.2720=0.5676\frac{1}{1+e^{-0.2720}} = 0.5676 0.4324
3 -0.6186 11+e0.6186=0.3501\frac{1}{1+e^{0.6186}} = 0.3501 0.6499

Step 3: Hitung residual & weight:

Item uu ai(uiPi)a_i(u_i-P_i) ai2PiQia_i^2P_iQ_i
1 1 1.0(10.7732)=+0.22681.0(1-0.7732) = +0.2268 (1.0)2(0.7732)(0.2268)=0.1753(1.0)^2(0.7732)(0.2268) = 0.1753
2 0 1.2(00.5676)=0.68111.2(0-0.5676) = -0.6811 (1.2)2(0.5676)(0.4324)=0.3534(1.2)^2(0.5676)(0.4324) = 0.3534
3 1 0.8(10.3501)=+0.51990.8(1-0.3501) = +0.5199 (0.8)2(0.3501)(0.6499)=0.1456(0.8)^2(0.3501)(0.6499) = 0.1456
sum +0.0656 0.6744

Step 4: Hitung update:

Δθ^=0.06560.6744=+0.0973\Delta\hat\theta = \frac{0.0656}{0.6744} = +0.0973 θ^2=0.2267+0.0973=0.3239\hat\theta_2 = 0.2267 + 0.0973 = 0.3239

Cross-check langsung terhadap buku (Baker 2001, p.88, angka asli):

Δθ^s=.403/.520=.773,    θ^s+1=1.0.773=0.227Δθ^s=.066/.674=.097,    θ^s+1=0.227+.097=0.324\Delta\hat\theta_s = -.403/.520 = -.773,\;\; \hat\theta_{s+1}=1.0-.773=0.227 \qquad \Delta\hat\theta_s = .066/.674 = .097,\;\; \hat\theta_{s+1}=0.227+.097=0.324

cocok dengan buku sampai 3 desimal (0.2270.227, 0.3240.324; selisih dari pembulatan tampilan 3-desimal Baker vs 4-desimal disini).

Iterasi 3 dengan θ^2=0.323937\hat\theta_2=0.323937:

Δθ^=0.00060.6616=+0.0009,θ^3=θ^2+Δθ^=0.324846\Delta\hat\theta = \frac{0.0006}{0.6616} = +0.0009, \qquad \hat\theta_3 = \hat\theta_2+\Delta\hat\theta = 0.324846

Verifikasi konvergensi (kriteria #2.3: θ^s+1θ^s<106|\hat\theta_{s+1}-\hat\theta_s|<10^{-6}): θ^3θ^2=Δθ^=9.10×104106BELUM KONVERGEN, lanjut iterasi.|\hat\theta_3-\hat\theta_2| = |\Delta\hat\theta| = 9.10\times10^{-4} \gg 10^{-6} \Rightarrow \textbf{BELUM KONVERGEN}, \text{ lanjut iterasi.}

Iterasi 4 dengan θ^3=0.324846\hat\theta_3=0.324846:

Δθ^=0.00000.6614+9.05×108,θ^4=θ^3+Δθ^=0.324846\Delta\hat\theta = \frac{0.0000}{0.6614} \approx +9.05\times10^{-8}, \qquad \hat\theta_4 = \hat\theta_3+\Delta\hat\theta = 0.324846

Verifikasi konvergensi: θ^4θ^3=Δθ^=9.05×108<106KONVERGEN - iterasi berhenti.|\hat\theta_4-\hat\theta_3| = |\Delta\hat\theta| = 9.05\times10^{-8} < 10^{-6} \Rightarrow \textbf{KONVERGEN} \text{ - iterasi berhenti.}

θ^MLE0.324846\hat\theta_{MLE}\approx 0.324846 (presisi penuh: 0.3248462760...0.3248462760...).

Step 5: Hitung Standard Error (SE) (teori #3.1.1)

Evaluasi FIM pada estimasi final θ^MLE=0.3248462760\hat\theta_{MLE}=0.3248462760 (bukan pada θ^0\hat\theta_0):

Item zi=aθ^+dz_i=a\hat\theta+d PiP_i QiQ_i ai2PiQia_i^2P_iQ_i
1 1.0(0.324846)+1.0=1.3248461.0(0.324846)+1.0=1.324846 0.789987 0.210013 (1.0)2(0.789987)(0.210013)=0.165908(1.0)^2(0.789987)(0.210013)=0.165908
2 1.2(0.324846)+0.0=0.3898161.2(0.324846)+0.0=0.389816 0.596238 0.403762 (1.2)2(0.596238)(0.403762)=0.346663(1.2)^2(0.596238)(0.403762)=0.346663
3 0.8(0.324846)0.8=0.5401230.8(0.324846)-0.8=-0.540123 0.368159 0.631841 (0.8)2(0.368159)(0.631841)=0.148875(0.8)^2(0.368159)(0.631841)=0.148875
sum IS(θ^)=0.661446\mathbf{I}_S(\hat\theta)=0.661446
SE(θ^MLE)=1IS(θ^)=10.6614461.229569SE(\hat\theta_{MLE}) = \frac{1}{\sqrt{\mathbf{I}_S(\hat\theta)}} = \frac{1}{\sqrt{0.661446}} \approx 1.229569

(Bukan kebetulan bahwa IS(θ^)=0.661446\mathbf{I}_S(\hat\theta)=0.661446 nyaris identik dengan Hessian di denominator Iterasi 4 (0.66140.6614, lihat langkah update terakhir) - Newton-Raphson berhenti persis saat θ^\hat\theta konvergen, sehingga Hessian pada iterasi konvergensi terakhir memang dievaluasi pada titik yang sama dengan θ^MLE\hat\theta_{MLE} final.)

3.2.2 DEMO 2: Multidimensional (k=3), 7 item

Menggunakan seluruh 7-item bank yang sama seperti Item Bank Snapshot, dengan pola respons campuran (bukan seragam per content-area - lihat catatan Divergen di #3.2.3):

Item a\mathbf{a} dd uu
m2p-v001 [1.9,0.2,0.3] 0.40 1
m2p-v002 [1.7,0.2,0.2] 0.10 0
m2p-n001 [0.3,1.9,0.4] 0.80 0
m2p-n002 [0.3,1.8,0.4] 0.50 1
m2p-r001 [0.5,0.4,2.0] 0.30 1
m2p-r002 [0.3,0.8,1.9] 0.60 0
m2p-r003 [0.4,0.3,1.8] 0.70 1

Starting θ^0=[0,0,0]\hat{\boldsymbol\theta}_0=[0,0,0].

Iterasi 1 - logf\nabla\log f dan IS\mathbf{I}_S dihitung persis seperti #2.1/#2.2, dijumlahkan atas ke-7 item:

Step 1: Hitung (linear predictor ziz_i) zi=aiθ0+diz_i = \mathbf{a}_i \cdot \boldsymbol\theta_0 + d_i untuk setiap item dengan θ0=[0,0,0]\boldsymbol\theta_0=[0,0,0]:

Item ai\mathbf{a}_i did_i zi=[0,0,0]ai+diz_i = [0,0,0] \cdot \mathbf{a}_i + d_i
m2p-v001 [1.9,0.2,0.3] 0.40 0+0+0+0.40=0.400 + 0 + 0 + 0.40 = 0.40
m2p-v002 [1.7,0.2,0.2] 0.10 0.100.10
m2p-n001 [0.3,1.9,0.4] 0.80 0.800.80
m2p-n002 [0.3,1.8,0.4] 0.50 0.500.50
m2p-r001 [0.5,0.4,2.0] 0.30 0.300.30
m2p-r002 [0.3,0.8,1.9] 0.60 0.600.60
m2p-r003 [0.4,0.3,1.8] 0.70 0.700.70

Step 2: Hitung (peluang peserta menjawab benar PP) Pi=σ(zi)P_i = \sigma(z_i), (peluang peserta menjawab salah QQ) Qi=1PiQ_i = 1-P_i, dan (seberapa sensitif peluang benar berubah) Pi=PiQiP'_i = P_iQ_i (untuk M2PL, c=0c=0):

Item ziz_i PiP_i QiQ_i Pi=PiQiP'_i = P_iQ_i
m2p-v001 0.40 0.5987 0.4013 0.2403
m2p-v002 0.10 0.5250 0.4750 0.2494
m2p-n001 0.80 0.6900 0.3100 0.2139
m2p-n002 0.50 0.6225 0.3775 0.2350
m2p-r001 0.30 0.5744 0.4256 0.2446
m2p-r002 0.60 0.6456 0.3544 0.2290
m2p-r003 0.70 0.6682 0.3318 0.2217

Step 3: Hitung residual per item menggunakan residuali=(uiPi)Pi/(PiQi)=(uiPi)\text{residual}_i = (u_i - P_i) \cdot P'_i / (P_iQ_i) = (u_i - P_i) (untuk M2PL):

Residual ini adalah untuk mengukur seberapa jauh prediksi model meleset dari respons aktual peserta pada item itu, dan menjadi bahan baku untuk membangun gradien (skor) yang menggerakkan update θ^\hat\theta.

Item uu (uiPi)(u_i - P_i) Kontribusi ke gradien = ai×(uiPi)\mathbf{a}_i \times (u_i - P_i)
m2p-v001 1 10.5987=0.40131 - 0.5987 = 0.4013 [1.9,0.2,0.3]×0.4013=[0.7625,0.0803,0.1204][1.9,0.2,0.3] \times 0.4013 = [0.7625, 0.0803, 0.1204]
m2p-v002 0 00.5250=0.52500 - 0.5250 = -0.5250 [1.7,0.2,0.2]×(0.5250)=[0.8925,0.1050,0.1050][1.7,0.2,0.2] \times (-0.5250) = [-0.8925, -0.1050, -0.1050]
m2p-n001 0 00.6900=0.69000 - 0.6900 = -0.6900 [0.3,1.9,0.4]×(0.6900)=[0.2070,1.3110,0.2760][0.3,1.9,0.4] \times (-0.6900) = [-0.2070, -1.3110, -0.2760]
m2p-n002 1 10.6225=0.37751 - 0.6225 = 0.3775 [0.3,1.8,0.4]×0.3775=[0.1133,0.6795,0.1510][0.3,1.8,0.4] \times 0.3775 = [0.1133, 0.6795, 0.1510]
m2p-r001 1 10.5744=0.42561 - 0.5744 = 0.4256 [0.5,0.4,2.0]×0.4256=[0.2128,0.1702,0.8512][0.5,0.4,2.0] \times 0.4256 = [0.2128, 0.1702, 0.8512]
m2p-r002 0 00.6456=0.64560 - 0.6456 = -0.6456 [0.3,0.8,1.9]×(0.6456)=[0.1937,0.5165,1.2266][0.3,0.8,1.9] \times (-0.6456) = [-0.1937, -0.5165, -1.2266]
m2p-r003 1 10.6682=0.33181 - 0.6682 = 0.3318 [0.4,0.3,1.8]×0.3318=[0.1327,0.0995,0.5972][0.4,0.3,1.8] \times 0.3318 = [0.1327, 0.0995, 0.5972]

Step 4: Agregasi gradien (jumlah semua kontribusi):

logf=[0.76250.89250.2070+0.1133+0.21280.1937+0.1327,]=[0.0719,0.9029,0.1121]\nabla\log f = [0.7625 - 0.8925 - 0.2070 + 0.1133 + 0.2128 - 0.1937 + 0.1327, \ldots] = [-0.0719, -0.9029, 0.1121]

Step 5: Hitung FIM per item menggunakan Ii=Piaiai\mathbf{I}_i = P'_i \cdot \mathbf{a}_i \mathbf{a}_i^\top (untuk M2PL):

Sebagai contoh, untuk item 1:

I1=0.2403×[1.90.20.3][1.90.20.3]=0.2403×[3.610.380.570.380.040.060.570.060.09]=[0.86790.09130.13700.09130.00960.01440.13700.01440.0216]\mathbf{I}_1 = 0.2403 \times \begin{bmatrix} 1.9 \\ 0.2 \\ 0.3 \end{bmatrix} \begin{bmatrix} 1.9 & 0.2 & 0.3 \end{bmatrix} = 0.2403 \times \begin{bmatrix} 3.61 & 0.38 & 0.57 \\ 0.38 & 0.04 & 0.06 \\ 0.57 & 0.06 & 0.09 \end{bmatrix} = \begin{bmatrix} 0.8679 & 0.0913 & 0.1370 \\ 0.0913 & 0.0096 & 0.0144 \\ 0.1370 & 0.0144 & 0.0216 \end{bmatrix}

(Dilakukan untuk semua 7 item, kemudian dijumlahkan)

Step 6: Agregasi FIM:

IS=i=17Ii=[1.74560.55530.81010.55531.75871.01920.81011.01922.6255]\mathbf{I}_S = \sum_{i=1}^{7} \mathbf{I}_i = \begin{bmatrix} 1.7456 & 0.5553 & 0.8101 \\ 0.5553 & 1.7587 & 1.0192 \\ 0.8101 & 1.0192 & 2.6255 \end{bmatrix}

Step 7: Hitung invers FIM dan update parameter:

IS1=[0.68820.12160.16510.12160.75510.25560.16510.25560.5311]\mathbf{I}_S^{-1} = \begin{bmatrix} 0.6882 & -0.1216 & -0.1651 \\ -0.1216 & 0.7551 & -0.2556 \\ -0.1651 & -0.2556 & 0.5311 \end{bmatrix} Δθ^=IS1logf=[0.68820.12160.16510.12160.75510.25560.16510.25560.5311][0.07190.90290.1121]\Delta\hat{\boldsymbol\theta} = \mathbf{I}_S^{-1} \nabla\log f = \begin{bmatrix} 0.6882 & -0.1216 & -0.1651 \\ -0.1216 & 0.7551 & -0.2556 \\ -0.1651 & -0.2556 & 0.5311 \end{bmatrix} \begin{bmatrix} -0.0719 \\ -0.9029 \\ 0.1121 \end{bmatrix} =[0.0494+0.10990.01850.00870.68240.02860.0119+0.2315+0.0595]=[0.04180.70170.3022]= \begin{bmatrix} -0.0494 + 0.1099 - 0.0185 \\ 0.0087 - 0.6824 - 0.0286 \\ 0.0119 + 0.2315 + 0.0595 \end{bmatrix} = \begin{bmatrix} 0.0418 \\ -0.7017 \\ 0.3022 \end{bmatrix} θ^1=θ^0+Δθ^=[0,0,0]+[0.0418,0.7017,0.3022]=[0.0418,0.7017,0.3022]\hat{\boldsymbol\theta}_1 = \hat{\boldsymbol\theta}_0 + \Delta\hat{\boldsymbol\theta} = [0,0,0] + [0.0418,\,-0.7017,\,0.3022] = [0.0418,\,-0.7017,\,0.3022]

Iterasi 2 dengan θ^1=[0.0418,0.7017,0.3022]\hat{\boldsymbol\theta}_1=[0.0418,\,-0.7017,\,0.3022]:

Step 1: Hitung zi=aiθ^1+diz_i = \mathbf{a}_i \cdot \hat{\boldsymbol\theta}_1 + d_i untuk setiap item:

Item aiθ^1\mathbf{a}_i \cdot \hat{\boldsymbol\theta}_1 did_i ziz_i
m2p-v001 [1.9,0.2,0.3][0.0418,0.7017,0.3022]=0.07940.1403+0.0907[1.9,0.2,0.3] \cdot [0.0418,-0.7017,0.3022] = 0.0794 - 0.1403 + 0.0907 +0.40 0.4298
m2p-v002 [1.7,0.2,0.2][0.0418,0.7017,0.3022]=0.07110.1403+0.0604[1.7,0.2,0.2] \cdot [0.0418,-0.7017,0.3022] = 0.0711 - 0.1403 + 0.0604 +0.10 -0.0088
m2p-n001 [0.3,1.9,0.4][0.0418,0.7017,0.3022]=0.01251.3332+0.1209[0.3,1.9,0.4] \cdot [0.0418,-0.7017,0.3022] = 0.0125 - 1.3332 + 0.1209 +0.80 0.0002
m2p-n002 [0.3,1.8,0.4][0.0418,0.7017,0.3022]=0.01251.2631+0.1209[0.3,1.8,0.4] \cdot [0.0418,-0.7017,0.3022] = 0.0125 - 1.2631 + 0.1209 +0.50 -0.6297
m2p-r001 [0.5,0.4,2.0][0.0418,0.7017,0.3022]=0.02090.2807+0.6044[0.5,0.4,2.0] \cdot [0.0418,-0.7017,0.3022] = 0.0209 - 0.2807 + 0.6044 +0.30 0.7446
m2p-r002 [0.3,0.8,1.9][0.0418,0.7017,0.3022]=0.01250.5614+0.5742[0.3,0.8,1.9] \cdot [0.0418,-0.7017,0.3022] = 0.0125 - 0.5614 + 0.5742 +0.60 0.6253
m2p-r003 [0.4,0.3,1.8][0.0418,0.7017,0.3022]=0.01670.2105+0.5440[0.4,0.3,1.8] \cdot [0.0418,-0.7017,0.3022] = 0.0167 - 0.2105 + 0.5440 +0.70 1.0502

Step 2: Hitung PiP_i dan QiQ_i berdasarkan ziz_i baru:

Item ziz_i PiP_i QiQ_i PiP'_i
m2p-v001 0.4298 0.6057 0.3943 0.2388
m2p-v002 -0.0088 0.4978 0.5022 0.2500
m2p-n001 0.0002 0.5000 0.5000 0.2500
m2p-n002 -0.6297 0.3476 0.6524 0.2268
m2p-r001 0.7446 0.6781 0.3219 0.2184
m2p-r002 0.6253 0.6517 0.3483 0.2272
m2p-r003 1.0502 0.7408 0.2592 0.1922

Step 3: Hitung kontribusi ke gradien per item kontribusii=ai×(uiPi)\text{kontribusi}_i = \mathbf{a}_i \times (u_i - P_i):

Item uu (uiPi)(u_i - P_i) Kontribusi
m2p-v001 1 0.3943 [0.7492, 0.0789, 0.1183]
m2p-v002 0 -0.4978 [-0.8463, -0.0996, -0.0996]
m2p-n001 0 -0.5000 [-0.1500, -0.9500, -0.2000]
m2p-n002 1 0.6524 [0.1957, 1.1743, 0.2610]
m2p-r001 1 0.3219 [0.1610, 0.1288, 0.6438]
m2p-r002 0 -0.6517 [-0.1955, -0.5214, -1.2382]
m2p-r003 1 0.2592 [0.1037, 0.0778, 0.4666]

Agregasi: logf[0.0159,0.0803,0.0314]\nabla\log f \approx [0.0159,\,0.0803,\,0.0314] (nilai semakin mendekati nol)

Step 4: Hitung FIM baru dan update:

IS(iter 2)=[1.73270.55770.77040.55771.82040.99960.77040.99962.4510]\mathbf{I}_S^{\text{(iter 2)}} = \begin{bmatrix} 1.7327 & 0.5577 & 0.7704 \\ 0.5577 & 1.8204 & 0.9996 \\ 0.7704 & 0.9996 & 2.4510 \end{bmatrix} Δθ^=IS1logf=[0.0039,0.0485,0.0057]\Delta\hat{\boldsymbol\theta} = \mathbf{I}_S^{-1} \nabla\log f = [-0.0039,\,0.0485,\,-0.0057] θ^2=[0.0418,0.7017,0.3022]+[0.0039,0.0485,0.0057]=[0.0379,0.6532,0.2964]\hat{\boldsymbol\theta}_2 = [0.0418,\,-0.7017,\,0.3022] + [-0.0039,\,0.0485,\,-0.0057] = [0.0379,\,-0.6532,\,0.2964]

Iterasi 3 dengan θ^2=[0.0379,0.6532,0.2964]\hat{\boldsymbol\theta}_2=[0.0379,\,-0.6532,\,0.2964]:

Setelah perhitungan serupa, hitung step size untuk next iteration:

Δθ^=[2.67×105,4.81×104,1.43×104]\Delta\hat{\boldsymbol\theta} = [2.67 \times 10^{-5}, -4.81 \times 10^{-4}, 1.43 \times 10^{-4}] θ^3=θ^2+Δθ^=[0.037969,0.653704,0.296573]\hat{\boldsymbol\theta}_3 = \hat{\boldsymbol\theta}_2 + \Delta\hat{\boldsymbol\theta} = [0.037969,\,-0.653704,\,0.296573]

Verifikasi konvergensi iterasi 3, sesuai kriteria #2.3/#3.1 θ^s+1θ^s<106\|\hat{\boldsymbol\theta}_{s+1}-\hat{\boldsymbol\theta}_s\|<10^{-6} - dan karena Δθ^=θ^s+1θ^s\Delta\hat{\boldsymbol\theta}=\hat{\boldsymbol\theta}_{s+1}-\hat{\boldsymbol\theta}_s persis oleh konstruksi Newton step, kedua notasi ini nilainya identik:

θ^3θ^2=[0.037969,0.653704,0.296573][0.0379,0.6532,0.2964]\hat{\boldsymbol\theta}_3-\hat{\boldsymbol\theta}_2 = [0.037969,\,-0.653704,\,0.296573] - [0.0379,\,-0.6532,\,0.2964] =Δθ^=[2.67×105,4.81×104,1.43×104]= \Delta\hat{\boldsymbol\theta} = [2.67 \times 10^{-5},\,-4.81 \times 10^{-4},\,1.43 \times 10^{-4}]
θ^3θ^2=Δθ^2=(2.67×105)2+(4.81×104)2+(1.43×104)25.02×104\left\|\hat{\boldsymbol\theta}_3-\hat{\boldsymbol\theta}_2\right\| = \|\Delta\hat{\boldsymbol\theta}\|_2 = \sqrt{(2.67 \times 10^{-5})^2 + (-4.81 \times 10^{-4})^2 + (1.43 \times 10^{-4})^2} \approx 5.02 \times 10^{-4}

Hasil: 5.02×1041065.02 \times 10^{-4} \gg 10^{-6}BELUM KONVERGEN, lanjut ke iterasi 4.

Iterasi 4 dengan θ^3=[0.037969,0.653704,0.296573]\hat{\boldsymbol\theta}_3=[0.037969,\,-0.653704,\,0.296573]:

Di sekitar akar persamaan skor, Newton-Raphson konvergen kuadratik - gradien dan FIM sudah sangat dekat dengan titik optimum, sehingga step berikutnya mengecil drastis dibanding iterasi 3:

Δθ^=[2.46×109,3.96×108,1.12×108]\Delta\hat{\boldsymbol\theta} = [2.46 \times 10^{-9}, -3.96 \times 10^{-8}, 1.12 \times 10^{-8}] θ^4=θ^3+Δθ^=[0.03796883984503478,0.6537043452916178,0.29657317310496684]\hat{\boldsymbol\theta}_4 = \hat{\boldsymbol\theta}_3 + \Delta\hat{\boldsymbol\theta} = [0.03796883984503478,\,-0.6537043452916178,\,0.29657317310496684]

Verifikasi konvergensi iterasi 4:

θ^4θ^3=Δθ^24.13×108\left\|\hat{\boldsymbol\theta}_4-\hat{\boldsymbol\theta}_3\right\| = \|\Delta\hat{\boldsymbol\theta}\|_2 \approx 4.13 \times 10^{-8}

Hasil: 4.13×108<1064.13 \times 10^{-8} < 10^{-6}KONVERGEN. Iterasi berhenti pada iterasi ke-4:

θ^MLE=θ^4=[0.03796883984503478,0.6537043452916178,0.29657317310496684]\hat{\boldsymbol\theta}_{MLE} = \hat{\boldsymbol\theta}_4 = [0.03796883984503478,\,-0.6537043452916178,\,0.29657317310496684]

Step 8: Hitung Standard Error (SE) (teori #3.1.1)

FIM dievaluasi pada estimasi final θ^MLE=[0.037969,0.653704,0.296573]\hat{\boldsymbol\theta}_{MLE}=[0.037969,-0.653704,0.296573] - pola perhitungan sama seperti Step 1-6 Iterasi 1 di atas, hanya di titik konvergen:

Item ziz_i PiP_i QiQ_i Pi=PiQiP'_i=P_iQ_i
m2p-v001 0.4304 0.6060 0.3940 0.2388
m2p-v002 0.0931 0.5233 0.4767 0.2495
m2p-n001 -0.3120 0.4226 0.5774 0.2440
m2p-n002 -0.5466 0.3666 0.6334 0.2322
m2p-r001 0.6506 0.6572 0.3428 0.2253
m2p-r002 0.6519 0.6574 0.3426 0.2252
m2p-r003 1.0529 0.7413 0.2587 0.1918

Menjumlahkan Ii=Piaiai\mathbf{I}_i=P'_i\,\mathbf{a}_i\mathbf{a}_i^\top atas ke-7 item (pola identik Step 5-6 Iterasi 1):

IS(θ^MLE)[1.73300.56220.76980.56221.85021.00310.76981.00312.4432]\mathbf{I}_S(\hat{\boldsymbol\theta}_{MLE}) \approx \begin{bmatrix} 1.7330 & 0.5622 & 0.7698 \\ 0.5622 & 1.8502 & 1.0031 \\ 0.7698 & 1.0031 & 2.4432 \end{bmatrix} IS1[0.69040.11810.16900.11810.71540.25650.16900.25650.5679]\mathbf{I}_S^{-1} \approx \begin{bmatrix} 0.6904 & -0.1181 & -0.1690 \\ -0.1181 & 0.7154 & -0.2565 \\ -0.1690 & -0.2565 & 0.5679 \end{bmatrix} SE(θ^MLE)=diag(IS1)[0.8309,  0.8458,  0.7536]SE(\hat{\boldsymbol\theta}_{MLE}) = \sqrt{\text{diag}(\mathbf{I}_S^{-1})} \approx [0.8309,\; 0.8458,\; 0.7536]

Interpretasi: dimensi reasoning (SE0.754SE\approx0.754) paling presisi diestimasi - konsisten dengan item bank yang punya 3 item dominan-reasoning (a3{2.0,1.9,1.8}a_3\in\{2.0,1.9,1.8\}) vs hanya sebaran lebih kecil untuk verbal/numeric, sehingga informasi (FIM) terkumpul lebih banyak di dimensi reasoning.

3.2.3 DEMO 3: Kasus Divergen (all-correct)

Menggunakan 3-item subset (m2p-v001\texttt{m2p-v001}, m2p-n001\texttt{m2p-n001}, m2p-r001\texttt{m2p-r001}) dengan u=[1,1,1]\mathbf{u}=[1,1,1] (seluruhnya benar).

Item a\mathbf{a} dd uu
m2p-v001 [1.9,0.2,0.3] 0.40 1
m2p-n001 [0.3,1.9,0.4] 0.80 1
m2p-r001 [0.5,0.4,2.0] 0.30 1

Starting θ^0=[0,0,0]\hat{\boldsymbol\theta}_0=[0,0,0].

Iterasi 1 dengan θ0=[0,0,0]\boldsymbol\theta_0=[0,0,0]:

zz values sama dengan DEMO 2 Iterasi 1 (karena dimulai dari [0,0,0]): z1=0.40,z2=0.80,z3=0.30z_1=0.40, z_2=0.80, z_3=0.30P1=0.5987,P2=0.6900,P3=0.5744P_1=0.5987, P_2=0.6900, P_3=0.5744

Residual: (1P1)=0.4013,(1P2)=0.3100,(1P3)=0.4256(1-P_1)=0.4013, (1-P_2)=0.3100, (1-P_3)=0.4256 (semua positif karena semua benar)

Gradien dan FIM dihitung seperti DEMO 2, tapi hanya 3 item dan semua respons benar: Δθ^(1)[0.3245,0.8942,0.6531]\Delta\hat{\boldsymbol\theta}^{(1)} \approx [0.3245,\, 0.8942,\, 0.6531]

θ^1=[0.3245,0.8942,0.6531]\hat{\boldsymbol\theta}_1 = [0.3245,\, 0.8942,\, 0.6531]

Iterasi 2 dengan θ^1=[0.3245,0.8942,0.6531]\hat{\boldsymbol\theta}_1=[0.3245,\, 0.8942,\, 0.6531]:

Hitung ziz_i baru dengan norm yang lebih besar: z1=[1.9,0.2,0.3][0.3245,0.8942,0.6531]+0.40=0.6166+0.1789+0.1959+0.40=1.3914z_1 = [1.9,0.2,0.3] \cdot [0.3245,0.8942,0.6531] + 0.40 = 0.6166 + 0.1789 + 0.1959 + 0.40 = 1.3914 z2=[0.3,1.9,0.4][0.3245,0.8942,0.6531]+0.80=0.0974+1.6990+0.2612+0.80=2.8576z_2 = [0.3,1.9,0.4] \cdot [0.3245,0.8942,0.6531] + 0.80 = 0.0974 + 1.6990 + 0.2612 + 0.80 = 2.8576 z3=[0.5,0.4,2.0][0.3245,0.8942,0.6531]+0.30=0.1623+0.3577+1.3062+0.30=2.1262z_3 = [0.5,0.4,2.0] \cdot [0.3245,0.8942,0.6531] + 0.30 = 0.1623 + 0.3577 + 1.3062 + 0.30 = 2.1262

Kemudian: P1=σ(1.3914)0.8015,P20.9459,P30.8966P_1=\sigma(1.3914)\approx 0.8015, P_2\approx 0.9459, P_3\approx 0.8966

Residual masih positif (semua benar): (1Pi)>0(1-P_i)>0 untuk semua item

Karena semua residual positif dan tidak ada respons salah untuk "menyeimbangkan", gradien terus mendorong θ^\hat{\boldsymbol\theta} ke arah yang memperbesar semua PiP_i menuju 1.

θ^2[1.847,2.156,1.843]\hat{\boldsymbol\theta}_2 \approx [1.847,\, 2.156,\, 1.843]

Iterasi 3-4 (pola berlanjut):

Norm terus meningkat: θ^35.2\|\hat{\boldsymbol\theta}_3\| \approx 5.2, θ^48.9\|\hat{\boldsymbol\theta}_4\| \approx 8.9, dst.

Sebab matematis: dengan k=3k=3 item dan k=3k=3 dimensi, matriks parameter A=[1.9,0.2,0.3;0.3,1.9,0.4;0.5,0.4,2.0]\mathbf{A}=[1.9,0.2,0.3; 0.3,1.9,0.4; 0.5,0.4,2.0] memiliki rank penuh. Ada arah v\mathbf{v} unik (eigenvector dominan dari AA\mathbf{A}^\top\mathbf{A}) sehingga Av>0\mathbf{A}\mathbf{v}>0 (semua komponen positif). Sepanjang θ=tv\boldsymbol\theta = t\mathbf{v} dengan tt\to\infty, semua Pi1P_i\to1 serentak, sehingga likelihood terus naik tanpa mencapai maksimum interior - hanya asimtot pada Pi=1P_i=1 untuk semua item.

Fungsi skor logf\nabla\log f tidak pernah betul-betul mencapai nol, tapi mendekati nol dari arah positif: limtlogf(tv)=0+(dari komponen positif)\lim_{t\to\infty} \nabla\log f(t\mathbf{v}) = \mathbf{0}^+ \quad\text{(dari komponen positif)}

Iterasi berhenti setelah 100 loop dengan:

θ^MLE=[16.065,  14.291,  11.594],θ^=24.43\hat{\boldsymbol\theta}_{MLE} = [16.065,\; 14.291,\; 11.594], \qquad \|\hat{\boldsymbol\theta}\| = 24.43

(Nilai besar tak-bermakna, bukan estimasi kemampuan yang interpretabel.)

Mengapa DEMO 2 tidak divergen meskipun 7 item:

DEMO 2 menggunakan 7 item dengan pola respons campuran - tidak semua benar, ada yang salah: u=[1,0,0,1,1,0,1]\mathbf{u}=[1,0,0,1,1,0,1]. Adanya respons salah menciptakan "penghenti" pada gradien - tidak semua ai\mathbf{a}_i mendorong θ\boldsymbol\theta ke satu arah, ada yang "menarik balik" ketika PiP_i terlalu tinggi. Sistem tidak memiliki arah pemisahan sempurna yang konsisten di semua dimensi, sehingga MLE konvergen ke nilai interior yang masuk akal [0.038,0.654,0.297][0.038,\,-0.654,\,0.297].

Ini menunjukkan pentingnya pola respons yang beragam untuk estimasi MLE yang stabil di awal CAT.

3.3 Kelebihan dan Kekurangan

Kelebihan:

  • Landasan teori paling matang & tertua - dasar dari seluruh literatur IRT sejak Lord (1980), dan Newton-Raphson/Fisher scoring-nya sudah didokumentasikan lengkap dengan contoh numerik ber-halaman oleh Baker (2001) [2, Eq.5-1, p.86-88].
  • Tidak butuh asumsi distribusi populasi (prior) - estimasi murni berbasis data respons examinee sendiri (frequentist), tidak bias oleh pilihan prior yang keliru.
  • Asimtotik efisien & normal [1, Eq.7, p.277] - untuk tes yang cukup panjang, varians estimasi mendekati batas bawah Cramér–Rao.

Kekurangan:

  • Divergen bila pola respons dapat dipisahkan sempurna oleh arah linear tertentu dari ai\mathbf{a}_i - dibuktikan langsung di #3.2.3, bukan hanya kasus trivial all-correct/all-incorrect. Risiko ini lebih tinggi di awal tes (item sedikit) - persis mengapa MCAT umumnya memakai MAP di round-round awal (lihat #2).
  • Tidak ada mekanisme built-in untuk mencegah estimasi ekstrem, sehingga kasus divergen menghasilkan nilai besar tak-berguna (mis. θ^=24.43\|\hat\theta\|=24.43 di #3.2.3).
  • Butuh minimal beberapa item dengan variasi respons (benar & salah) untuk estimasi yang stabil - tidak cocok dipakai sebagai estimator tunggal di 1-2 round pertama CAT.

4. Maximum A Posteriori (MAP atau Bayes Modal)

4.1 Teori

MAP (disebut juga Bayes Modal/BM) memaksimalkan posterior, bukan likelihood murni - Magis & Raîche (2012), "Random Generation of Response Patterns under Computerized Adaptive Testing with the R Package catR", Journal of Statistical Software 48(8), #2.2 "Ability estimation", p.4-5 [3]:

g(θ)=f(θ)L(θ)logg(θ)=logf(θ)+logL(θ)(5, p.5)g(\theta) = f(\theta)\,L(\theta) \qquad\Rightarrow\qquad \log g(\theta) = \log f(\theta) + \log L(\theta) \tag{5, p.5} θ^BM=argmaxθg(θ)\hat\theta_{BM} = \arg\max_\theta g(\theta)

dengan f(θ)f(\theta) prior dan L(θ)L(\theta) likelihood (identik f(uθ)f(\mathbf u\mid\theta) di #2). Magis & Raîche [3, p.4]: "The choice of a prior distribution is usually driven by some prior belief of the ability distribution among the population of examinees. The most common choice is the normal distribution with mean μ\mu and variance σ2\sigma^2." Catatan ini menggunakan multivariate normal π(θ)=N(μ,Σ)\pi(\boldsymbol\theta)=N(\boldsymbol\mu,\boldsymbol\Sigma) dengan Σ\boldsymbol\Sigma diagonal. Paper aslinya (BM diformalkan oleh Mislevy 1986 [4], dirujuk di [3, p.4]) tidak dapat diakses gratis untuk verifikasi halaman langsung - diverifikasi silang melalui Magis & Raîche [3] yang open access dan mereproduksi definisi Eq.5 secara eksplisit dengan nomor persamaan.

4.1.1 Apa Bedanya "Prior" dan "Variance"?

Dua istilah ini sering tertukar padahal levelnya berbeda: variance bukan hal terpisah dari prior - variance adalah salah satu parameter di dalam prior, bukan konsep yang sejajar. Jadi kalau ditulis matematis, prior = N(μ, Σ).

  • Prior = keseluruhan asumsi/keyakinan tentang distribusi θ\theta sebelum ada data respons - mencakup bentuk distribusinya (di sini: normal), titik tengahnya (μ\mu), dan lebar sebarannya (Σ\Sigma).
  • Mean (μ\mu) = parameter di dalam prior yang menentukan estimasi ditarik ke arah mana (biasanya 00, mewakili "peserta rata-rata").
  • Variance (Σ\Sigma) = parameter di dalam prior yang menentukan seberapa kuat tarikan itu. Variance kecil = prior "yakin"/sempit = tarikan kuat (shrinkage besar ke μ\mu). Variance besar = prior "longgar"/lebar = tarikan lemah, estimasi mendekati MLE murni.

Analogi: "Saya percaya kemampuan peserta di populasi berbentuk lonceng (normal), berpusat di 0" adalah prior-nya. "Seberapa lebar/sempit lonceng itu" adalah variance-nya - satu angka di dalam prior tersebut.

Dampak konkret ke perhitungan (item bank & respons identik #4.2.2, Iterasi 1, start θ^0=μ=[0,0,0]\hat{\boldsymbol\theta}_0=\boldsymbol\mu=[0,0,0]

  • karena θ0=μ\theta_0=\mu, prior gradient di Step 4 selalu nol berapa pun Σ\Sigma-nya, sehingga efek Σ\Sigma pada iterasi ini murni lewat Hessian di Step 7-9):
Prior Σ\Sigma (variance) Σ1\boldsymbol\Sigma^{-1} (precision) θ^1\hat{\boldsymbol\theta}_1 (numeric) Interpretasi
Sangat kuat/yakin 0.250.25 44 0.1641-0.1641 shrinkage besar, paling dekat ke μ=0\mu=0
Existing di demo ini 11 11 0.3794-0.3794 shrinkage sedang
Longgar 44 0.250.25 0.5769-0.5769 shrinkage kecil
Tanpa prior (MLE) \infty 00 0.7017-0.7017 tidak ada shrinkage sama sekali

Semakin kecil variance (Σ\Sigma\downarrow), semakin besar precision-nya (Σ1\Sigma^{-1}\uparrow), semakin besar "penalti" yang ditambahkan ke HMAP=IS+Σ1\mathbf{H}_{MAP}=\mathbf{I}_S+\boldsymbol\Sigma^{-1}, semakin kecil step Newton-nya, dan estimasi makin tertarik ke μ\mu. Bila Σ\Sigma bukan diagonal (dimensi berkorelasi di populasi), Σ1\boldsymbol\Sigma^{-1} juga akan punya nilai off-diagonal, sehingga prior di satu dimensi ikut menarik dimensi lainnya - kode produksi saat ini memakai Σ\Sigma diagonal saja (prior_cov_diag), jadi kasus ini tidak dibahas lebih lanjut di sini.

Pembuktian (bukan dikutip, diturunkan sendiri dari Eq.5 di atas): untuk prior multivariate normal π(θ)=(2π)k/2Σ1/2exp ⁣(12(θμ)Σ1(θμ))\pi(\boldsymbol\theta)=(2\pi)^{-k/2}|\boldsymbol\Sigma|^{-1/2}\exp\!\big(-\tfrac12(\boldsymbol\theta-\boldsymbol\mu)^\top\boldsymbol\Sigma^{-1}(\boldsymbol\theta-\boldsymbol\mu)\big):

logf(θ)=12(θμ)Σ1(θμ)+const\log f(\boldsymbol\theta) = -\tfrac12(\boldsymbol\theta-\boldsymbol\mu)^\top\boldsymbol\Sigma^{-1}(\boldsymbol\theta-\boldsymbol\mu) + \text{const} logf(θ)=Σ1(θμ),2logfθθ=Σ1\nabla\log f(\boldsymbol\theta) = -\boldsymbol\Sigma^{-1}(\boldsymbol\theta-\boldsymbol\mu), \qquad \frac{\partial^2\log f}{\partial\boldsymbol\theta\partial\boldsymbol\theta^\top} = -\boldsymbol\Sigma^{-1}

(turunan standar bentuk kuadratik multivariat - eksak, bukan ekspektasi, karena logf\log f memang kuadratik murni). Menggabungkan dengan skor & FIM likelihood dari #4.1/#4.2:

logg(θ)=logf(θ)Σ1(θμ)HMAPIS(θ)+Σ1\boxed{\nabla\log g(\boldsymbol\theta) = \nabla\log f(\boldsymbol\theta) - \boldsymbol\Sigma^{-1}(\boldsymbol\theta-\boldsymbol\mu)} \qquad \boxed{\mathbf{H}_{MAP} \approx \mathbf{I}_S(\boldsymbol\theta) + \boldsymbol\Sigma^{-1}}
  • Newton step: θ^s+1=θ^s+HMAP1logg\hat{\boldsymbol\theta}_{s+1}=\hat{\boldsymbol\theta}_s+\mathbf{H}_{MAP}^{-1}\nabla\log g, mulai dari θ^0=μ\hat{\boldsymbol\theta}_0=\boldsymbol\mu, bukan 0\mathbf 0 seperti MLE.

Karena Σ10\boldsymbol\Sigma^{-1}\succeq0 selalu ditambahkan ke IS(θ)0\mathbf{I}_S(\boldsymbol\theta)\succeq0, HMAPHMLE\mathbf{H}_{MAP}\succeq\mathbf{H}_{MLE} - informasi MAP selalu \geq MLE, menjelaskan standard error MAP yang lebih kecil, sesuai [3, Eq.6, p.5]: se(θ^BM)=1/1/σ2+iIi(θ^BM)se(\hat\theta_{BM}) = 1/\sqrt{1/\sigma^2 + \sum_i I_i(\hat\theta_{BM})} (bentuk univariat). Generalisasi multivariat dan pembuktian bahwa formula ini memang dihitung oleh kode produksi - dijabarkan di #4.1.2.

Keterangan variabel (tambahan untuk MAP):

Simbol Arti
g(θ)g(\theta) Posterior tak-ternormalisasi =f(θ)L(θ)=f(\theta)L(\theta)
f(θ)f(\theta), π(θ)\pi(\boldsymbol\theta) Densitas prior (dipakai bergantian, notasi Magis & Raîche vs notasi umum)
μ\boldsymbol\mu, Σ\boldsymbol\Sigma Mean & kovarians prior (produksi: prior_mean, diag(prior_cov_diag))
Σ1\boldsymbol\Sigma^{-1} Prior precision - presisi/informasi prior, ditambahkan langsung ke FIM
HMAP\mathbf{H}_{MAP} Hessian (Fisher scoring) posterior =IS(θ)+Σ1=\mathbf{I}_S(\theta)+\boldsymbol\Sigma^{-1}

4.1.2 Teori: Standard Error (SE) untuk MAP

Sama seperti MLE (#3.1.1), SE MAP berasal dari pendekatan Laplace: di sekitar mode posterior θ^BM\hat\theta_{BM}, posterior didekati normal dengan matriks kovarians == invers Hessian posterior yang sudah dibuktikan di #4.1, HMAP=IS(θ)+Σ1\mathbf{H}_{MAP}=\mathbf{I}_S(\boldsymbol\theta)+\boldsymbol\Sigma^{-1} - Hessian yang sama persis dengan yang dipakai Newton-Raphson untuk mencari θ^BM\hat\theta_{BM} itu sendiri (tidak ada perhitungan tambahan terpisah). Generalisasi multivariat dari bentuk univariat Magis & Raîche [3, Eq.6, p.5]:

SE(θ^BM,j)=[HMAP(θ^BM)1]jj,HMAP=IS(θ^BM)+Σ1\boxed{SE(\hat\theta_{BM,j}) = \sqrt{\left[\mathbf{H}_{MAP}(\hat{\boldsymbol\theta}_{BM})^{-1}\right]_{jj}}}, \qquad \mathbf{H}_{MAP} = \mathbf{I}_S(\hat{\boldsymbol\theta}_{BM}) + \boldsymbol\Sigma^{-1}

Untuk k=1k=1 dengan Σ1=1/σ2\boldsymbol\Sigma^{-1}=1/\sigma^2, ini tereduksi tepat ke se(θ^BM)=1/1/σ2+iIi(θ^BM)se(\hat\theta_{BM})=1/\sqrt{1/\sigma^2+\sum_iI_i(\hat\theta_{BM})} [3, Eq.6, p.5] yang dikutip di #4.1.

Karena HMAPIS\mathbf{H}_{MAP}\succeq\mathbf{I}_S (dibuktikan #4.1), HMAP1IS1\mathbf{H}_{MAP}^{-1}\preceq\mathbf{I}_S^{-1} (invers matriks definit-positif membalik urutan Loewner) - sehingga SEMAPSEMLESE_{MAP}\leq SE_{MLE} untuk setiap dimensi, secara aljabar menjelaskan pengamatan "informasi MAP selalu \geq MLE" di #4.1: prior menambah informasi, sehingga selalu memperkecil (atau menyamakan, jika Σ10\boldsymbol\Sigma^{-1}\to0) SE dibanding MLE murni pada data identik.

Identik dengan kode produksi: map::estimate() sendiri tidak menghitung SE (map.rs:51-53: posterior_se: None, sesuai komentar "MAP's SE is derived afterward from cum_fim + prior_cov_inv (McatEngine::compute_se), not produced here") - persis seperti MLE, satu langkah terpisah setelah Newton-Raphson berhenti yang menghitung rumus di atas:

rust
// engine.rs, closure map_style_se() dipakai untuk EstimationMethod::Map:
let prior_cov_inv = DMatrix::from_diagonal(&DVector::from_vec(
    settings.prior_cov_diag.0.iter().map(|v| 1.0 / v).collect(),
));
se_vector(&(cum_fim + prior_cov_inv), k)   // = sqrt(diag(inv(I_S + Σ⁻¹)))

se_vector() (mirt.rs:62-71) itu sendiri identik dengan definisi di #3.1.1: akar diagonal invers matriks yang diberikan - hanya matriks yang diberikan berbeda (cum_fim + prior_cov_inv untuk MAP, vs cum_fim saja untuk MLE). Konsekuensi praktis lain: karena Σ1\boldsymbol\Sigma^{-1} selalu 0\succ0 untuk prior proper, SE MAP tetap terdefinisi bahkan pada n=0n=0 item (posterior == prior, HMAP=Σ1\mathbf{H}_{MAP}=\boldsymbol\Sigma^{-1})

  • berbeda dari SE MLE yang None/tak terdefinisi sebelum ada item terjawab sama sekali (IS=0\mathbf{I}_S=\mathbf 0 tidak invertible).

4.2 Perhitungan Manual

4.2.1 DEMO 1: MAP vs MLE (k=1), prior N(0,1)

Item & respons identik #3.2.1, prior μ=0,σ2=1Σ1=1.0\mu=0,\sigma^2=1\Rightarrow\Sigma^{-1}=1.0. θ^0=μ=0\hat\theta_0=\mu=0.

Item aa dd cc uu
1 1.0 +1.0 0 1
2 1.2 0.0 0 0
3 0.8 -0.8 0 1

Iterasi 1 dengan θ^0=0\hat\theta_0=0:

Step 1: Hitung zi=aθ+dz_i = a\theta + d untuk setiap item:

Item aa dd zi=a(0)+dz_i = a(0) + d
1 1.0 +1.0 1.0
2 1.2 0.0 0.0
3 0.8 -0.8 -0.8

Step 2: Hitung Pi=σ(zi)P_i = \sigma(z_i), Qi=1PiQ_i = 1-P_i, Pi=PiQiP'_i = P_iQ_i:

Item ziz_i PiP_i QiQ_i PiP'_i
1 1.0 11+e1.0=0.7311\frac{1}{1+e^{-1.0}} = 0.7311 0.2689 0.1966
2 0.0 0.5000 0.5000 0.2500
3 -0.8 11+e0.8=0.3100\frac{1}{1+e^{0.8}} = 0.3100 0.6900 0.2139

Step 3: Hitung likelihood gradient logL=iai(uiPi)\nabla\log L = \sum_i a_i(u_i - P_i):

Item uu ai(uiPi)a_i(u_i-P_i)
1 1 1.0(10.7311)=+0.26891.0(1-0.7311) = +0.2689
2 0 1.2(00.5000)=0.60001.2(0-0.5000) = -0.6000
3 1 0.8(10.3100)=+0.55200.8(1-0.3100) = +0.5520
sum +0.2209

Jadi: logL=0.2209\nabla\log L = 0.2209

Step 4: Hitung prior gradient term logf=Σ1(θμ)=1.0(00)=0\nabla\log f = -\Sigma^{-1}(\theta - \mu) = -1.0(0 - 0) = 0

Step 5: Hitung posterior gradient:

logg=logL+logf=0.2209+0=0.2209\nabla\log g = \nabla\log L + \nabla\log f = 0.2209 + 0 = 0.2209

Step 6: Hitung Hessian likelihood HL=iai2PiQiH_L = \sum_i a_i^2 P_i Q_i:

Item ai2PiQia_i^2 P_i Q_i
1 (1.0)2(0.7311)(0.2689)=0.1966(1.0)^2(0.7311)(0.2689) = 0.1966
2 (1.2)2(0.5000)(0.5000)=0.3600(1.2)^2(0.5000)(0.5000) = 0.3600
3 (0.8)2(0.3100)(0.6900)=0.1369(0.8)^2(0.3100)(0.6900) = 0.1369
sum 0.6935

Step 7: Hitung Hessian MAP (Fisher scoring + prior Hessian):

HMAP=HL+Σ1=0.6935+1.0=1.6935H_{MAP} = H_L + \Sigma^{-1} = 0.6935 + 1.0 = 1.6935

Step 8: Hitung parameter update:

Δθ^=loggHMAP=0.22091.69350.130451\Delta\hat\theta = \frac{\nabla\log g}{H_{MAP}} = \frac{0.2209}{1.6935} \approx 0.130451
θ^1=θ^0+Δθ^=0+0.130451=0.130451\hat\theta_1 = \hat\theta_0 + \Delta\hat\theta = 0 + 0.130451 = 0.130451

Iterasi 2 dengan θ^1=0.130451\hat\theta_1 = 0.130451:

Step 1: Hitung ziz_i baru:

Item zi=a(0.130451)+dz_i = a(0.130451) + d
1 1.0(0.130451)+1.0=1.1304511.0(0.130451) + 1.0 = 1.130451
2 1.2(0.130451)+0.0=0.1565411.2(0.130451) + 0.0 = 0.156541
3 0.8(0.130451)0.8=0.6956390.8(0.130451) - 0.8 = -0.695639

Step 2: Hitung Pi,QiP_i, Q_i:

Item ziz_i PiP_i QiQ_i
1 1.130451 0.755922 0.244078
2 0.156541 0.539056 0.460944
3 -0.695639 0.332780 0.667220

Step 3: Hitung likelihood gradient:

logL=iai(uiPi)=1.0(10.755922)+1.2(00.539056)+0.8(10.332780)=0.2440780.646867+0.533776=0.130987\nabla\log L = \sum_i a_i(u_i-P_i) = 1.0(1-0.755922) + 1.2(0-0.539056) + 0.8(1-0.332780) = 0.244078 - 0.646867 + 0.533776 = 0.130987

Step 4: Hitung prior gradient:

logf=1.0(0.1304510)=0.130451\nabla\log f = -1.0(0.130451 - 0) = -0.130451

Step 5: Hitung posterior gradient:

logg=0.1309870.130451=0.000536\nabla\log g = 0.130987 - 0.130451 = 0.000536

Step 6: Hitung Hessian:

HL=(1.0)2(0.755922)(0.244078)+(1.2)2(0.539056)(0.460944)+(0.8)2(0.332780)(0.667220)0.184496+0.357761+0.142154=0.684411H_L = (1.0)^2(0.755922)(0.244078) + (1.2)^2(0.539056)(0.460944) + (0.8)^2(0.332780)(0.667220) \approx 0.184496 + 0.357761 + 0.142154 = 0.684411
HMAP=0.684411+1.0=1.684411H_{MAP} = 0.684411 + 1.0 = 1.684411

Step 7: Update parameter:

Δθ^=0.0005361.6844110.000318θ^2=0.130451+0.000318=0.130769\Delta\hat\theta = \frac{0.000536}{1.684411} \approx 0.000318 \quad\Rightarrow\quad \hat\theta_2 = 0.130451 + 0.000318 = 0.130769

Verifikasi konvergensi iterasi 2: Δθ^=3.18×104106|\Delta\hat\theta| = 3.18\times10^{-4} \gg 10^{-6} \Rightarrow BELUM KONVERGEN, lanjut iterasi.

Iterasi 3 dengan θ^2=0.130769\hat\theta_2 = 0.130769:

Pada titik ini θ^2\hat\theta_2 sudah sangat dekat dengan mode posterior, sehingga logL\nabla\log L dan logf-\nabla\log f hampir saling meniadakan:

logL0.130769,logf=0.130769,logg0.00000000\nabla\log L \approx 0.130769, \quad \nabla\log f = -0.130769, \quad \nabla\log g \approx 0.00000000
HMAP1.684383,Δθ^2.70×109H_{MAP} \approx 1.684383, \quad \Delta\hat\theta \approx 2.70\times10^{-9}
θ^3=θ^2+Δθ^0.130769\hat\theta_3 = \hat\theta_2 + \Delta\hat\theta \approx 0.130769

Verifikasi konvergensi: Δθ^=2.70×109<106KONVERGEN|\Delta\hat\theta| = 2.70\times10^{-9} < 10^{-6} \Rightarrow \textbf{KONVERGEN} - iterasi berhenti (persis pola yang sama seperti demo MLE #3.2.1: perubahan harus benar-benar jatuh di bawah 10610^{-6}, bukan sekadar "terlihat kecil" setelah pembulatan tampilan).

Perbandingan dengan MLE pada data identik:

Metode Hasil Start Prior
MLE 0.3248 θ0=1.0\theta_0=1.0 tidak ada
MAP 0.1308 θ0=0\theta_0=0 N(0,1)N(0,1)

MAP tersusut (shrinkage) signifikan ke arah mean prior μ=0\mu=0 - dari 0.3248 menjadi 0.1308 (60% lebih dekat ke 0). Ini konsekuensi HMAP>HMLEH_{MAP} > H_{MLE} yang menyebabkan step size lebih kecil dan menarik estimasi ke arah prior.

Step tambahan: Hitung Standard Error (SE) (teori #4.1.2)

Karena kriteria konvergensi terpenuhi tepat di Iterasi 3, HMAPH_{MAP} pada titik itu (dihitung di Step 6 Iterasi 3 sebelumnya, HMAP1.684383H_{MAP}\approx1.684383) langsung dipakai untuk SE - tidak perlu evaluasi ulang:

SE(θ^MAP)=1HMAP=11.6843830.770512SE(\hat\theta_{MAP}) = \frac{1}{\sqrt{H_{MAP}}} = \frac{1}{\sqrt{1.684383}} \approx 0.770512

Dibandingkan MLE pada data identik (SE(θ^MLE)=1/0.6614461.229569SE(\hat\theta_{MLE})=1/\sqrt{0.661446}\approx1.229569, dihitung di #3.2.1) - SE MAP 37% lebih kecil (0.77050.7705 vs 1.22961.2296), konsekuensi langsung HMAP=0.661446+1.0=1.684383>IS(θ^)MLE=0.661446H_{MAP}=0.661446+1.0=1.684383 > \mathbf{I}_S(\hat\theta)_{MLE}=0.661446 yang dibuktikan di #4.1.2.

4.2.2 DEMO 2: Multidimensional (k=3), 7 item, prior N(0,I)

Item & respons identik #3.2.2, prior μ=[0,0,0]\boldsymbol\mu=[0,0,0], Σ=I\boldsymbol\Sigma=\mathbf{I} (diagonal) Σ1=I\Rightarrow \boldsymbol\Sigma^{-1}=\mathbf{I} (prior presisi diagonal [1,1,1][1,1,1]).

MAP mulai dari θ^0=μ=[0,0,0]\hat{\boldsymbol\theta}_0=\boldsymbol\mu=[0,0,0] (kebetulan sama nilainya dengan start MLE di #3.2.2 karena μ=0\mu=\mathbf 0, tapi secara konseptual berbeda sumber: start dari mean prior, bukan arbitrary zero).

Menggunakan seluruh 7-item bank yang sama seperti Item Bank Snapshot.

Item a\mathbf{a} dd uu
m2p-v001 [1.9,0.2,0.3] 0.40 1
m2p-v002 [1.7,0.2,0.2] 0.10 0
m2p-n001 [0.3,1.9,0.4] 0.80 0
m2p-n002 [0.3,1.8,0.4] 0.50 1
m2p-r001 [0.5,0.4,2.0] 0.30 1
m2p-r002 [0.3,0.8,1.9] 0.60 0
m2p-r003 [0.4,0.3,1.8] 0.70 1

Iterasi 1 dengan θ^0=[0,0,0]\hat{\boldsymbol\theta}_0=[0,0,0]:

Step 1: Hitung zi=aiθ0+diz_i = \mathbf{a}_i \cdot \boldsymbol\theta_0 + d_i dengan θ0=[0,0,0]\boldsymbol\theta_0=[0,0,0] (dot product dengan vektor nol =0=0, sehingga zi=diz_i=d_i):

Item ai\mathbf{a}_i did_i ziz_i
m2p-v001 [1.9,0.2,0.3] 0.40 0.40
m2p-v002 [1.7,0.2,0.2] 0.10 0.10
m2p-n001 [0.3,1.9,0.4] 0.80 0.80
m2p-n002 [0.3,1.8,0.4] 0.50 0.50
m2p-r001 [0.5,0.4,2.0] 0.30 0.30
m2p-r002 [0.3,0.8,1.9] 0.60 0.60
m2p-r003 [0.4,0.3,1.8] 0.70 0.70

Step 2: Hitung Pi=σ(zi)P_i=\sigma(z_i), Qi=1PiQ_i=1-P_i, Pi=PiQiP'_i=P_iQ_i (M2PL, c=0c=0):

Item ziz_i PiP_i QiQ_i PiP'_i
m2p-v001 0.40 0.5987 0.4013 0.2403
m2p-v002 0.10 0.5250 0.4750 0.2494
m2p-n001 0.80 0.6900 0.3100 0.2139
m2p-n002 0.50 0.6225 0.3775 0.2350
m2p-r001 0.30 0.5744 0.4256 0.2446
m2p-r002 0.60 0.6456 0.3544 0.2290
m2p-r003 0.70 0.6682 0.3318 0.2217

Step 3: Hitung residual (uiPi)(u_i-P_i) dan kontribusi ke gradien ai(uiPi)\mathbf{a}_i(u_i-P_i):

Item uu (uiPi)(u_i-P_i) Kontribusi = ai×(uiPi)\mathbf{a}_i \times (u_i - P_i)
m2p-v001 1 10.5987=0.40131-0.5987=0.4013 [0.7625,0.0803,0.1204][0.7625,0.0803,0.1204]
m2p-v002 0 00.5250=0.52500-0.5250=-0.5250 [0.8925,0.1050,0.1050][-0.8925,-0.1050,-0.1050]
m2p-n001 0 00.6900=0.69000-0.6900=-0.6900 [0.2070,1.3110,0.2760][-0.2070,-1.3110,-0.2760]
m2p-n002 1 10.6225=0.37751-0.6225=0.3775 [0.1133,0.6795,0.1510][0.1133,0.6795,0.1510]
m2p-r001 1 10.5744=0.42561-0.5744=0.4256 [0.2128,0.1702,0.8512][0.2128,0.1702,0.8512]
m2p-r002 0 00.6456=0.64560-0.6456=-0.6456 [0.1937,0.5165,1.2266][-0.1937,-0.5165,-1.2266]
m2p-r003 1 10.6682=0.33181-0.6682=0.3318 [0.1327,0.0995,0.5972][0.1327,0.0995,0.5972]

Menjumlahkan seluruh kontribusi (persis perhitungan yang sama dengan MLE Iterasi 1, lihat #3.2.2, karena likelihood gradient tidak bergantung pada prior):

logL=[0.0719,0.9029,0.1121]\nabla\log L = [-0.0719,-0.9029,0.1121]

Step 4: Prior gradient term:

logf=Σ1(θμ)=I([0,0,0][0,0,0])=[0,0,0]\nabla\log f = -\boldsymbol\Sigma^{-1}(\boldsymbol\theta - \boldsymbol\mu) = -\mathbf{I}([0,0,0] - [0,0,0]) = [0,0,0]

Step 5: Posterior gradient:

logg=logL+logf=[0.0719,0.9029,0.1121]+[0,0,0]=[0.0719,0.9029,0.1121]\nabla\log g = \nabla\log L + \nabla\log f = [-0.0719,-0.9029,0.1121] + [0,0,0] = [-0.0719,-0.9029,0.1121]

(Sama dengan likelihood gradient karena θ0=μ\theta_0 = \mu)

Step 6: Hitung FIM per item Ii=Piaiai\mathbf{I}_i=P'_i\,\mathbf{a}_i\mathbf{a}_i^\top menggunakan PiP'_i dari Step 2, lalu jumlahkan atas ke-7 item (persis definisi #2.2):

Sebagai contoh, untuk item m2p-v001 (P1=0.2403P'_1=0.2403):

I1=0.2403×[1.90.20.3][1.90.20.3]=[0.86730.09130.13690.09130.00960.01440.13690.01440.0216]\mathbf{I}_1 = 0.2403 \times \begin{bmatrix} 1.9 \\ 0.2 \\ 0.3 \end{bmatrix}\begin{bmatrix} 1.9 & 0.2 & 0.3 \end{bmatrix} = \begin{bmatrix} 0.8673 & 0.0913 & 0.1369 \\ 0.0913 & 0.0096 & 0.0144 \\ 0.1369 & 0.0144 & 0.0216 \end{bmatrix}

Dilakukan sama untuk 6 item lainnya:

Item PiP'_i Ii\mathbf{I}_i (diagonal [a12,a22,a32]×Pi[a_1^2,a_2^2,a_3^2]\times P'_i)
m2p-v001 0.2403 [0.8673,0.0096,0.0216][0.8673,\,0.0096,\,0.0216]
m2p-v002 0.2494 [0.7207,0.0100,0.0100][0.7207,\,0.0100,\,0.0100]
m2p-n001 0.2139 [0.0193,0.7722,0.0342][0.0193,\,0.7722,\,0.0342]
m2p-n002 0.2350 [0.0212,0.7614,0.0376][0.0212,\,0.7614,\,0.0376]
m2p-r001 0.2446 [0.0611,0.0391,0.9778][0.0611,\,0.0391,\,0.9778]
m2p-r002 0.2290 [0.0206,0.1464,0.8259][0.0206,\,0.1464,\,0.8259]
m2p-r003 0.2217 [0.0355,0.0200,0.7183][0.0355,\,0.0200,\,0.7183]

Menjumlahkan seluruh Ii\mathbf{I}_i (matriks lengkap 3×33\times3, bukan hanya diagonal) menghasilkan FIM total - persis sama dengan FIM MLE Iterasi 1 di #3.2.2, karena FIM likelihood juga tidak bergantung pada prior:

IS(L)=[1.74560.55530.81010.55531.75871.01920.81011.01922.6255]\mathbf{I}_S^{(L)} = \begin{bmatrix} 1.7456 & 0.5553 & 0.8101 \\ 0.5553 & 1.7587 & 1.0192 \\ 0.8101 & 1.0192 & 2.6255 \end{bmatrix}

Step 7: Prior Hessian (eksak untuk prior kuadratik):

2logfθθ=Σ1=[100010001]-\frac{\partial^2\log f}{\partial\boldsymbol\theta\partial\boldsymbol\theta^\top} = \boldsymbol\Sigma^{-1} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}

Step 8: Posterior Hessian:

HMAP=IS(L)+Σ1=[1.7456+10.55530.81010.55531.7587+11.01920.81011.01922.6255+1]\mathbf{H}_{MAP} = \mathbf{I}_S^{(L)} + \boldsymbol\Sigma^{-1} = \begin{bmatrix} 1.7456+1 & 0.5553 & 0.8101 \\ 0.5553 & 1.7587+1 & 1.0192 \\ 0.8101 & 1.0192 & 2.6255+1 \end{bmatrix}
=[2.74560.55530.81010.55532.75871.01920.81011.01923.6255]= \begin{bmatrix} 2.7456 & 0.5553 & 0.8101 \\ 0.5553 & 2.7587 & 1.0192 \\ 0.8101 & 1.0192 & 3.6255 \end{bmatrix}

(Diagonal [2.7456,2.7587,3.6255][2.7456, 2.7587, 3.6255] seperti tercatat)

Step 9: Hitung invers dan parameter update:

HMAP1[0.39660.05260.07390.05260.41150.10390.07390.10390.3215]\mathbf{H}_{MAP}^{-1} \approx \begin{bmatrix} 0.3966 & -0.0526 & -0.0739 \\ -0.0526 & 0.4115 & -0.1039 \\ -0.0739 & -0.1039 & 0.3215 \end{bmatrix}
Δθ^=HMAP1logg=[0.39660.05260.07390.05260.41150.10390.07390.10390.3215][0.07190.90290.1121]\Delta\hat{\boldsymbol\theta} = \mathbf{H}_{MAP}^{-1} \nabla\log g = \begin{bmatrix} 0.3966 & -0.0526 & -0.0739 \\ -0.0526 & 0.4115 & -0.1039 \\ -0.0739 & -0.1039 & 0.3215 \end{bmatrix} \begin{bmatrix} -0.0719 \\ -0.9029 \\ 0.1121 \end{bmatrix}
=[0.0285+0.04750.00830.00380.37150.01160.0053+0.0938+0.0360]=[0.01070.37940.1352]= \begin{bmatrix} -0.0285+0.0475-0.0083 \\ 0.0038-0.3715-0.0116 \\ 0.0053+0.0938+0.0360 \end{bmatrix} = \begin{bmatrix} 0.0107 \\ -0.3794 \\ 0.1352 \end{bmatrix}
θ^1=[0,0,0]+[0.0107,0.3794,0.1352]=[0.0107,0.3794,0.1352]\hat{\boldsymbol\theta}_1 = [0,0,0] + [0.0107,-0.3794,0.1352] = [0.0107,-0.3794,0.1352]

Iterasi 2 dengan θ^1=[0.0107,0.3794,0.1352]\hat{\boldsymbol\theta}_1 = [0.0107,-0.3794,0.1352]:

Step 1: Hitung zi=aiθ^1+diz_i = \mathbf{a}_i\cdot\hat{\boldsymbol\theta}_1+d_i untuk setiap item:

Item aiθ^1\mathbf{a}_i\cdot\hat{\boldsymbol\theta}_1 did_i ziz_i
m2p-v001 1.9(0.0107)+0.2(0.3794)+0.3(0.1352)=0.02030.0759+0.04061.9(0.0107)+0.2(-0.3794)+0.3(0.1352)=0.0203-0.0759+0.0406 +0.40 0.3850
m2p-v002 1.7(0.0107)+0.2(0.3794)+0.2(0.1352)=0.01820.0759+0.02701.7(0.0107)+0.2(-0.3794)+0.2(0.1352)=0.0182-0.0759+0.0270 +0.10 0.0693
m2p-n001 0.3(0.0107)+1.9(0.3794)+0.4(0.1352)=0.00320.7209+0.05410.3(0.0107)+1.9(-0.3794)+0.4(0.1352)=0.0032-0.7209+0.0541 +0.80 0.1364
m2p-n002 0.3(0.0107)+1.8(0.3794)+0.4(0.1352)=0.00320.6829+0.05410.3(0.0107)+1.8(-0.3794)+0.4(0.1352)=0.0032-0.6829+0.0541 +0.50 -0.1256
m2p-r001 0.5(0.0107)+0.4(0.3794)+2.0(0.1352)=0.00540.1518+0.27040.5(0.0107)+0.4(-0.3794)+2.0(0.1352)=0.0054-0.1518+0.2704 +0.30 0.4240
m2p-r002 0.3(0.0107)+0.8(0.3794)+1.9(0.1352)=0.00320.3035+0.25690.3(0.0107)+0.8(-0.3794)+1.9(0.1352)=0.0032-0.3035+0.2569 +0.60 0.5566
m2p-r003 0.4(0.0107)+0.3(0.3794)+1.8(0.1352)=0.00430.1138+0.24340.4(0.0107)+0.3(-0.3794)+1.8(0.1352)=0.0043-0.1138+0.2434 +0.70 0.8338

Step 2: Hitung PiP_i, QiQ_i, PiP'_i berdasarkan ziz_i baru (P bergerak lebih sedikit dari titik start dibanding MLE Iterasi 2 karena step MAP lebih kecil - lihat #3.2.2 sebagai pembanding):

Item ziz_i PiP_i QiQ_i PiP'_i
m2p-v001 0.3850 0.5951 0.4049 0.2410
m2p-v002 0.0693 0.5173 0.4827 0.2497
m2p-n001 0.1364 0.5341 0.4659 0.2488
m2p-n002 -0.1256 0.4686 0.5314 0.2490
m2p-r001 0.4240 0.6044 0.3956 0.2391
m2p-r002 0.5566 0.6356 0.3644 0.2316
m2p-r003 0.8338 0.6972 0.3028 0.2111

Step 3: Hitung kontribusi ke likelihood gradient ai(uiPi)\mathbf{a}_i(u_i-P_i), lalu jumlahkan:

Item uu (uiPi)(u_i-P_i) Kontribusi
m2p-v001 1 0.4049 [0.7694,0.0810,0.1215][0.7694,0.0810,0.1215]
m2p-v002 0 -0.5173 [0.8794,0.1035,0.1035][-0.8794,-0.1035,-0.1035]
m2p-n001 0 -0.5341 [0.1602,1.0147,0.2136][-0.1602,-1.0147,-0.2136]
m2p-n002 1 0.5314 [0.1594,0.9564,0.2125][0.1594,0.9564,0.2125]
m2p-r001 1 0.3956 [0.1978,0.1582,0.7912][0.1978,0.1582,0.7912]
m2p-r002 0 -0.6356 [0.1907,0.5085,1.2077][-0.1907,-0.5085,-1.2077]
m2p-r003 1 0.3028 [0.1211,0.0909,0.5451][0.1211,0.0909,0.5451]
logL=[0.0174,0.3402,0.1455]\nabla\log L = [0.0174,-0.3402,0.1455]

Step 4: Prior gradient:

logf=I(θ^1[0,0,0])=[0.0107,0.3794,0.1352]=[0.0107,0.3794,0.1352]\nabla\log f = -\mathbf{I}(\hat{\boldsymbol\theta}_1 - [0,0,0]) = -[0.0107,-0.3794,0.1352] = [-0.0107,0.3794,-0.1352]

Step 5: Posterior gradient:

logg=[0.0174,0.3402,0.1455]+[0.0107,0.3794,0.1352]=[0.0067,0.0392,0.0103]\nabla\log g = [0.0174,-0.3402,0.1455] + [-0.0107,0.3794,-0.1352] = [0.0067,0.0392,0.0103]

(Jauh lebih kecil daripada likelihood gradient - prior "menarik balik" mendekati konvergensi)

Step 6: Hitung FIM baru, Hessian, dan update (FIM per item dihitung persis seperti Step 6 Iterasi 1, memakai PiP'_i dari Step 2 di atas):

IS(L,2)[1.75070.58150.80510.58151.93021.05020.80511.05022.5879],HMAP(2)=IS(L,2)+I[2.75070.58150.80510.58152.93021.05020.80511.05023.5879]\mathbf{I}_S^{(L,2)} \approx \begin{bmatrix} 1.7507 & 0.5815 & 0.8051 \\ 0.5815 & 1.9302 & 1.0502 \\ 0.8051 & 1.0502 & 2.5879 \end{bmatrix}, \qquad \mathbf{H}_{MAP}^{(2)} = \mathbf{I}_S^{(L,2)}+\mathbf{I} \approx \begin{bmatrix} 2.7507 & 0.5815 & 0.8051 \\ 0.5815 & 2.9302 & 1.0502 \\ 0.8051 & 1.0502 & 3.5879 \end{bmatrix}
Δθ^=(HMAP(2))1logg[0.0001,0.0138,0.0011]\Delta\hat{\boldsymbol\theta} = \big(\mathbf{H}_{MAP}^{(2)}\big)^{-1}\nabla\log g \approx [-0.0001,\,0.0138,\,-0.0011]
θ^2=[0.0107,0.3794,0.1352]+[0.0001,0.0138,0.0011][0.0105,0.3656,0.1340]\hat{\boldsymbol\theta}_2 = [0.0107,-0.3794,0.1352] + [-0.0001,0.0138,-0.0011] \approx [0.0105,-0.3656,0.1340]

Iterasi 3 dengan θ^2=[0.010512,0.365561,0.134039]\hat{\boldsymbol\theta}_2 = [0.010512,-0.365561,0.134039] (presisi penuh, bukan dibulatkan ke 4 desimal, supaya verifikasi konvergensi di bawah akurat):

Step 1-2: Hitung ziz_i, PiP_i, QiQ_i, PiP'_i:

Item ziz_i PiP_i QiQ_i PiP'_i
m2p-v001 0.387072 0.595578 0.404422 0.240865
m2p-v002 0.071566 0.517884 0.482116 0.249680
m2p-n001 0.162203 0.540462 0.459538 0.248363
m2p-n002 -0.101241 0.474711 0.525289 0.249360
m2p-r001 0.427110 0.605183 0.394817 0.238936
m2p-r002 0.565379 0.637696 0.362304 0.231040
m2p-r003 0.835807 0.697581 0.302419 0.210962

Step 3: Kontribusi ke likelihood gradient ai(uiPi)\mathbf{a}_i(u_i-P_i):

Item uu (uiPi)(u_i-P_i) Kontribusi
m2p-v001 1 0.404422 [0.768402,0.080884,0.121327][0.768402,0.080884,0.121327]
m2p-v002 0 -0.517884 [0.880403,0.103577,0.103577][-0.880403,-0.103577,-0.103577]
m2p-n001 0 -0.540462 [0.162139,1.026878,0.216185][-0.162139,-1.026878,-0.216185]
m2p-n002 1 0.525289 [0.157587,0.945519,0.210115][0.157587,0.945519,0.210115]
m2p-r001 1 0.394817 [0.197408,0.157927,0.789633][0.197408,0.157927,0.789633]
m2p-r002 0 -0.637696 [0.191309,0.510157,1.211623][-0.191309,-0.510157,-1.211623]
m2p-r003 1 0.302419 [0.120967,0.090726,0.544354][0.120967,0.090726,0.544354]
logL[0.010515,0.365556,0.134045]\nabla\log L \approx [0.010515,-0.365556,0.134045]

Step 4: Prior gradient:

logf=I(θ^2[0,0,0])=[0.010512,0.365561,0.134039]\nabla\log f = -\mathbf{I}(\hat{\boldsymbol\theta}_2 - [0,0,0]) = [-0.010512,0.365561,-0.134039]

Step 5: Posterior gradient (likelihood dan prior nyaris saling meniadakan, tersisa residual orde 10610^{-6}):

logg=[0.010515,0.365556,0.134045]+[0.010512,0.365561,0.134039][2.7,5.3,5.8]×106\nabla\log g = [0.010515,-0.365556,0.134045] + [-0.010512,0.365561,-0.134039] \approx [2.7,\,5.3,\,5.8]\times10^{-6}

Step 6: FIM & Hessian:

IS(L,3)[1.75020.58120.80440.58121.92921.04900.80441.04902.5846],HMAP(3)[2.75020.58120.80440.58122.92921.04900.80441.04903.5846]\mathbf{I}_S^{(L,3)} \approx \begin{bmatrix} 1.7502 & 0.5812 & 0.8044 \\ 0.5812 & 1.9292 & 1.0490 \\ 0.8044 & 1.0490 & 2.5846 \end{bmatrix}, \qquad \mathbf{H}_{MAP}^{(3)} \approx \begin{bmatrix} 2.7502 & 0.5812 & 0.8044 \\ 0.5812 & 2.9292 & 1.0490 \\ 0.8044 & 1.0490 & 3.5846 \end{bmatrix}

Step 7: Update parameter:

Δθ^=(HMAP(3))1logg[3.5,13.4,11.5]×107\Delta\hat{\boldsymbol\theta} = \big(\mathbf{H}_{MAP}^{(3)}\big)^{-1}\nabla\log g \approx [3.5,\,13.4,\,11.5]\times10^{-7}
θ^3=[0.010512,0.365561,0.134039]+[0.00000035,0.00000134,0.00000115][0.0105124,0.3655597,0.1340402]\hat{\boldsymbol\theta}_3 = [0.010512,-0.365561,0.134039] + [0.00000035,0.00000134,0.00000115] \approx [0.0105124,-0.3655597,0.1340402]

Verifikasi konvergensi iterasi 3, kriteria #2.3: θ^3θ^2=Δθ^=(3.5×107)2+(13.4×107)2+(11.5×107)21.80×106\|\hat{\boldsymbol\theta}_3-\hat{\boldsymbol\theta}_2\|=\|\Delta\hat{\boldsymbol\theta}\|=\sqrt{(3.5\times10^{-7})^2+(13.4\times10^{-7})^2+(11.5\times10^{-7})^2}\approx1.80\times10^{-6}

1.80×106106BELUM KONVERGEN (meski gradiennya kelihatan "sangat kecil"), lanjut ke iterasi 4.1.80\times10^{-6} \gg 10^{-6} \Rightarrow \textbf{BELUM KONVERGEN}\text{ (meski gradiennya kelihatan "sangat kecil"), lanjut ke iterasi 4.}

Ini koreksi terhadap versi sebelumnya di dokumen ini yang menyimpulkan "konvergen" langsung di iterasi 3 - kesimpulan itu keliru karena hanya menilai gradien secara kasar/dibulatkan, bukan mengecek Δθ^\|\Delta\hat{\boldsymbol\theta}\| terhadap ambang 10610^{-6} seperti kriteria resmi yang dipakai map.rs:40 (if delta_norm < 1e-6).

Iterasi 4 dengan θ^3=[0.0105124,0.3655597,0.1340402]\hat{\boldsymbol\theta}_3 = [0.0105124,-0.3655597,0.1340402]:

Sama seperti pola konvergensi kuadratik Newton-Raphson pada demo MLE #3.2.1/#3.2.2 - begitu dekat dengan akar, error mengecil drastis tiap iterasi:

logg[4.3,5.6,16.7]×1013,Δθ^[1.7×1014,2.3×1014,4.6×1013]\nabla\log g \approx [4.3,\,5.6,\,16.7]\times10^{-13}, \qquad \Delta\hat{\boldsymbol\theta} \approx [1.7\times10^{-14},\,2.3\times10^{-14},\,4.6\times10^{-13}]
θ^4=θ^3+Δθ^[0.0105124,0.3655597,0.1340402]\hat{\boldsymbol\theta}_4 = \hat{\boldsymbol\theta}_3 + \Delta\hat{\boldsymbol\theta} \approx [0.0105124,-0.3655597,0.1340402]

Verifikasi konvergensi iterasi 4:

θ^4θ^3=Δθ^4.57×1013<106KONVERGEN - iterasi berhenti pada iterasi ke-4.\|\hat{\boldsymbol\theta}_4-\hat{\boldsymbol\theta}_3\| = \|\Delta\hat{\boldsymbol\theta}\| \approx 4.57\times10^{-13} < 10^{-6} \Rightarrow \textbf{KONVERGEN} \text{ - iterasi berhenti pada iterasi ke-4.}

Hasil final: θ^MAP=[0.010512,0.365560,0.134040]\hat{\boldsymbol\theta}_{MAP} = [0.010512, -0.365560, 0.134040] (konvergen di iterasi 4, bukan 3 - dibulatkan [0.0105,0.3656,0.1340][0.0105, -0.3656, 0.1340] untuk tabel perbandingan di bawah)

Perbandingan langsung:

Metode θ^verbal\hat\theta_{verbal} θ^numeric\hat\theta_{numeric} θ^reasoning\hat\theta_{reasoning}
MLE (no prior) 0.0380 -0.6537 0.2966
MAP (Σ=I\Sigma=I) 0.0105 -0.3656 0.1340

Analisis shrinkage:

  • Verbal: 0.03800.01050.0380 \to 0.0105 (72% lebih dekat ke 0) - shrinkage minimal
  • Numeric: 0.65370.3656-0.6537 \to -0.3656 (44% lebih dekat ke 0) - shrinkage signifikan
  • Reasoning: 0.29660.13400.2966 \to 0.1340 (55% lebih dekat ke 0) - shrinkage sedang

MAP tersusut (shrinkage) ke arah 0\mathbf 0 di ketiga dimensi - konsekuensi langsung HMAP=IS+IIS\mathbf{H}_{MAP}=\mathbf{I}_S+\mathbf{I}\succ\mathbf{I}_S yang dibuktikan di #4.1. Hessian yang lebih besar berarti curvature posterior lebih tajam, sehingga step-size lebih kecil dan penarik dari μ=0\mu=0 lebih kuat.

Step tambahan: Hitung Standard Error (SE) (teori #4.1.2)

Menggunakan HMAP(3)\mathbf{H}_{MAP}^{(3)} dari Iterasi 3 (titik konvergen praktis, karena θ^4θ^3\hat{\boldsymbol\theta}_4\approx\hat{\boldsymbol\theta}_3 hingga presisi 10610^{-6}):

(HMAP(3))1[0.396190.052240.073620.052240.388240.101890.073620.101890.32531]\big(\mathbf{H}_{MAP}^{(3)}\big)^{-1} \approx \begin{bmatrix} 0.39619 & -0.05224 & -0.07362 \\ -0.05224 & 0.38824 & -0.10189 \\ -0.07362 & -0.10189 & 0.32531 \end{bmatrix} SE(θ^MAP)=diag(HMAP1)[0.6294,0.6231,0.5704]SE(\hat{\boldsymbol\theta}_{MAP}) = \sqrt{\text{diag}\big(\mathbf{H}_{MAP}^{-1}\big)} \approx [0.6294,\,0.6231,\,0.5704]

Dibandingkan MLE pada data identik (SE(θ^MLE)[0.8309,0.8458,0.7536]SE(\hat{\boldsymbol\theta}_{MLE})\approx[0.8309,\,0.8458,\,0.7536], dihitung di #3.2.2) - SE MAP lebih kecil di ketiga dimensi (24-32% penyusutan), pola shrinkage yang sama seperti pada titik estimasi θ^\hat\theta sendiri (lihat "Analisis shrinkage" di atas): prior menyumbang informasi tambahan Σ1=I\boldsymbol\Sigma^{-1}=\mathbf I yang langsung memperkecil variance posterior di semua dimensi.

4.2.3 DEMO 3: MAP Meregularisasi Kasus Divergen

Data identik #5.2.3 (3 item, u=[1,1,1]\mathbf u=[1,1,1], prior N(0,I)N(\mathbf 0,\mathbf I)):

Item a\mathbf{a} dd uu
m2p-v001 [1.9,0.2,0.3] 0.40 1
m2p-n001 [0.3,1.9,0.4] 0.80 1
m2p-r001 [0.5,0.4,2.0] 0.30 1

Hasil final:

θ^MLE=[16.065,14.291,11.594],  θ^=24.43(divergen, lihat §1.2.3)\hat{\boldsymbol\theta}_{MLE} = [16.065,\,14.291,\,11.594],\; \|\hat\theta\|=24.43 \qquad\text{(divergen, lihat \S1.2.3)} θ^MAP=[0.4719,0.3688,0.4505],  θ^=0.75(finite, teregularisasi)\hat{\boldsymbol\theta}_{MAP} = [0.4719,\,0.3688,\,0.4505],\; \|\hat\theta\|=0.75 \qquad\text{(finite, teregularisasi)}

Iterasi 1 dengan θ^0=[0,0,0]\hat{\boldsymbol\theta}_0=[0,0,0]:

Step 1-2: Hitung ziz_i, PiP_i, QiQ_i, PiP'_i (dot product dengan [0,0,0][0,0,0] sehingga zi=diz_i=d_i, persis pola yang sama seperti #4.2.2 Iterasi 1):

Item ziz_i PiP_i QiQ_i PiP'_i
m2p-v001 0.400000 0.598688 0.401312 0.240261
m2p-n001 0.800000 0.689974 0.310026 0.213910
m2p-r001 0.300000 0.574443 0.425557 0.244458

Step 3: Kontribusi ke likelihood gradient ai(uiPi)\mathbf{a}_i(u_i-P_i) - semua residual positif karena ketiga respons benar (ui=1u_i=1 untuk semua ii), berbeda dari #4.2.2 yang polanya campuran:

Item uu (uiPi)(u_i-P_i) Kontribusi
m2p-v001 1 0.401312 [0.762493,0.080262,0.120394][0.762493,0.080262,0.120394]
m2p-n001 1 0.310026 [0.093008,0.589048,0.124010][0.093008,0.589048,0.124010]
m2p-r001 1 0.425557 [0.212779,0.170223,0.851115][0.212779,0.170223,0.851115]
logL=[1.068280,0.839534,1.095519]\nabla\log L = [1.068280,\,0.839534,\,1.095519]

Step 4: Prior gradient (pada θ^0=μ\hat{\boldsymbol\theta}_0=\boldsymbol\mu, jadi nol seperti biasa di iterasi pertama):

logf=I([0,0,0][0,0,0])=[0,0,0]\nabla\log f = -\mathbf{I}([0,0,0] - [0,0,0]) = [0,0,0]

Step 5: Posterior gradient =logL=\nabla\log L (karena θ0=μ\theta_0=\mu):

logg=[1.068280,0.839534,1.095519]\nabla\log g = [1.068280,\,0.839534,\,1.095519]

Step 6: FIM per item Ii=Piaiai\mathbf{I}_i=P'_i\,\mathbf{a}_i\mathbf{a}_i^\top, dijumlahkan atas 3 item:

IS(L)=[0.9477080.2621190.4070760.2621190.8209380.3725540.4070760.3725541.033682]\mathbf{I}_S^{(L)} = \begin{bmatrix} 0.947708 & 0.262119 & 0.407076 \\ 0.262119 & 0.820938 & 0.372554 \\ 0.407076 & 0.372554 & 1.033682 \end{bmatrix}

Step 7: Hessian MAP:

HMAP(1)=IS(L)+I=[1.9477080.2621190.4070760.2621191.8209380.3725540.4070760.3725542.033682]\mathbf{H}_{MAP}^{(1)} = \mathbf{I}_S^{(L)} + \mathbf{I} = \begin{bmatrix} 1.947708 & 0.262119 & 0.407076 \\ 0.262119 & 1.820938 & 0.372554 \\ 0.407076 & 0.372554 & 2.033682 \end{bmatrix}

Step 8: Invers Hessian dan update parameter:

HMAP1[0.5416660.0579610.0978060.0579610.5767540.0940550.0978060.0940550.528526]\mathbf{H}_{MAP}^{-1} \approx \begin{bmatrix} 0.541666 & -0.057961 & -0.097806 \\ -0.057961 & 0.576754 & -0.094055 \\ -0.097806 & -0.094055 & 0.528526 \end{bmatrix}
Δθ^(1)=HMAP1logg[0.422843,0.319247,0.395565]\Delta\hat{\boldsymbol\theta}^{(1)} = \mathbf{H}_{MAP}^{-1} \nabla\log g \approx [0.422843,\,0.319247,\,0.395565]
θ^1=[0,0,0]+[0.422843,0.319247,0.395565]=[0.422843,0.319247,0.395565],θ^10.6612\hat{\boldsymbol\theta}_1 = [0,0,0] + [0.422843,\,0.319247,\,0.395565] = [0.422843,\,0.319247,\,0.395565], \quad \|\hat{\boldsymbol\theta}_1\| \approx 0.6612

(Step sebesar ini wajar - belum ada resistansi prior sama sekali di iterasi pertama, sama seperti #4.2.2)

Iterasi 2 dengan θ^1=[0.422843,0.319247,0.395565]\hat{\boldsymbol\theta}_1 = [0.422843,\,0.319247,\,0.395565]:

Step 1-2: Hitung ziz_i, PiP_i, QiQ_i, PiP'_i baru (semua PiP_i meningkat tajam - efek "semua benar" mendorong θ\theta ke atas):

Item ziz_i PiP_i QiQ_i PiP'_i
m2p-v001 1.385920 0.799940 0.200060 0.160036
m2p-n001 1.691649 0.844441 0.155559 0.131360
m2p-r001 1.430250 0.806940 0.193060 0.155788

Step 3: Kontribusi ke likelihood gradient (residual sudah menyusut - PiP_i dekat 1, tapi tetap positif, terus mendorong θ\theta naik seperti pola MLE divergen):

Item uu (uiPi)(u_i-P_i) Kontribusi
m2p-v001 1 0.200060 [0.380114,0.040012,0.060018][0.380114,0.040012,0.060018]
m2p-n001 1 0.155559 [0.046668,0.295562,0.062224][0.046668,0.295562,0.062224]
m2p-r001 1 0.193060 [0.096530,0.077224,0.386120][0.096530,0.077224,0.386120]
logL=[0.523311,0.412798,0.508361]\nabla\log L = [0.523311,\,0.412798,\,0.508361]

Step 4: Prior gradient - di sinilah perbedaan kunci dengan MLE mulai terasa, prior mulai "menahan":

logf=I([0.422843,0.319247,0.395565][0,0,0])=[0.422843,0.319247,0.395565]\nabla\log f = -\mathbf{I}([0.422843,0.319247,0.395565] - [0,0,0]) = [-0.422843,\,-0.319247,\,-0.395565]

Step 5: Posterior gradient - suku prior yang negatif memotong sebagian besar likelihood gradient:

logg=[0.523311,0.412798,0.508361]+[0.422843,0.319247,0.395565]=[0.100469,0.093551,0.112796]\nabla\log g = [0.523311,\,0.412798,\,0.508361] + [-0.422843,\,-0.319247,\,-0.395565] = [0.100469,\,0.093551,\,0.112796]

(Turun drastis dari [1.07,0.84,1.10]\approx[1.07,0.84,1.10] di Iterasi 1 ke [0.10,0.09,0.11]\approx[0.10,0.09,0.11] - inilah "rem" yang tidak dimiliki MLE)

Step 6-8: FIM, Hessian, dan update:

IS(L,2)[0.6284990.1668470.2627710.1668470.5055390.2340660.2627710.2340660.658572],HMAP(2)[1.6284990.1668470.2627710.1668471.5055390.2340660.2627710.2340661.658572]\mathbf{I}_S^{(L,2)} \approx \begin{bmatrix} 0.628499 & 0.166847 & 0.262771 \\ 0.166847 & 0.505539 & 0.234066 \\ 0.262771 & 0.234066 & 0.658572 \end{bmatrix}, \qquad \mathbf{H}_{MAP}^{(2)} \approx \begin{bmatrix} 1.628499 & 0.166847 & 0.262771 \\ 0.166847 & 1.505539 & 0.234066 \\ 0.262771 & 0.234066 & 1.658572 \end{bmatrix}
Δθ^(2)[0.048086,0.048484,0.053547]\Delta\hat{\boldsymbol\theta}^{(2)} \approx [0.048086,\,0.048484,\,0.053547]
θ^2=[0.422843,0.319247,0.395565]+[0.048086,0.048484,0.053547][0.470929,0.367731,0.449112],θ^20.7475\hat{\boldsymbol\theta}_2 = [0.422843,0.319247,0.395565] + [0.048086,0.048484,0.053547] \approx [0.470929,\,0.367731,\,0.449112], \quad \|\hat{\boldsymbol\theta}_2\| \approx 0.7475

(Step sudah jauh lebih kecil dari Iterasi 1 \to 2 - resistansi prior semakin kuat seiring θ\theta menjauh dari μ=0\mu=0)

Iterasi 3 dengan θ^2[0.470929,0.367731,0.449112]\hat{\boldsymbol\theta}_2 \approx [0.470929,\,0.367731,\,0.449112]:

Pola yang sama berulang - likelihood gradient dan prior gradient makin dekat saling meniadakan:

logL[0.472933,0.369681,0.451753],logf=[0.470929,0.367731,0.449112]\nabla\log L \approx [0.472933,\,0.369681,\,0.451753], \qquad \nabla\log f = -[0.470929,\,0.367731,\,0.449112]
logg[0.002004,0.001950,0.002641]\nabla\log g \approx [0.002004,\,0.001950,\,0.002641]
Δθ^(3)[0.000957,0.001033,0.001370],θ^3[0.471886,0.368765,0.450482],Δθ^(3)1.96×103\Delta\hat{\boldsymbol\theta}^{(3)} \approx [0.000957,\,0.001033,\,0.001370], \qquad \hat{\boldsymbol\theta}_3 \approx [0.471886,\,0.368765,\,0.450482], \quad \|\Delta\hat{\boldsymbol\theta}^{(3)}\| \approx 1.96\times10^{-3}

Verifikasi konvergensi: 1.96×1031061.96\times10^{-3} \gg 10^{-6} \Rightarrow BELUM KONVERGEN, lanjut iterasi.

Iterasi 4 dengan θ^3[0.471886,0.368765,0.450482]\hat{\boldsymbol\theta}_3 \approx [0.471886,\,0.368765,\,0.450482]:

logg[9.4,9.5,14.5]×107,Δθ^(4)[4.3,4.9,7.8]×107\nabla\log g \approx [9.4,\,9.5,\,14.5]\times10^{-7}, \qquad \Delta\hat{\boldsymbol\theta}^{(4)} \approx [4.3,\,4.9,\,7.8]\times10^{-7}
θ^4[0.471887,0.368765,0.450483],Δθ^(4)1.01×106\hat{\boldsymbol\theta}_4 \approx [0.471887,\,0.368765,\,0.450483], \quad \|\Delta\hat{\boldsymbol\theta}^{(4)}\| \approx 1.01\times10^{-6}

Verifikasi konvergensi: 1.01×1061.01\times10^{-6} masih (tipis) di atas 10610^{-6} \Rightarrow BELUM KONVERGEN (persis di ambang batas), satu iterasi lagi.

Iterasi 5 dengan θ^4[0.471887,0.368765,0.450483]\hat{\boldsymbol\theta}_4 \approx [0.471887,\,0.368765,\,0.450483]:

Δθ^(5)2.75×1013,θ^5[0.471887,0.368765,0.450483]\Delta\hat{\boldsymbol\theta}^{(5)} \approx 2.75\times10^{-13}, \qquad \hat{\boldsymbol\theta}_5 \approx [0.471887,\,0.368765,\,0.450483]

Verifikasi konvergensi: 2.75×1013<106KONVERGEN2.75\times10^{-13} < 10^{-6} \Rightarrow \textbf{KONVERGEN} - iterasi berhenti pada iterasi ke-5.

θ^MAP=[0.4719,0.3688,0.4505],θ^MAP0.7494\hat{\boldsymbol\theta}_{MAP} = [0.4719,\,0.3688,\,0.4505], \quad \|\hat{\boldsymbol\theta}_{MAP}\| \approx 0.7494

Ringkasan mekanisme dari 5 iterasi di atas: posterior gradient menyusut jauh lebih cepat daripada likelihood gradient saja - dari [1.07,0.84,1.10]\approx[1.07,0.84,1.10] (Iterasi 1, murni likelihood karena θ0=μ\theta_0=\mu) menjadi [0.10,0.09,0.11]\approx[0.10,0.09,0.11] (Iterasi 2) lalu [0.002,0.002,0.003]\approx[0.002,0.002,0.003] (Iterasi 3), karena selisih antara likelihood gradient (yang terus positif, mendorong ke luar) dan prior gradient (yang tumbuh negatif sebanding jarak dari μ\mu, menarik ke dalam) mengecil drastis begitu keduanya saling mendekati - inilah yang membuat MAP berhenti di titik finite θ0.75\|\theta\|\approx0.75, alih-alih terus naik tanpa batas seperti MLE (θ=24.43\|\theta\|=24.43 setelah 100 iterasi, lihat #3.2.3).

MLE vs MAP pada divergen case (ringkasan kualitatif):

Aspek MLE MAP Mekanisme
Iterasi 1 θ1[0.3245,0.8942,0.6531]\theta_1\approx[0.3245,0.8942,0.6531], norm 1.15\approx 1.15 (lihat #3.2.3) θ1=[0.4228,0.3192,0.3956]\theta_1=[0.4228,0.3192,0.3956], norm 0.66\approx 0.66 (dihitung di atas) Kedua metode punya prior gradient nol di iterasi 1 (θ0=μ=0\theta_0=\mu=0), tapi FIM MAP sudah +I+\mathbf I sejak awal sehingga arah step-nya berbeda
Iterasi 2-4 θ\theta terus naik tanpa henti, norm \to puluhan θ\theta melambat cepat, norm 0.75\to 0.75 dan konvergen di iterasi ke-5 (dihitung di atas) Prior resistance Σ1(θμ)-\Sigma^{-1}(\theta-\mu) tumbuh sebanding jarak dari μ\mu, memotong likelihood gradient sampai nyaris nol
Iterasi 100 (batas maksimum) berhenti paksa oleh iteration cap, norm =24.43=24.43, tidak konvergen (lihat #3.2.3) sudah konvergen jauh sebelumnya (iterasi ke-5), norm =0.75=0.75 MLE tidak pernah mencapai kriteria Δθ<106\|\Delta\theta\|<10^{-6}; MAP mencapainya 20× lebih cepat

(Catatan koreksi: versi sebelumnya di dokumen ini menyatakan MAP baru konvergen di sekitar "iterasi 50-100" dengan norm bertahap 0.570.720.750.57\to0.72\to0.75 - klaim itu tidak akurat. Perhitungan presisi di atas menunjukkan MAP pada kasus ini konvergen jauh lebih cepat, di iterasi ke-5, norm-nya sudah 0.66120.74750.74940.6612\to0.7475\to0.7494 dan stabil sejak iterasi ke-3.)

Mekanisme regularisasi (formulasi teknis):

Pada iterasi besar di MLE dengan θ{\boldsymbol\theta} besar:

logL(θ)0+(asymptotik positif, tidak pernah melewati nol)\nabla\log L(\boldsymbol\theta) \to \mathbf 0^+ \quad \text{(asymptotik positif, tidak pernah melewati nol)}

Tidak ada suku lawan, jadi Newton step kecil tapi selalu "naik":

θ^s+1=θ^s+IS1logL(terus naik)\hat{\boldsymbol\theta}_{s+1} = \hat{\boldsymbol\theta}_s + \mathbf{I}_S^{-1}\nabla\log L \quad\text{(terus naik)}

Dengan MAP:

logg(θ)=logL(θ)Σ1(θμ)\nabla\log g(\boldsymbol\theta) = \nabla\log L(\boldsymbol\theta) - \boldsymbol\Sigma^{-1}({\boldsymbol\theta}-\boldsymbol\mu)

Suku kedua selalu negatif dan tumbuh linier seiring θ\|{\boldsymbol\theta}\| jauh dari μ{\boldsymbol\mu}:

logg(θ)logL+(linear term growing)may cross zero\nabla\log g(\boldsymbol\theta) \to \nabla\log L^+ - (\text{linear term growing}) \to \text{may cross zero}

Pada suatu θ{\boldsymbol\theta} finite, dua suku SALING MENIADAKAN dan terbentuk root interior. Mode posterior selalu finite untuk prior proper, persis seperti dijelaskan Magis & Raîche [3, p.4-5]: "The posterior density is proper" (untuk prior proper + likelihood).

4.3 Kelebihan dan Kekurangan

Kelebihan:

  • Tidak pernah divergen untuk prior proper - dibuktikan langsung pada kasus yang membuat MLE divergen di #4.2.3.
  • Landasan teori kuat (Bayes modal, Mislevy 1986 [4]; diverifikasi silang via Magis & Raîche [3, Eq.5-6, p.5]), sekaligus tetap murah komputasi - Newton-Raphson dengan FIM, sama seperti MLE, hanya menambah Σ1\boldsymbol\Sigma^{-1} ke Hessian dan suku prior ke gradien.
  • Efektif dipakai sejak round pertama CAT (start dari μ\boldsymbol\mu, bukan butuh estimasi awal arbitrer seperti MLE) - cocok untuk re-estimasi di awal tes ketika jumlah item masih sedikit.

Kekurangan:

  • Bias ke arah prior - jika μ\boldsymbol\mu tidak mencerminkan kemampuan examinee sebenarnya (mis. populasi prior salah untuk sub-grup tertentu), estimasi MAP secara sistematis tertarik ke μ\boldsymbol\mu, terbukti pada #4.2.2 (MAP \neq MLE meski data sama).
  • Memerlukan spesifikasi prior (μ\boldsymbol\mu, Σ\boldsymbol\Sigma).

5. Expected A Posteriori (EAP)

5.1 Teori

EAP menghitung rata-rata posterior - Magis & Raîche (2012), #2.2, p.5-6, Eq.10-11 [3]:

θ^EAP=+θf(θ)L(θ)dθ+f(θ)L(θ)dθ(10, p.5)\hat\theta_{EAP} = \frac{\displaystyle\int_{-\infty}^{+\infty}\theta\,f(\theta)\,L(\theta)\,d\theta}{\displaystyle\int_{-\infty}^{+\infty} f(\theta)\,L(\theta)\,d\theta} \tag{10, p.5} se(θ^EAP)=[+(θθ^EAP)2f(θ)L(θ)dθ+f(θ)L(θ)dθ]1/2(11, p.6)se(\hat\theta_{EAP}) = \left[\frac{\int_{-\infty}^{+\infty}(\theta-\hat\theta_{EAP})^2f(\theta)L(\theta)d\theta}{\int_{-\infty}^{+\infty}f(\theta)L(\theta)d\theta}\right]^{1/2} \tag{11, p.6}

Sumber asli metode ini, Bock & Mislevy (1982), "Adaptive EAP estimation of ability in a microcomputer environment", Applied Psychological Measurement 6(4):431-444 [5], tidak dapat diakses gratis untuk verifikasi halaman langsung - diverifikasi silang melalui Magis & Raîche [3] yang secara eksplisit mengaitkan Eq.10 dengan Bock & Mislevy (1982) [3, p.5]: "The third estimator is the expected a posteriori (EAP) estimator (Bock and Mislevy 1982)."

Magis & Raîche [3, p.6] menyatakan integral pada Eq.10-11 "are approximated, for instance by adaptive quadrature or numerical integration" - tanpa memberi resep pasti. Kode produksi mendekati integral dengan kuadratur Gauss-Hermite klasik (Bock & Mislevy 1982 [5]): titik grid adalah akar polinomial Hermite (fisikawan) HptsH_{pts}, dihitung via algoritma Golub-Welsch (1969) [7] - nilai eigen dari matriks Jacobi tridiagonal simetris dengan diagonal nol dan off-diagonal i/2\sqrt{i/2} - lalu digeser & diskalakan per dimensi ke prior N(μd,σd2)N(\mu_d,\sigma_d^2), dengan μd\mu_d dan σd2\sigma_d^2 diambil dari prior_mean/prior_cov_diag yang sama dipakai MAP (#4.1) - EAP dan MAP dengan demikian selalu mengintegralkan/memaksimalkan posterior yang identik, hanya beda cara meringkasnya (mean vs modus):

θq,d=μd+2σdxq,Aq=wqπ,q=0,1,,pts1\theta_{q,d} = \mu_d + \sqrt{2}\,\sigma_d\, x_q, \qquad A_q = \frac{w_q}{\sqrt\pi}, \qquad q=0,1,\dots,pts-1

dengan xqx_q = node Gauss-Hermite standar (akar HptsH_{pts}) dan wqw_q = bobot Gauss-Hermite standarnya (dari Golub-Welsch: wq=πvq[0]2w_q=\sqrt\pi\cdot v_q[0]^2, vqv_q = eigenvector ternormalisasi ke-qq). Substitusi perubahan variabel θ=μ+2σx\theta=\mu+\sqrt2\sigma x mengubah integral kontinu menjadi:

f(θ)N(θ;μ,σ2)dθ=1πf(μ+2σx)ex2dxqAqf(θq)\int f(\theta)N(\theta;\mu,\sigma^2)\,d\theta = \frac{1}{\sqrt\pi}\int f(\mu+\sqrt2\sigma x)e^{-x^2}dx \approx \sum_q A_q\, f(\theta_q)

yang eksak untuk ff polinomial hingga derajat 2pts12\cdot pts-1 - bobot AqA_q sudah mengintegralkan densitas prior Gaussian secara analitik, sehingga qAq=1\sum_q A_q = 1 tepat (tidak perlu evaluasi N(θq;μ,σ)N(\theta_q;\mu,\sigma) terpisah, dan invarian terhadap μ,σ\mu,\sigma karena murni hasil substitusi variabel). Menjumlahkan atas seluruh kombinasi grid kk-dimensi (ptskpts^k titik total):

θ^EAPgridθqL(θq)A(θq)gridL(θq)A(θq),A(θq)=d=1kAq,d\hat{\boldsymbol\theta}_{EAP} \approx \frac{\sum_{\text{grid}} \boldsymbol\theta_q \cdot L(\boldsymbol\theta_q)\cdot A(\boldsymbol\theta_q)}{\sum_{\text{grid}} L(\boldsymbol\theta_q)\cdot A(\boldsymbol\theta_q)}, \qquad A(\boldsymbol\theta_q)=\prod_{d=1}^k A_{q,d}

Pola penjumlahan multi-indeks atas grid ini sama seperti teknik kuadratur Gauss-Hermite kk-dimensi pada Chalmers (2012), "mirt: A Multidimensional Item Response Theory Package for the R Environment", JSS 48(6), Eq.6, p.5 [6]: P~=qmq1L(xΨ,K)g(Kq1)g(Kq2)g(Kqm)\tilde P_\ell=\sum_{q_m}\cdots\sum_{q_1}L_\ell(\mathbf x_\ell\mid\boldsymbol\Psi,\mathbf K)\,g(K_{q1})g(K_{q2})\cdots g(K_{qm})

  • meski Eq.6 [6] dipakai untuk mengintegralkan θ\theta sebagai nuisance parameter pada estimasi parameter item (EM), bukan untuk EAP examinee individual, teknik diskretisasi grid multi-indeksnya identik.

5.1.1 Algoritma Golub-Welsch: cara menentukan grid

Grid di EAP adalah kumpulan titik-titik diskrit sepanjang sumbu θ yang dipakai untuk mengaproksimasi integral di rumus EAP (yang tadi kita bahas) secara numerik, karena integral kontinu +\int_{-\infty}^{+\infty} tidak bisa dihitung langsung secara komputasi, harus didekati dengan penjumlahan berhingga.

Landasan teorinya adalah teorema kuadratur Gauss klasik: untuk kuadratur nn-titik terhadap fungsi bobot w(x)w(x) pada suatu domain, node yang membuat kuadratur eksak untuk polinomial berderajat setinggi mungkin (2n12n-1) adalah akar-akar polinomial ortogonal derajat-nn terhadap w(x)w(x) pada domain itu. Untuk domain (,)(-\infty,\infty) dengan w(x)=ex2w(x)=e^{-x^2}, polinomial ortogonalnya adalah polinomial Hermite (fisikawan) HnH_n - sehingga node xqx_q = akar HptsH_{pts}, persis definisi di atas. Golub & Welsch (1969) [7] menunjukkan akar-akar ini (dan bobotnya) bisa dihitung tanpa menyelesaikan polinomial secara aljabar - hanya lewat dekomposisi eigen matriks Jacobi tridiagonal simetris yang dibangun dari relasi rekursi tiga-suku (three-term recurrence) milik polinomial ortogonal itu sendiri. Contoh numerik di tiap langkah di bawah memakai n=pts=5n=pts=5, kasus yang sama dipakai di #5.2.1.

Langkah 1 - relasi rekursi menjadi matriks Jacobi. Polinomial Hermite fisikawan memenuhi rekursi Hi+1(x)=2xHi(x)2iHi1(x)H_{i+1}(x)=2xH_i(x)-2iH_{i-1}(x). Setelah dinormalisasi menjadi fungsi ortonormal φi\varphi_i (agar φiφjex2dx=δij\int\varphi_i\varphi_j\,e^{-x^2}dx=\delta_{ij}), rekursi ini menjadi simetris:

xφi(x)=i+12φi+1(x)+i2φi1(x),i=0,1,,n1x\,\varphi_i(x) = \sqrt{\tfrac{i+1}{2}}\,\varphi_{i+1}(x) + \sqrt{\tfrac{i}{2}}\,\varphi_{i-1}(x), \qquad i=0,1,\dots,n-1

artinya "kalikan dengan xx" adalah operator linear yang direpresentasikan pada basis {φ0,,φn1}\{\varphi_0,\dots,\varphi_{n-1}\} oleh matriks tridiagonal simetris JnJ_n: diagonal nol (karena ex2e^{-x^2} simetris di sekitar 0, tak ada suku aia_i yang tersisa) dan off-diagonal Ji,i+1=Ji+1,i=(i+1)/2J_{i,i+1}=J_{i+1,i}=\sqrt{(i+1)/2} untuk i=0,,n2i=0,\dots,n-2.

Contoh (n=5n=5): off-diagonal J5J_5 adalah 0.5,1,1.5,20.7071,1.0,1.2247,1.4142\sqrt{0.5},\sqrt1,\sqrt{1.5},\sqrt2\approx 0.7071,1.0,1.2247,1.4142 (untuk i=0,1,2,3i=0,1,2,3), sehingga J5=(00.70710000.707101000101.22470001.224701.41420001.41420)J_5=\begin{pmatrix}0&0.7071&0&0&0\\0.7071&0&1&0&0\\0&1&0&1.2247&0\\0&0&1.2247&0&1.4142\\0&0&0&1.4142&0\end{pmatrix}

  • persis matriks jacobi yang dibangun di gauss_hermite() (eap.rs:12-30) sebelum didekomposisi eigen.

Langkah 2 - eigenvalue JnJ_n = akar HnH_n = node kuadratur. Karena JnJ_n adalah matriks operator "kalikan dengan xx" pada basis {φi}\{\varphi_i\}, polinomial karakteristik det(xIJn)\det(xI-J_n) sebanding dengan φn(x)\varphi_n(x) (dan karenanya dengan Hn(x)H_n(x)) - sehingga eigenvalue JnJ_n adalah akar-akar HnH_n, tanpa perlu memfaktorkan polinomial derajat-nn secara eksplisit. Ini krusial untuk nn besar, yang tidak lagi punya bentuk tertutup praktis seperti kasus n=5n=5 di bawah.

Contoh (n=5n=5): dekomposisi eigen J5J_5 di atas menghasilkan node xq={0, ±0.958572, ±2.020183}x_q=\{0,\ \pm0.958572,\ \pm2.020183\}. Kebetulan untuk n=5n=5 ini bisa diverifikasi tanpa alat numerik, karena H5(x)=8x(4x420x2+15)H_5(x)=8x(4x^4-20x^2+15) tereduksi ke persamaan kuadrat pada u=x2u=x^2: 4u220u+15=0    u=20±1608    xq={0, ±0.958572, ±2.020183}4u^2-20u+15=0 \;\Rightarrow\; u=\frac{20\pm\sqrt{160}}{8} \;\Rightarrow\; x_q=\{0,\ \pm0.958572,\ \pm2.020183\}

  • identik dengan eigenvalue J5J_5. Setelah diskalakan θq=2σxq\theta_q=\sqrt2\sigma\,x_q (σ=1\sigma=1): {0,±1.355626,±2.856970}\{0,\pm1.355626,\pm2.856970\}, node yang dipakai di #5.2.1. Untuk nn berapa pun selain kasus kecil seperti ini, tidak ada bentuk tertutup lagi dan dekomposisi eigen numerik (SymmetricEigen) menjadi satu-satunya cara praktis.

Langkah 3 - eigenvector menentukan bobot. Teorema Golub-Welsch [7] menyatakan bobot kuadratur wq=μ0vq,02w_q=\mu_0\cdot v_{q,0}^2, dengan μ0=ex2dx=π\mu_0=\int e^{-x^2}dx=\sqrt\pi (momen ke-0 fungsi bobot) dan vq,0v_{q,0} komponen pertama eigenvector ternormalisasi ke-qq.

Contoh (n=5n=5): eigenvector ternormalisasi untuk tiap eigenvalue di Langkah 2 punya komponen pertama vq,0v_{q,0} berikut:

xqx_q vq,0v_{q,0} wq=πvq,02w_q=\sqrt\pi\cdot v_{q,0}^2 Aq=wq/π=vq,02A_q=w_q/\sqrt\pi=v_{q,0}^2
00 0.7302970.730297 0.9453090.945309 0.5333330.533333
±0.958572\pm0.958572 0.4712510.471251 0.3936190.393619 0.2220760.222076
±2.020183\pm2.020183 0.1060980.106098 0.0199530.019953 0.0112570.011257

(wq=π1.772454\sum w_q=\sqrt\pi\approx1.772454, Aq=1\sum A_q=1 tepat) - AqA_q inilah yang dipakai sebagai bobot kuadratur di #5.2.1.

Keterangan variabel (tambahan untuk EAP):

Simbol Arti
θ^EAP\hat\theta_{EAP} Estimasi = rata-rata (mean) posterior, bukan modus
θq\theta_q, θq\boldsymbol\theta_q Titik grid kuadratur Gauss-Hermite ke-qq (skalar/vektor), akar HptsH_{pts} digeser μd\mu_d & diskalakan 2σd\sqrt2\sigma_d per dimensi (μd,σd\mu_d,\sigma_d dari prior_mean/prior_cov_diag, sama seperti MAP)
ptspts Jumlah titik grid per dimensi (eap_quad_pts, default 21 di engine.rs:123)
AqA_q, A(θq)A(\boldsymbol\theta_q) Bobot kuadratur Gauss-Hermite (sudah termasuk densitas prior), =dAq,d=\prod_d A_{q,d}, qAq=1\sum_q A_q=1
L(θq)L(\boldsymbol\theta_q) Likelihood seluruh respons pada titik grid =iPi(θq)uiQi(θq)1ui=\prod_i P_i(\boldsymbol\theta_q)^{u_i}Q_i(\boldsymbol\theta_q)^{1-u_i}

5.1.2 Teori & Pembuktian: Standard Error (SE) untuk EAP

Berbeda dari MLE/MAP (#3.1.1/#4.1.2) yang mengandalkan aproksimasi asimtotik-normal (invers FIM/Hessian di satu titik), SE EAP dihitung langsung dari bentuk posterior aktual - definisinya sendiri adalah standard deviation posterior [3, Eq.11, p.6] (dikutip di #5.1):

se(θ^EAP)=(θθ^EAP)2f(θ)L(θ)dθf(θ)L(θ)dθ=Var[θu]se(\hat\theta_{EAP}) = \sqrt{\frac{\int(\theta-\hat\theta_{EAP})^2f(\theta)L(\theta)\,d\theta}{\int f(\theta)L(\theta)\,d\theta}} = \sqrt{\mathrm{Var}[\theta\mid\mathbf u]}
  • tidak butuh pendekatan Laplace/Gaussian di sekitar mode karena EAP mengintegralkan seluruh bentuk posterior, bukan hanya kelengkungannya di satu titik - salah satu alasan EAP "tidak pernah divergen" dan tetap stabil pada posterior yang skewed (lihat #5.3).

Pembuktian aljabar (identitas momen, bukan dikutip): variance bisa dihitung dua cara yang identik secara aljabar - bentuk tersentral (Eq.11 di atas, dipakai manual di #5.2.1 Step 6) dan bentuk momen mentah:

Var[θ]=E[(θE[θ])2]=E[θ2]2θE[θ]E[]+E[θ]2=E[θ2]2E[θ]2+E[θ]2\mathrm{Var}[\theta] = E\big[(\theta-E[\theta])^2\big] = E[\theta^2]-2\,\theta\,E[\theta]\big|_{E[\cdot]}+E[\theta]^2 = E[\theta^2]-2E[\theta]^2+E[\theta]^2 Var[θu]=E[θ2u](E[θu])2\boxed{\mathrm{Var}[\theta\mid\mathbf u] = E[\theta^2\mid\mathbf u] - \big(E[\theta\mid\mathbf u]\big)^2}

Dalam notasi kuadratur grid (sama seperti Eq.10 di #5.1):

E[θu]qθqL(θq)AqqL(θq)Aq=θ^EAP,E[θ2u]qθq2L(θq)AqqL(θq)AqE[\theta\mid\mathbf u] \approx \frac{\sum_q\theta_qL(\theta_q)A_q}{\sum_qL(\theta_q)A_q} = \hat\theta_{EAP}, \qquad E[\theta^2\mid\mathbf u] \approx \frac{\sum_q\theta_q^2L(\theta_q)A_q}{\sum_qL(\theta_q)A_q}

Verifikasi numerik identitas ini memakai angka Step 3-6 di #5.2.1 DEMO 1 (pts=5pts=5, den=qwq=0.500000den=\sum_qw_q=0.500000, θ^EAP=0.525310\hat\theta_{EAP}=0.525310):

θq\theta_q wq=LAqw_q=L\cdot A_q θq2wq\theta_q^2\,w_q
2.856970-2.856970 0.000153 8.1623×0.000153=0.0012498.1623\times0.000153=0.001249
1.355626-1.355626 0.025702 1.8377×0.025702=0.0472331.8377\times0.025702=0.047233
0.0000000.000000 0.266667 0.0000×0.266667=0.0000000.0000\times0.266667=0.000000
+1.355626+1.355626 0.196374 1.8377×0.196374=0.3609341.8377\times0.196374=0.360934
+2.856970+2.856970 0.011105 8.1623×0.011105=0.0906428.1623\times0.011105=0.090642
sum 0.500000 0.500058
E[θ2]=0.5000580.500000=1.000116,E[θ]2=0.5253102=0.275951E[\theta^2] = \frac{0.500058}{0.500000} = 1.000116, \qquad E[\theta]^2 = 0.525310^2 = 0.275951 Var[θ]=E[θ2]E[θ]2=1.0001160.275951=0.724165se(θ^EAP)=0.7241650.850979\mathrm{Var}[\theta] = E[\theta^2]-E[\theta]^2 = 1.000116 - 0.275951 = 0.724165 \qquad\Rightarrow\qquad se(\hat\theta_{EAP}) = \sqrt{0.724165} \approx 0.850979
  • identik (selisih 6.8×1056.8\times10^{-5} murni akibat pembulatan tampilan 6-desimal pada wqw_q, bukan kesalahan aljabar) dengan hasil bentuk tersentral di #5.2.1 Step 6: se(θ^EAP)=0.850911se(\hat\theta_{EAP})=0.850911 - membuktikan kedua bentuk identik secara aljabar.

Identik dengan kode produksi: eap.rs:50-110 mengakumulasi tiga penjumlah sekaligus dalam satu pass atas grid (num=θqwqnum=\sum\theta_qw_q, num2=θq2wqnum2=\sum\theta_q^2w_q, den=wqden=\sum w_q), lalu menghitung variance = num2[d]/den - mean*mean (eap.rs:103) - persis identitas momen-mentah yang dibuktikan di atas, dipilih karena efisiensi: satu pass kuadratur ptskpts^k-titik, bukan dua (pass pertama untuk θ^EAP\hat\theta_{EAP}, pass kedua untuk (θθ^EAP)2(\theta-\hat\theta_{EAP})^2 seperti bentuk tersentral manual). posterior_se yang dihasilkan (None hanya bila den terlalu kecil untuk dinormalisasi, mis. seluruh titik grid punya likelihood yang collapse ke nol) inilah yang dipakai McatEngine::compute_se (engine.rs:190-196, cabang EstimationMethod::Eap) sebagai SE EAP - tanpa jatuh ke formula gaya-MAP kecuali eap_posterior_se benar-benar None (lihat komentar engine.rs:167-172).

5.2 Perhitungan Manual

5.2.1 DEMO 1: Reproduksi 1 Dimensi (pts=5)

Item & prior:

  • Item: a=1.5,d=0,c=0a=1.5, d=0, c=0 (M2PL, diskriminasi 1.5, tanpa difficulty/guessing)
  • Respons: benar (u=1u=1)
  • Prior: π(θ)=N(0,1)\pi(\theta) = N(0,1) (normal standard, σ=1\sigma=1)
  • Grid Gauss-Hermite: pts=5pts=5 node θq=2xq=[2.856970,1.355626,0.000000,+1.355626,+2.856970]\theta_q=\sqrt2\cdot x_q = [-2.856970, -1.355626, 0.000000, +1.355626, +2.856970] (akar H5H_5 diskalakan 2σ\sqrt2\sigma, dihitung via Golub-Welsch - lihat #5.1.1)
  • Bobot kuadratur Aq=wq/π=[0.011257,0.222076,0.533333,0.222076,0.011257]A_q = w_q/\sqrt\pi = [0.011257, 0.222076, 0.533333, 0.222076, 0.011257] (dari eigenvector J5J_5 - lihat contoh Langkah 3 di #5.1.1); qAq=1.000000\sum_q A_q = 1.000000 tepat - bobot ini sudah mengintegralkan N(θ;0,1)N(\theta;0,1) secara analitik

Step 0: Turunkan grid & bobot kuadratur (n=pts=5n=pts=5, Golub-Welsch - detail teori di #5.1.1)

0a. Matriks Jacobi J5J_5 - diagonal 0, off-diagonal (i+1)/2\sqrt{(i+1)/2} untuk i=0,1,2,3i=0,1,2,3 (0.5,1,1.5,20.7071,1.0,1.2247,1.4142\sqrt{0.5},\sqrt1,\sqrt{1.5},\sqrt2\approx0.7071,1.0,1.2247,1.4142):

J5=(00.70710000.707101000101.22470001.224701.41420001.41420)J_5=\begin{pmatrix}0&0.7071&0&0&0\\0.7071&0&1&0&0\\0&1&0&1.2247&0\\0&0&1.2247&0&1.4142\\0&0&0&1.4142&0\end{pmatrix}

0b. Eigenvalue J5J_5 = node xqx_q - dekomposisi eigen matriks di atas (untuk n=5n=5 bisa diverifikasi lewat reduksi H5(x)=8x(4x420x2+15)H_5(x)=8x(4x^4-20x^2+15) ke persamaan kuadrat 4u220u+15=04u^2-20u+15=0 pada u=x2u=x^2) memberi

xq={0, ±0.958572, ±2.020183}x_q=\Big\{0,\ \pm0.958572,\ \pm2.020183\Big\}

lalu diskalakan ke domain θ\theta lewat θq=2σxq\theta_q=\sqrt2\,\sigma\,x_q (σ=1\sigma=1 dari prior N(0,1)N(0,1)):

θq=[2.856970, 1.355626, 0.000000, +1.355626, +2.856970]\theta_q=[-2.856970,\ -1.355626,\ 0.000000,\ +1.355626,\ +2.856970]

0c. Eigenvector J5J_5 = bobot wqw_q, lalu normalisasi jadi AqA_q - komponen pertama vq,0v_{q,0} dari eigenvector ternormalisasi tiap eigenvalue di atas:

xqx_q vq,0v_{q,0} wq=πvq,02w_q=\sqrt\pi\cdot v_{q,0}^2 Aq=wq/π=vq,02A_q=w_q/\sqrt\pi=v_{q,0}^2
00 0.7302970.730297 0.9453090.945309 0.5333330.533333
±0.958572\pm0.958572 0.4712510.471251 0.3936190.393619 0.2220760.222076
±2.020183\pm2.020183 0.1060980.106098 0.0199530.019953 0.0112570.011257

(wq=π1.772454\sum w_q=\sqrt\pi\approx1.772454; Aq=1\sum A_q=1 tepat - lolos cek normalisasi)

Menggabungkan 0b & 0c menurut urutan θq\theta_q, inilah grid & bobot yang dipakai di Step 1-4:

θq\theta_q 2.856970-2.856970 1.355626-1.355626 0.0000000.000000 +1.355626+1.355626 +2.856970+2.856970
AqA_q 0.0112570.011257 0.2220760.222076 0.5333330.533333 0.2220760.222076 0.0112570.011257

Step 1: Hitung likelihood L(θq)=P(θq)uQ(θq)1uL(\theta_q) = P(\theta_q)^u \cdot Q(\theta_q)^{1-u} untuk setiap titik grid

Dengan zq=aθq+d=1.5θq+0=1.5θqz_q = a\theta_q + d = 1.5\theta_q + 0 = 1.5\theta_q dan P(θq)=σ(zq)=11+e1.5θqP(\theta_q) = \sigma(z_q) = \frac{1}{1+e^{-1.5\theta_q}}:

θq\theta_q zq=1.5θqz_q = 1.5\theta_q P(θq)=σ(zq)P(\theta_q) = \sigma(z_q) L(θq)=P1=PL(\theta_q) = P^1 = P
2.856970-2.856970 4.285455-4.285455 0.0135800.013580 0.013580
1.355626-1.355626 2.033439-2.033439 0.1157360.115736 0.115736
0.0000000.000000 0.0000000.000000 0.5000000.500000 0.500000
+1.355626+1.355626 +2.033439+2.033439 0.8842640.884264 0.884264
+2.856970+2.856970 +4.285455+4.285455 0.9864200.986420 0.986420

Step 2: Bobot kuadratur AqA_q (sudah menggantikan evaluasi densitas prior terpisah)

Karena node/bobot Gauss-Hermite dibangun tepat untuk mengintegralkan terhadap ex2e^{-x^2} - yang setelah substitusi θ=2σx\theta=\sqrt2\sigma x menjadi N(θ;0,σ2)N(\theta;0,\sigma^2) - AqA_q sudah merepresentasikan "densitas prior ×\times lebar kuadratur" tanpa perlu evaluasi N(θq;0,1)N(\theta_q;0,1) secara terpisah (lihat #5.1):

θq\theta_q Aq=wq/πA_q = w_q/\sqrt\pi
2.856970-2.856970 0.011257
1.355626-1.355626 0.222076
0.0000000.000000 0.533333
+1.355626+1.355626 0.222076
+2.856970+2.856970 0.011257

Step 3: Hitung weight wq=L(θq)×Aqw_q = L(\theta_q) \times A_q untuk setiap titik

θq\theta_q L(θq)L(\theta_q) AqA_q wq=L×Aw_q = L \times A
2.856970-2.856970 0.013580 0.011257 0.013580×0.011257=0.013580 \times 0.011257 = 0.000153
1.355626-1.355626 0.115736 0.222076 0.115736×0.222076=0.115736 \times 0.222076 = 0.025702
0.0000000.000000 0.500000 0.533333 0.500000×0.533333=0.500000 \times 0.533333 = 0.266667
+1.355626+1.355626 0.884264 0.222076 0.884264×0.222076=0.884264 \times 0.222076 = 0.196374
+2.856970+2.856970 0.986420 0.011257 0.986420×0.011257=0.986420 \times 0.011257 = 0.011105
sum 0.500000

(Total tepat 0.5000000.500000 - bukan kebetulan: dengan node/bobot Gauss-Hermite simetris dan P(θ)=1P(θ)=Q(θ)P(-\theta)=1-P(\theta)=Q(\theta) (simetri fungsi logistik), qAqP(θq)\sum_q A_q P(\theta_q) selalu sama persis dengan qAqQ(θq)\sum_q A_q Q(\theta_q), dan keduanya berjumlah qAq=1\sum_q A_q=1 - jadi masing-masing tepat 0.50.5, terlepas dari nilai aa. Ini konsekuensi struktural dari kuadratur yang genuinely ternormalisasi, berbeda dari grid berjarak-sama yang totalnya sembarang.)

Step 4: Hitung numerator θqwq\sum \theta_q w_q (momen posterior pertama)

θq\theta_q wqw_q θq×wq\theta_q \times w_q
2.856970-2.856970 0.000153 2.856970×0.000153=0.000437-2.856970 \times 0.000153 = -0.000437
1.355626-1.355626 0.025702 1.355626×0.025702=0.034843-1.355626 \times 0.025702 = -0.034843
0.0000000.000000 0.266667 0.000000×0.266667=0.0000000.000000 \times 0.266667 = 0.000000
+1.355626+1.355626 0.196374 +1.355626×0.196374=+0.266209+1.355626 \times 0.196374 = +0.266209
+2.856970+2.856970 0.011105 +2.856970×0.011105=+0.031725+2.856970 \times 0.011105 = +0.031725
sum 0.262655

Step 5: Hitung EAP (rata-rata posterior)

θ^EAP=qθqwqqwq=0.2626550.500000=0.525310\hat\theta_{EAP} = \frac{\sum_q \theta_q w_q}{\sum_q w_q} = \frac{0.262655}{0.500000} = 0.525310

Step 6: Hitung standard error (opsional, dari Eq.11 #3.1)

Hitung momen kedua:

θq\theta_q wqw_q (θqθ^EAP)2×wq(\theta_q - \hat\theta_{EAP})^2 \times w_q
2.856970-2.856970 0.000153 (2.8569700.5253)2×0.000153=11.4398×0.000153=0.001749(-2.856970 - 0.5253)^2 \times 0.000153 = 11.4398 \times 0.000153 = 0.001749
1.355626-1.355626 0.025702 (1.3556260.5253)2×0.025702=3.5379×0.025702=0.090933(-1.355626 - 0.5253)^2 \times 0.025702 = 3.5379 \times 0.025702 = 0.090933
0.0000000.000000 0.266667 (0.0000000.5253)2×0.266667=0.2760×0.266667=0.073587(0.000000 - 0.5253)^2 \times 0.266667 = 0.2760 \times 0.266667 = 0.073587
+1.355626+1.355626 0.196374 (+1.3556260.5253)2×0.196374=0.6894×0.196374=0.135385(+1.355626 - 0.5253)^2 \times 0.196374 = 0.6894 \times 0.196374 = 0.135385
+2.856970+2.856970 0.011105 (+2.8569700.5253)2×0.011105=5.4366×0.011105=0.060371(+2.856970 - 0.5253)^2 \times 0.011105 = 5.4366 \times 0.011105 = 0.060371
sum 0.362025
se(θ^EAP)=0.3620250.500000=0.724049=0.850911se(\hat\theta_{EAP}) = \sqrt{\frac{0.362025}{0.500000}} = \sqrt{0.724049} = 0.850911

Simetri mean prior (0) ditambah likelihood yang lebih terkonsentrasi di dekat 0 menghasilkan EAP yang moderat (0.5250.525) dibanding MLE yang divergen atau MAP yang shrink lebih dalam untuk kasus serupa.

5.2.2 DEMO 2: Multidimensional (k=3), 7 item, grid 5^3=125 titik

Bank item & respons identik #5.2.2/#4.2.2. Prior π(θ)=N(0,I)\pi(\boldsymbol\theta)=N(\mathbf 0,\mathbf I) (multivariate normal dengan mean [0,0,0][0,0,0] dan variance [1,1,1][1,1,1]).

Grid Gauss-Hermite per dimensi: pts=5pts=5 node =[2.856970,1.355626,0.000000,+1.355626,+2.856970]= [-2.856970, -1.355626, 0.000000, +1.355626, +2.856970], bobot Aq=[0.011257,0.222076,0.533333,0.222076,0.011257]A_q = [0.011257, 0.222076, 0.533333, 0.222076, 0.011257], total kombinasi 53=1255^3=125 titik.

Step 1: Diskripsi grid & struktur perhitungan

Integrasi EAP atas posterior multidimensi dilakukan via grid rectangular (Cartesian product) node Gauss-Hermite:

θ^EAP=q1=15q2=15q3=15θqL(θq)A(θq)q1=15q2=15q3=15L(θq)A(θq)\hat{\boldsymbol\theta}_{EAP} = \frac{\sum_{q_1=1}^{5}\sum_{q_2=1}^{5}\sum_{q_3=1}^{5} \boldsymbol\theta_q L(\boldsymbol\theta_q)A(\boldsymbol\theta_q)}{\sum_{q_1=1}^{5}\sum_{q_2=1}^{5}\sum_{q_3=1}^{5} L(\boldsymbol\theta_q)A(\boldsymbol\theta_q)}

Karena prior multivariate normal dengan Σ=I\boldsymbol\Sigma=\mathbf{I} (diagonal & independen), bobot kuadratur juga terfaktorisasi per dimensi:

A(θq)=A(θq,1)A(θq,2)A(θq,3)A(\boldsymbol\theta_q) = A(\theta_{q,1})A(\theta_{q,2})A(\theta_{q,3})

Bobot AqA_q per dimensi dapat di-cache sebelum grid kombinasi - menghemat perhitungan.

Kenapa hasilnya 125? Tiap dimensi (θ1,θ2,θ3\theta_1,\theta_2,\theta_3) punya 5 pilihan titik yang sama persis (5 node dari #5.2.1). Untuk bikin 1 titik grid 3-dimensi, kita ambil 1 pilihan dari dimensi-1, 1 pilihan dari dimensi-2, dan 1 pilihan dari dimensi-3 - dan ketiganya bebas, tidak saling bergantung.

Analoginya: bayangkan memilih baju (5 pilihan warna), celana (5 pilihan model), dan sepatu (5 pilihan jenis) untuk bikin 1 "outfit". Tiap kombinasi baju+celana+sepatu adalah outfit yang berbeda. Karena tiap potongan pakaian dipilih bebas dari yang lain, total outfit = 5×5×5=1255\times5\times5=125 - bukan 5+5+5=155+5+5=15 (itu kalau cuma pilih salah satu jenis pakaian saja, bukan gabungan ketiganya).

Sama persis logikanya di sini: 5 pilihan untuk θ1\theta_1, dikali 5 pilihan untuk θ2\theta_2, dikali 5 pilihan untuk θ3\theta_3 = 125 titik grid total. Ketiga dimensi memakai daftar 5 node yang identik (node index 1,2,3,4,51,2,3,4,5): nodes=[2.856970, 1.355626, 0.000000, +1.355626, +2.856970]\text{nodes} = [-2.856970,\ -1.355626,\ 0.000000,\ +1.355626,\ +2.856970] Contoh sebagian kecil (bukan semua 125) untuk menunjukkan pola indeks (q1,q2,q3)[nodes[q1],nodes[q2],nodes[q3]](q_1,q_2,q_3)\to[\text{nodes}[q_1],\text{nodes}[q_2],\text{nodes}[q_3]]:

(q1,q2,q3)(q_1,q_2,q_3) θq\boldsymbol\theta_q Posisi
(1,1,1)(1,1,1) [2.857,2.857,2.857][-2.857,-2.857,-2.857] pojok kubus (node terkecil di ketiga dimensi)
(5,5,5)(5,5,5) [+2.857,+2.857,+2.857][+2.857,+2.857,+2.857] pojok kubus berlawanan
(3,3,3)(3,3,3) [0,0,0][0,0,0] pusat grid (node tengah di ketiga dimensi)
(2,3,3)(2,3,3) [1.356,0,0][-1.356,0,0] dekat pusat, bergeser hanya di dimensi-1
(5,1,5)(5,1,5) [+2.857,2.857,+2.857][+2.857,-2.857,+2.857] salah satu pojok campuran tanda

Untuk melihat/mengecek keseluruhan 125 kombinasi, cukup jalankan 3 loop bersarang for q1 in 0..5 { for q2 in 0..5 { for q3 in 0..5 { ... } } } - inilah yang dilakukan kode produksi di eap.rs (loop atas ptskpts^k titik). Tabel Step 2 di bawah hanya mengambil 12 dari 125 titik ini sebagai sampel ilustrasi.

Step 2: Sampel titik grid (12 dari 125 titik, untuk ilustrasi)

θq=[θq,1,θq,2,θq,3]\boldsymbol\theta_q = [\theta_{q,1}, \theta_{q,2}, \theta_{q,3}] L(θq)L(\boldsymbol\theta_q) A(θq)=kAq,kA(\boldsymbol\theta_q) = \prod_k A_{q,k} wq=L×Aw_q = L \times A Keterangan
[2.857,2.857,2.857][-2.857,-2.857,-2.857] 0\approx 0 0.0000010.000001 0\approx 0 Sudut ekstrem
[2.857,1.356,0][-2.857,-1.356,0] 0.0000100.000010 0.0013330.001333 0\approx 0 Edge
[1.356,1.356,1.356][-1.356,-1.356,-1.356] 0.0000040.000004 0.0109520.010952 0\approx 0 Sudut sedang
[1.356,0,0][-1.356,0,0] 0.0019190.001919 0.0631680.063168 0.00012120
[0,0,0][0,0,0] 0.007464 0.151704 0.00113237 Pusat grid (mode-like)
[0,0,+1.356][0,0,+1.356] 0.001583 0.063168 0.00010001
[+1.356,0,0][+1.356,0,0] 0.001951 0.063168 0.00012323
[+1.356,+1.356,+1.356][+1.356,+1.356,+1.356] 0.000006 0.010952 0\approx 0 Sudut sedang
[+1.356,+1.356,0][+1.356,+1.356,0] 0.000101 0.026303 0.00000265
[+2.857,2.857,+2.857][+2.857,-2.857,+2.857] 0\approx 0 0.0000010.000001 0\approx 0 Sudut ekstrem
[+2.857,+2.857,2.857][+2.857,+2.857,-2.857] 0\approx 0 0.0000010.000001 0\approx 0 Sudut ekstrem
[+2.857,+2.857,+2.857][+2.857,+2.857,+2.857] 0\approx 0 0.0000010.000001 0\approx 0 Sudut ekstrem
113 titik lain .. .. .. Dikerjakan via loop

Step 3: Agregasi keseluruhan 125 titik (dihitung via loop, hasil final):

Denominator (integral posterior): 125 titikwq=q1q2q3L(θq)A(θq)=0.00219048\sum_{\text{125 titik}} w_q = \sum_{q_1}\sum_{q_2}\sum_{q_3} L(\boldsymbol\theta_q)A(\boldsymbol\theta_q) = 0.00219048

Numerator (weighted mean): 125 titikθqwq=[0.00006670.00066050.0002937]\sum_{\text{125 titik}} \boldsymbol\theta_q w_q = \begin{bmatrix} 0.0000667 \\ -0.0006605 \\ 0.0002937 \end{bmatrix}

(Pusat grid di [0,0,0] mendominasi bobot karena likelihood terkuat di dekat sana, dan prior simetris)

Step 4: Hitung EAP dengan grid pts=5:

θ^EAP(pts=5)=[0.0000667,0.0006605,0.0002937]0.00219048=[0.03047,0.30155,0.13408]\hat{\boldsymbol\theta}_{EAP}^{(pts=5)} = \frac{[0.0000667, -0.0006605, 0.0002937]}{0.00219048} = [0.03047, -0.30155, 0.13408]

Variance per dimensi (untuk SE):

Vark=q(θq,kθ^EAP,k)2wqqwq\text{Var}_k = \frac{\sum_q (\theta_{q,k} - \hat\theta_{EAP,k})^2 w_q}{\sum_q w_q}

Dilakukan per dimensi dengan tabel momen kedua, hasil (dari API): se(θ^EAP(pts=5))[0.6106,0.6635,0.5311]se(\hat{\boldsymbol\theta}_{EAP}^{(pts=5)}) \approx [0.6106, 0.6635, 0.5311]

Step 5: Ulangi dengan grid lebih halus pts=21

Grid Gauss-Hermite per dimensi: 21 node (akar H21H_{21}, diskalakan 2σ\sqrt2\sigma) - tidak berjarak sama seperti grid linear, node lebih rapat di dekat 0 dan merenggang menuju ekor.

Total kombinasi: 213=926121^3 = 9261 titik.

Integrasi dilakukan dengan prosedur identik (tetapi 9261 kali lebih banyak perhitungan):

9261 titikwq0.00204330\sum_{\text{9261 titik}} w_q \approx 0.00204330
9261 titikθqwq[0.0000660,0.0007440,0.0003728]\sum_{\text{9261 titik}} \boldsymbol\theta_q w_q \approx [0.0000660, -0.0007440, 0.0003728]
θ^EAP(pts=21)=[0.0000660,0.0007440,0.0003728]0.00204330=[0.03229,0.36412,0.18244]\hat{\boldsymbol\theta}_{EAP}^{(pts=21)} = \frac{[0.0000660, -0.0007440, 0.0003728]}{0.00204330} = [0.03229, -0.36412, 0.18244]

SE per dimensi (dari API): se(θ^EAP(pts=21))[0.6751,0.6679,0.6099]se(\hat{\boldsymbol\theta}_{EAP}^{(pts=21)}) \approx [0.6751, 0.6679, 0.6099]

Perbandingan 3 metode pada data identik:

Metode θ^verbal\hat\theta_{verbal} θ^numeric\hat\theta_{numeric} θ^reasoning\hat\theta_{reasoning}
MLE (no prior) 0.0380 -0.6537 0.2966
MAP (Σ=I\Sigma=I) 0.0105 -0.3656 0.1340
EAP (pts=5pts=5, grid kasar) 0.0305 -0.3016 0.1341
EAP (pts=21pts=21) 0.0323 -0.3641 0.1824

Analisis konvergensi EAP → MAP:

  • Grid pts=5pts=5 (125 titik): numeric 0.3016-0.3016 mendekati MAP 0.3656-0.3656 (selisih 17.5%)
  • Grid pts=21pts=21 (9261 titik): numeric 0.3641-0.3641 sangat dekat ke MAP 0.3656-0.3656 (selisih 0.4%)

Sesuai teori: EAP dan MAP mengintegralkan/memaksimalkan posterior yang sama g(θ)=f(θ)L(θ)g(\boldsymbol\theta) = f(\boldsymbol\theta)L(\boldsymbol\theta), dan estimasi EAP konvergen ke MAP seiring resolusi grid ptspts\to\infty (integral numerik \to integral kontinyu). Karena kuadratur Gauss-Hermite eksak untuk fungsi polinomial hingga derajat 2pts12\cdot pts-1, konvergensinya jauh lebih cepat per titik dibanding grid linear naif - selisih pts=5pts=5 terhadap MAP di sini (17.5%) sudah jauh lebih kecil daripada yang didapat grid berjarak-sama pada resolusi setara.

Versi sederhana: MAP mencari puncak kurva posterior, EAP menghitung rata-rata kurva posterior yang sama. Kalau kurvanya berbentuk lonceng simetris, puncak dan rata-rata letaknya hampir sama - makanya EAP ≈ MAP. EAP sendiri dihitung pakai grid (sampel titik), jadi bukan integral asli yang mulus - makin banyak titik grid (ptspts makin besar), makin dekat hasil EAP ke integral "sebenarnya", dan makin dekat pula ke MAP. Buktinya di angka di atas: pts=5pts=5 bedanya 17.5% dari MAP, pts=21pts=21 tinggal 0.4%. Gauss-Hermite juga irit - beda dari grid biasa (jarak sama rata), sedikit titik saja sudah cukup akurat.

Grid pts=5pts=5 sengaja dibuat kasar di atas supaya semua 125 titik bisa ditampilkan & dipahami secara manual; produksi menggunakan pts=21 untuk presisi yang wajar.

5.2.3 DEMO 3: EAP Tidak Pernah Divergen

Data identik #5.2.3/#4.2.3 (3 item, u=[1,1,1]\mathbf u=[1,1,1], prior N(0,I)N(\mathbf 0,\mathbf I), pts=21pts=21):

Item a\mathbf{a} dd uu
m2p-v001 [1.9,0.2,0.3] 0.40 1
m2p-n001 [0.3,1.9,0.4] 0.80 1
m2p-r001 [0.5,0.4,2.0] 0.30 1

Hasil final:

Metode θ^\hat{\boldsymbol\theta} θ^\|\hat\theta\| Status
MLE [16.065,14.291,11.594][16.065,\,14.291,\,11.594] 24.43 Divergen (stop after 100 iter)
MAP [0.472,0.369,0.450][0.472,\,0.369,\,0.450] 0.75 Finite (regularized by prior)
EAP [0.584,0.480,0.564][0.584,\,0.480,\,0.564] 0.94 Finite by construction

Penjelasan mengapa EAP tetap finite:

Berbeda dengan MAP yang mengatasi divergen melalui mekanisme regularisasi dinamis (prior gradient menarik balik), EAP tetap finite untuk alasan struktural:

  1. Integral atas domain terbatas: Eq.10 #3.1 dihitung hanya atas grid Gauss-Hermite ptspts titik per dimensi - domainnya adalah rentang akar HptsH_{pts} (diskalakan 2σ\sqrt2\sigma), yang untuk pts=21pts=21 berarti θq7.849|\theta_q| \leq 7.849 per dimensi (bukan ±3σ\pm3\sigma tetap - rentang node terluar Gauss-Hermite melebar seiring ptspts membesar, tapi tetap terbatas untuk ptspts berapa pun)

  2. Pembilang & penyebut selalu finite:

    • Penyebut: qwq=qL(θq)A(θq)\sum_q w_q = \sum_q L(\boldsymbol\theta_q)A(\boldsymbol\theta_q) adalah jumlah terbatas nilai-nilai finite
    • Pembilang: qθqwq\sum_q \boldsymbol\theta_q w_q juga terbatas karena θq7.849|\boldsymbol\theta_q| \leq 7.849 di grid (pts=21pts=21), dan bobot wqw_q terbatas
  3. Tidak ada iterasi divergen: Tidak seperti MLE/MAP yang involve Newton-Raphson iteratif dengan potensi loop tak-terbatas, EAP adalah komputasi satu-pass (sekali jalan grid, langsung dapat hasil)

Step-by-step komputasi EAP untuk kasus all-correct:

Step 1: Evaluasi likelihood di titik ilustrasi (bukan node Gauss-Hermite literal, dipilih sebagai angka bulat untuk menunjukkan pola secara jelas)

θq\boldsymbol\theta_q z1=a1θq+d1z_1=\mathbf{a}_1\cdot\boldsymbol\theta_q+d_1 z2=a2θq+d2z_2=\mathbf{a}_2\cdot\boldsymbol\theta_q+d_2 z3=a3θq+d3z_3=\mathbf{a}_3\cdot\boldsymbol\theta_q+d_3 L(θq)=PiuiQi1uiL(\boldsymbol\theta_q)=\prod P_i^{u_i}Q_i^{1-u_i}
[0,0,0][0,0,0] 0+0.40=0.400+0.40=0.40 0+0.80=0.800+0.80=0.80 0+0.30=0.300+0.30=0.30 0.5987×0.6900×0.5744=0.23740.5987 \times 0.6900 \times 0.5744 = 0.2374
[1,1,1][1,1,1] 1.9+0.2+0.3+0.40=2.801.9+0.2+0.3+0.40=2.80 0.3+1.9+0.4+0.80=3.400.3+1.9+0.4+0.80=3.40 0.5+0.4+2.0+0.30=3.200.5+0.4+2.0+0.30=3.20 σ(2.80)×σ(3.40)×σ(3.20)=0.9436×0.9669×0.9608=0.8786\sigma(2.80) \times \sigma(3.40) \times \sigma(3.20) = 0.9436 \times 0.9669 \times 0.9608 = 0.8786
[2,2,2][2,2,2] 3.8+0.4+0.6+0.40=5.203.8+0.4+0.6+0.40=5.20 0.6+3.8+0.8+0.80=6.000.6+3.8+0.8+0.80=6.00 1.0+0.8+4.0+0.30=6.101.0+0.8+4.0+0.30=6.10 0.9945×0.9975×0.9978=0.98980.9945 \times 0.9975 \times 0.9978 = 0.9898
[3,3,3][3,3,3] 5.7+0.6+0.9+0.40=7.605.7+0.6+0.9+0.40=7.60 0.9+5.7+1.2+0.80=8.600.9+5.7+1.2+0.80=8.60 1.5+1.2+6.0+0.30=9.001.5+1.2+6.0+0.30=9.00 0.9995×0.9998×0.9999=0.99920.9995 \times 0.9998 \times 0.9999 = 0.9992

Perhatian: Semua likelihood positif dan terbatas - tidak ada yang eksplosi menuju infinity

Step 2: Evaluasi prior di grid (multivariate normal N(0,I)N(\mathbf 0,\mathbf I))

Prior presisi (independent per dimensi):

θq\boldsymbol\theta_q π(θq)=kπ(θq,k)\pi(\boldsymbol\theta_q) = \prod_k \pi(\theta_{q,k}) Bobot
[0,0,0][0,0,0] 0.39893=0.06350.3989^3 = 0.0635 Tertinggi (di mean prior)
[1,1,1][1,1,1] (0.3989×e0.5)3=(0.2420)3=0.0142(0.3989 \times e^{-0.5})^3 = (0.2420)^3 = 0.0142 Sedang
[2,2,2][2,2,2] (0.3989×e2)3=(0.0540)3=0.000157(0.3989 \times e^{-2})^3 = (0.0540)^3 = 0.000157 Kecil
[3,3,3][3,3,3] (0.3989×e4.5)3=(0.0066)3=0.000000287(0.3989 \times e^{-4.5})^3 = (0.0066)^3 = 0.000000287 Sangat kecil

Step 3: Hitung weight untuk setiap titik wq=L(θq)×π(θq)w_q = L(\boldsymbol\theta_q) \times \pi(\boldsymbol\theta_q)

θq\boldsymbol\theta_q L(θq)L(\boldsymbol\theta_q) π(θq)\pi(\boldsymbol\theta_q) wqw_q
[0,0,0][0,0,0] 0.2374 0.0635 0.015070.01507
[1,1,1][1,1,1] 0.8786 0.0142 0.012470.01247
[2,2,2][2,2,2] 0.9898 0.000157 0.0001550.000155
[3,3,3][3,3,3] 0.9992 0.000000287 0.0000002870.000000287
116 titik lain (kombinasi campuran di grid 21×21×21) ..

Pola penting: Meskipun likelihood meningkat dengan θ\|\boldsymbol\theta\| (semua benar → push ke infinity di MLE), prior bobot menurun eksponensial. Hasil: produk keduanya (posterior weight) mencapai peak di titik intermediate, bukan di infinity.

Step 4: Agregasi integral untuk semua 21³=9261 titik grid

Denominator (normalisasi posterior): Z=q=19261wq=0.244901(terbatas dan well-defined)Z = \sum_{q=1}^{9261} w_q = 0.244901 \quad \text{(terbatas dan well-defined)}

Numerator (weighted mean): q=19261θqwq=[0.142995,0.117633,0.138192]\sum_{q=1}^{9261} \boldsymbol\theta_q w_q = [0.142995, 0.117633, 0.138192]

(Lebih rendah dari MAP karena likelihood penuh, tapi prior "tarik balik" juga kuat)

Step 5: Hitung EAP

θ^EAP=[0.142995,0.117633,0.138192]0.244901=[0.5839,0.4803,0.5643]\hat{\boldsymbol\theta}_{EAP} = \frac{[0.142995, 0.117633, 0.138192]}{0.244901} = [0.5839, 0.4803, 0.5643]

SE per dimensi (variance posterior):

Vark=q(θq,kθ^EAP,k)2wqZ\text{Var}_k = \frac{\sum_q (\theta_{q,k} - \hat\theta_{EAP,k})^2 w_q}{Z}

Dilakukan dengan tabel momen kedua pada 9261 titik, hasil: se[0.8320,0.8521,0.8331]se \approx [0.8320, 0.8521, 0.8331]

Perbandingan tiga metode pada all-correct:

Aspek MLE MAP EAP
Hasil [16.07,14.29,11.59][16.07, 14.29, 11.59] [0.472,0.369,0.450][0.472, 0.369, 0.450] [0.584,0.480,0.564][0.584, 0.480, 0.564]
Norm 24.43 0.75 0.94
Mekanisme finite DIVERGEN Regularisasi dinamis (prior gradient) Struktur integral (domain terbatas)
SE N/A (divergen) [0.4,0.4,0.4]\approx [0.4, 0.4, 0.4] [0.83,0.85,0.83][0.83, 0.85, 0.83]
Interpretasi Tidak berguna Over-regularized? Moderat, interpretabel

Kesimpulan structural:

EAP finite bukan karena prior memberi penalti (seperti MAP), melainkan karena integral numerik atas domain terbatas adalah operasi yang fundamentally terbatas. Posterior dihitung sebagai:

g(θ)=L(θ)×π(θ)g(\boldsymbol\theta) = L(\boldsymbol\theta) \times \pi(\boldsymbol\theta)

Walaupun LL bisa naik monoton menuju 1 (pola semua-benar), prior π\pi menurun eksponensial menjauh dari mean μ\mu. Hasil perkalian adalah distribusi yang terkonsentrasi. Integrasi atas grid terbatas [3σ,3σ]k[-3\sigma,3\sigma]^k otomatis menghasilkan integral yang finite dan well-defined untuk pola respons apa pun - tidak ada kasus patologi seperti divergen MLE atau over-shrinkage MAP.

5.3 Kelebihan dan Kekurangan

Kelebihan:

  • Tidak pernah divergen, untuk alasan yang lebih fundamental dari MAP: bukan hasil regularisasi optimasi, melainkan sifat integral pada domain terbatas - dibuktikan di #5.2.3.

  • Tidak butuh titik awal/iterasi Newton-Raphson sama sekali (tidak ada risiko konvergen ke maksimum lokal yang salah, tidak seperti MLE/MAP) - estimasi dihitung langsung dari satu kali penjumlahan grid.

  • Kuadratur Gauss-Hermite eksak untuk fungsi polinomial hingga derajat 2pts12\cdot pts-1 (Golub & Welsch 1969 [7], detail algoritma di #5.1), sehingga bobotnya AqA_q sudah mengintegralkan densitas prior Gaussian secara analitik dan otomatis ternormalisasi (qAq=1\sum_q A_q=1 tepat - dibuktikan di #5.2.1 Step 3).

    Versi paling sederhana: bayangkan mau menimbang berapa "berat" tiap titik grid dalam kurva lonceng (prior). Cara naif: pakai grid jarak-sama rata terus dikira-kira beratnya - butuh banyak sekali titik biar hasilnya halus dan akurat. Gauss-Hermite lebih pintar: posisi & berat titiknya sudah dihitung lewat rumus matematis khusus yang "cocok" dengan bentuk kurva lonceng itu, jadi:

    • Otomatis pas - total semua berat pasti tepat 1 (100%), tanpa perlu dicek/dikoreksi lagi.
    • Hemat titik - 5 titik saja lewat Gauss-Hermite bisa seakurat puluhan/ratusan titik lewat grid biasa.

    Grid biasa itu seperti menimbang badan dengan banyak titik sample sembarang lalu dirata-rata (butuh banyak sample biar akurat). Gauss-Hermite itu seperti sudah tahu persis di titik mana harus menimbang dan berapa bobot masing-masing, supaya hasilnya presisi walau sample-nya sedikit.

    "Grid biasa" (atau disebut juga grid linear/naif) itu cara paling sederhana bikin titik-titik sampel: titik-titiknya berjarak sama rata, seperti mistar/penggaris. Contoh: kalau mau bikin 5 titik grid di rentang [3,3][-3, 3], grid biasa tinggal bagi rata: 3,1.5,0,1.5,3-3, -1.5, 0, 1.5, 3 Jaraknya sama semua (1.5), dan bobot tiap titik juga biasanya disamakan

Kekurangan:

  • Akurasi tetap bergantung pada resolusi grid ptspts (meski konvergensinya lebih cepat per titik dari grid linear) - dibuktikan di #5.2.2: pts=5pts=5 vs pts=21pts=21 menghasilkan estimasi yang masih berbeda pada dimensi reasoning (0.1340.134 vs 0.1820.182). Biaya komputasi tumbuh ptskpts^k - untuk k=3k=3, pts=21pts=21 berarti 92619261 evaluasi likelihood per estimasi, jauh lebih mahal dari MLE/MAP (~3-5 iterasi Newton).

  • Node/bobot tidak berbentuk tertutup - tidak ada rumus aljabar sederhana yang langsung menghasilkan posisi titik grid dan bobotnya (beda dengan grid berjarak sama, yang tinggal dihitung dari pembagian rentang secara langsung). Untuk ptspts berapa pun selain kasus kecil tertentu, satu-satunya cara praktis menghitungnya adalah lewat dekomposisi nilai eigen (algoritma Golub-Welsch [7]) - proses numerik yang lebih rumit dan sedikit lebih mahal dibanding sekadar membuat titik-titik berjarak sama. Perhitungan ini diulang setiap kali estimasi EAP dijalankan (meski biayanya kecil untuk ptspts yang tidak terlalu besar, dan hasilnya sebenarnya bisa disimpan untuk dipakai ulang selama ptspts dan bentuk prior tidak berubah).

    Kalau grid biasa (jarak sama rata), posisi titiknya gampang dihitung sendiri pakai kalkulator - tinggal bagi rentang jadi beberapa bagian sama besar. Grid Gauss-Hermite tidak bisa dihitung sesimpel itu - tidak ada rumus langsung "masukkan angka, keluar posisi titik". Satu-satunya cara adalah lewat proses numerik yang cukup rumit (algoritma Golub-Welsch, sejenis proses aljabar linear/eigenvalue) yang dikerjakan komputer. Ini bukan masalah besar karena prosesnya cepat & murah, tapi maksudnya: setiap kali mau menjalankan EAP, komputer harus "menghitung ulang" posisi & bobot titik grid ini lebih dulu (bukan tinggal comot dari rumus) - kecuali hasilnya disimpan/di-cache dari sebelumnya untuk dipakai lagi selama pengaturannya (ptspts, bentuk prior) tidak berubah.

5.4 Cara Menentukan Jumlah Titik Grid (ptspts) yang Sesuai

Karena akurasi EAP bergantung pada ptspts sementara biaya komputasi tumbuh ptskpts^k (poin Kekurangan di atas), memilih ptspts adalah trade-off eksplisit presisi vs waktu komputasi. Tidak ada rumus tunggal untuk ptspts optimal, tapi ada beberapa heuristik praktis:

1. Uji konvergensi empiris (paling andal). Naikkan ptspts bertahap (mis. 51121415\to11\to21\to41) pada data representatif, berhenti begitu θ^EAP\hat\theta_{EAP} tidak lagi berubah berarti (mis. selisih <se/10< se/10). Ini persis yang dilakukan #5.2.2: pts=521pts=5\to21 mengubah θ^reasoning\hat\theta_{reasoning} dari 0.1340.134 ke 0.1820.182 - selisih masih signifikan, artinya pts=5pts=5 terlalu kasar untuk dataset itu dan pts=21pts=21 lebih aman dipakai sebagai default.

2. Pertimbangkan derajat eksak kuadratur. Gauss-Hermite ptspts titik eksak untuk polinomial hingga derajat 2pts12\cdot pts-1 (#5.1). Likelihood IRT bukan polinomial, tapi berbentuk lonceng halus di sekitar mode - secara empiris ptspts di kisaran 15-21 biasanya sudah cukup untuk kasus unidimensional/dimensi-rendah dengan diskriminasi item aia_i yang tidak ekstrem (likelihood tidak terlalu tajam/sempit).

3. Pertimbangkan biaya ptskpts^k terhadap jumlah dimensi kk - biaya tumbuh eksponensial dengan kk, bukan cuma ptspts:

kk pts=11pts=11 pts=21pts=21 pts=41pts=41
1 11 21 41
2 121 441 1,681
3 1,331 9,261 68,921

Untuk k4k\geq4, pts=21pts=21 berarti 194,481\geq194{,}481 titik per estimasi - kuadratur grid rectangular jadi impraktis (curse of dimensionality) dan makin mahal walau kodenya sendiri sudah generik untuk kk berapa pun; pada titik ini MAP/MLE (biayanya tidak bergantung ptspts sama sekali) jadi pilihan lebih realistis secara komputasi.


6. Ringkasan Perbandingan

Metode Formula Inti Butuh Prior? Titik Awal Bisa Divergen?
MLE argmaxθf(uθ)\arg\max_\theta f(\mathbf u\mid\theta) Tidak 0\mathbf 0 Ya (#5.2.3)
MAP argmaxθf(θ)L(θ)\arg\max_\theta f(\theta)L(\theta) Ya μ\boldsymbol\mu (prior mean) Tidak (prior proper)
EAP θf(θ)L(θ)dθf(θ)L(θ)dθ\dfrac{\int\theta f(\theta)L(\theta)d\theta}{\int f(\theta)L(\theta)d\theta} Ya (μ,Σ\boldsymbol\mu,\boldsymbol\Sigma sama seperti MAP - prior_mean/prior_cov_diag, lihat #5.1) N/A (bukan iteratif) Tidak

Hasil numerik pada dataset identik (7 item, pola respons campuran - lihat #5.2.2):

Metode θ^verbal\hat\theta_{verbal} θ^numeric\hat\theta_{numeric} θ^reasoning\hat\theta_{reasoning}
MLE 0.0380 -0.6537 0.2966
MAP (Σ=I\Sigma=I) 0.0105 -0.3656 0.1340
EAP (pts=21pts=21) 0.0323 -0.3641 0.1824

SE pada dataset identik yang sama - teori masing-masing di #3.1.1/#4.1.2/#5.1.2:

Metode SEverbalSE_{verbal} SEnumericSE_{numeric} SEreasoningSE_{reasoning}
MLE 0.8309 0.8458 0.7536
MAP (Σ=I\Sigma=I) 0.6294 0.6231 0.5704
EAP (pts=21pts=21) 0.6751 0.6679 0.6099

Pola SEMAP<SEEAP<SEMLESE_{MAP}<SE_{EAP}<SE_{MLE} konsisten di semua dimensi: MAP paling kecil karena mode posterior + kelengkungan Hessian penuh (termasuk prior) selalu memberi variance Laplace terkecil; MLE paling besar karena tanpa informasi prior sama sekali; EAP di antaranya karena mengukur spread aktual posterior (bisa lebih lebar dari sekadar kelengkungan di mode jika posterior tidak simetris sempurna).

Hasil numerik pada dataset all-correct (kasus divergen MLE) - lihat #5.2.3:

Metode θ^\hat\theta θ^\|\hat\theta\|
MLE [16.065,14.291,11.594][16.065,14.291,11.594] 24.43
MAP [0.472,0.369,0.450][0.472,0.369,0.450] 0.75
EAP [0.584,0.480,0.564][0.584,0.480,0.564] 0.94
Aspek MLE MAP EAP
Basis teori Likelihood murni (frequentist) Posterior mode (Bayesian) Posterior mean (Bayesian)
Algoritma Newton-Raphson / Fisher scoring Newton-Raphson / Fisher scoring + prior Kuadratur Gauss-Hermite (bukan iteratif)
Cocok untuk tahap tes Menengah–akhir (butuh \geq beberapa item non-separable) Awal–akhir (aman sejak round 1) Awal–akhir (aman sejak round 1, tapi mahal)
Risiko utama Divergensi pada pola respons separable Bias ke prior jika μ\mu keliru Akurasi bergantung ptspts
Biaya komputasi Rendah (~3-5 iterasi k×kk\times k inverse) Rendah (sama seperti MLE) Tinggi (ptskpts^k evaluasi likelihood + 1 dekomposisi eigen pts×ptspts\times pts)

7. Catatan: Cara Menentukan Prior (MAP & EAP)

Berlaku sama untuk kedua metode karena MAP dan EAP memakai prior normal multivariat N(μ,Σ)\mathcal N(\boldsymbol\mu,\boldsymbol\Sigma) yang identik (μ\boldsymbol\mu=prior_mean, Σ\boldsymbol\Sigma=prior_cov_diag - lihat #4.1/#5.1); EAP hanya beda cara memakainya (integral penuh, bukan penalti pada mode).

7.1 Cara Menentukan Mean (μ\mu) dan Variance (Σ\Sigma) yang Tepat

Properness (#7.2 di bawah) hanya menjamin prior valid secara matematis - tidak menjamin prior itu masuk akal secara psikometrik. Bagian ini membahas cara memilih nilai μ,Σ\boldsymbol\mu,\boldsymbol\Sigma yang tepat, bukan sekadar sah. Magis & Raîche [3, p.4] menegaskan pemilihan ini murni soal keyakinan tentang populasi: "The choice of a prior distribution is usually driven by some prior belief of the ability distribution among the population of examinees." - lihat juga #4.1 untuk kutipan lengkap dan #4.1.1 untuk peran Σ\Sigma sebagai kekuatan shrinkage.

1. Default weakly-informative: μ=0, Σ=I\boldsymbol\mu=\mathbf 0,\ \boldsymbol\Sigma=\mathbf I.

Skala θ\theta pada IRT tidak punya satuan natural (arbitrary scale) - konvensi standar adalah menjangkarkan skala itu ke populasi rujukan berdistribusi normal baku, sehingga θ=0\theta=0 berarti "kemampuan rata-rata populasi" dan θ=±1\theta=\pm1 berarti "satu deviasi standar dari rata-rata". Cocok dipakai selama tidak ada informasi tambahan tentang populasi examinee.

2. μ\mu mewakili populasi, bukan tebakan tentang examinee itu sendiri. μ\mu

adalah keyakinan sebelum melihat respons examinee yang sedang dites - kalau nilainya digeser dari 00, pergeseran itu harus berasal dari informasi agregat populasi/subgroup (mis. norma kelas, riwayat skor tes lain yang berkorelasi, level pendidikan), bukan dari dugaan tentang kemampuan examinee individu itu sendiri. Memilih μ\mu berdasarkan examinee yang sama yang sedang diestimasi adalah circular dan membuat estimasi bias secara sistematis ke arah tebakan itu.

3. Empirical Bayes: estimasi μ,Σ\mu,\Sigma dari histori kalibrasi.

Kalau tersedia data θ^MLE\hat\theta_{MLE} dari batch examinee sebelumnya pada populasi yang sama (mis. hasil administrasi tes periode lalu), μ\boldsymbol\mu dan Σ\boldsymbol\Sigma untuk periode berikutnya dapat diestimasi langsung sebagai mean dan kovarians sampel dari histori itu:

μ^=1Nj=1Nθ^j,Σ^=1N1j=1N(θ^jμ^)(θ^jμ^)\hat{\boldsymbol\mu} = \frac{1}{N}\sum_{j=1}^N \hat{\boldsymbol\theta}_j, \qquad \hat{\boldsymbol\Sigma} = \frac{1}{N-1}\sum_{j=1}^N (\hat{\boldsymbol\theta}_j-\hat{\boldsymbol\mu})(\hat{\boldsymbol\theta}_j-\hat{\boldsymbol\mu})^\top

dengan NN jumlah examinee historis dan θ^j\hat{\boldsymbol\theta}_j estimasi kemampuan examinee ke-jj. Ini pendekatan empirical Bayes standar: populasi yang sama cenderung punya sebaran kemampuan yang mirip antar periode, sehingga prior makin representatif dibanding default N(0,I)N(\mathbf 0,\mathbf I) yang generik.

Histori harus dari MLE, bukan dari MAP/EAP periode sebelumnya. θ^j\hat{\boldsymbol\theta}_j di atas idealnya adalah estimasi MLE, bukan hasil MAP/EAP periode lalu. Alasannya: MAP/EAP sudah menarik (shrink\text{shrink}) tiap θ^j\hat\theta_j ke arah μ\mu prior yang dipakai saat itu (#4.1.1), sehingga sebaran histori MAP/EAP sudah dipersempit secara artifisial dibanding sebaran kemampuan populasi yang sesungguhnya. Kalau Σ^\hat{\boldsymbol\Sigma} dihitung dari histori yang sudah di-shrink itu, hasilnya akan under-estimate variance populasi asli - dan kalau prior periode lalu memang kurang tepat, bias itu ikut terbawa ke prior baru (efeknya makin besar kalau prior lama itu kuat/Σ\Sigma kecil). Estimasi MLE tidak punya masalah ini karena murni dari data tanpa pengaruh prior sama sekali (asalkan tidak divergen - lihat #3.1), sehingga mean/variance sampelnya representasi paling jujur dari sebaran kemampuan populasi. Kalau yang tersimpan cuma histori MAP/EAP (tidak ada MLE), tetap bisa dipakai sebagai pendekatan kasar, tapi dengan kesadaran Σ^\hat{\boldsymbol\Sigma} hasilnya kemungkinan lebih kecil dari variance populasi yang sebenarnya.

Contoh perhitungan (multidimensional, k=3k=3). Misalkan tersedia θ^MLE\hat{\boldsymbol\theta}_{MLE} dari N=5N=5 examinee periode sebelumnya, pada dimensi verbal/numeric/reasoning yang sama seperti Item Bank Snapshot. Karena kode produksi memakai Σ\Sigma diagonal saja (prior_cov_diag, lihat #4.1.1), mean dan variance dihitung per dimensi secara independen - tidak ada kovarians antar dimensi yang dihitung/dipakai:

Examinee ke-jj θ^verbal\hat\theta_{verbal} θ^numeric\hat\theta_{numeric} θ^reasoning\hat\theta_{reasoning}
1 0.8 -0.3 1.1
2 -0.5 0.6 0.2
3 1.2 -0.8 0.4
4 -0.3 0.9 -0.1
5 0.3 0.1 0.9

Step 1: Hitung mean tiap dimensi (μ^d\hat\mu_d) - rata-rata kolom, terpisah untuk tiap dimensi:

μ^verbal=0.80.5+1.20.3+0.35=1.55=0.3,μ^numeric=0.3+0.60.8+0.9+0.15=0.55=0.1,μ^reasoning=1.1+0.2+0.40.1+0.95=2.55=0.5\hat\mu_{verbal} = \frac{0.8-0.5+1.2-0.3+0.3}{5} = \frac{1.5}{5} = 0.3, \qquad \hat\mu_{numeric} = \frac{-0.3+0.6-0.8+0.9+0.1}{5} = \frac{0.5}{5} = 0.1, \qquad \hat\mu_{reasoning} = \frac{1.1+0.2+0.4-0.1+0.9}{5} = \frac{2.5}{5} = 0.5

Step 2: Hitung deviasi tiap examinee dari mean kolomnya, lalu kuadratkan (tiap dimensi memakai μ^d\hat\mu_d miliknya sendiri dari Step 1):

jj θ^verbalμ^verbal\hat\theta_{verbal}-\hat\mu_{verbal} kuadrat θ^numericμ^numeric\hat\theta_{numeric}-\hat\mu_{numeric} kuadrat θ^reasoningμ^reasoning\hat\theta_{reasoning}-\hat\mu_{reasoning} kuadrat
1 0.80.3=0.50.8-0.3=0.5 0.25 0.30.1=0.4-0.3-0.1=-0.4 0.16 1.10.5=0.61.1-0.5=0.6 0.36
2 0.50.3=0.8-0.5-0.3=-0.8 0.64 0.60.1=0.50.6-0.1=0.5 0.25 0.20.5=0.30.2-0.5=-0.3 0.09
3 1.20.3=0.91.2-0.3=0.9 0.81 0.80.1=0.9-0.8-0.1=-0.9 0.81 0.40.5=0.10.4-0.5=-0.1 0.01
4 0.30.3=0.6-0.3-0.3=-0.6 0.36 0.90.1=0.80.9-0.1=0.8 0.64 0.10.5=0.6-0.1-0.5=-0.6 0.36
5 0.30.3=0.00.3-0.3=0.0 0.00 0.10.1=0.00.1-0.1=0.0 0.00 0.90.5=0.40.9-0.5=0.4 0.16
sum 2.06 1.86 0.98

Step 3: Hitung variance tiap dimensi (σ^d2\hat\sigma_d^2) - jumlah kuadrat deviasi kolom dibagi N1N-1 (bukan NN, supaya estimatornya unbiased):

σ^verbal2=2.0651=0.515,σ^numeric2=1.8651=0.465,σ^reasoning2=0.9851=0.245\hat\sigma^2_{verbal} = \frac{2.06}{5-1} = 0.515, \qquad \hat\sigma^2_{numeric} = \frac{1.86}{5-1} = 0.465, \qquad \hat\sigma^2_{reasoning} = \frac{0.98}{5-1} = 0.245

→ Prior untuk periode berikutnya: prior_mean = [0.3, 0.1, 0.5], prior_cov_diag = [0.515, 0.465, 0.245] (dibanding default [0,0,0]/[1,1,1]). Interpretasi per dimensi: populasi historis rata-rata sedikit di atas 0 pada ketiga dimensi (paling menonjol di reasoning, μ=0.5\mu=0.5), dan sebarannya di ketiga dimensi lebih sempit dari default (Σd<1\Sigma_d<1 semua) - dimensi reasoning paling sempit (Σ=0.245\Sigma=0.245) sehingga prior di dimensi itu menarik paling kuat, dimensi verbal paling longgar (Σ=0.515\Sigma=0.515) sehingga tarikannya paling lemah di antara ketiganya.

4. Efek μ\mu yang keliru terhadap estimasi.

Intinya: μ\mu yang salah paling berbahaya di awal tes (item masih sedikit), dan efeknya makin hilang sendiri seiring examinee menjawab lebih banyak item.

Kenapa begitu? Estimasi MAP ditarik oleh dua kekuatan sekaligus - "bukti dari jawaban examinee" (IS(θ)\mathbf{I}_S(\theta), makin besar kalau makin banyak item dijawab) dan "tarikan ke μ\mu" (Σ1\boldsymbol\Sigma^{-1}, besarnya tetap, tidak berubah walau item bertambah), karena HMAP=IS(θ)+Σ1\mathbf{H}_{MAP}=\mathbf{I}_S(\theta)+\boldsymbol\Sigma^{-1} (#4.1). Di awal tes, IS(θ)\mathbf{I}_S(\theta) masih kecil (baru sedikit/belum ada bukti dari jawaban), jadi tarikan ke μ\mu mendominasi - kalau μ\mu ternyata jauh dari kemampuan asli examinee, estimasi awal akan condong salah ke arah μ\mu itu (lihat tabel shrinkage di #4.1.1). Begitu makin banyak item dijawab, IS(θ)\mathbf{I}_S(\theta) membesar dan lama-lama jauh mengalahkan Σ1\boldsymbol\Sigma^{-1}, sehingga pengaruh μ\mu yang keliru itu makin pudar dengan sendirinya.

5. Kalau μ\mu tidak yakin, jangan pakai Σ\Sigma kecil.

Σ\Sigma kecil berarti prior "yakin" dan menarik kuat ke μ\mu (#4.1.1) - kombinasi μ\mu yang mungkin keliru dengan Σ\Sigma kecil adalah kondisi bias terburuk (tarikan kuat ke titik yang salah). Kalau tidak ada dasar empiris kuat untuk μ0\mu\neq0, lebih aman memakai Σ=I\Sigma=\mathbf I (atau lebih besar) supaya likelihood cepat mendominasi begitu beberapa item pertama dijawab, alih-alih Σ\Sigma kecil yang mengunci estimasi ke μ\mu yang belum tentu benar.

Ringkasan praktis:

Situasi μ\mu Σ\Sigma
Tidak ada informasi populasi 0\mathbf 0 I\mathbf I (weakly-informative)
Ada histori kalibrasi dari populasi sama mean sampel histori kovarians sampel histori
Ada info subgroup (mis. norma kelas) tapi bukan dari examinee ini mean subgroup \geq variance populasi subgroup (jangan lebih kecil dari sebaran asli)
μ\mu tidak yakin/berisiko keliru tetap 0\mathbf 0 atau estimasi terbaik besar (longgar), bukan kecil

7.2 Cara Mengecek Properness (Simetris & Positive-Definite)

Prior f(θ)f(\boldsymbol\theta) disebut proper kalau memenuhi dua syarat:

  1. f(θ)0f(\boldsymbol\theta) \geq 0 untuk semua θ\boldsymbol\theta, dan
  2. f(θ)dθ\int f(\boldsymbol\theta)\,d\boldsymbol\theta terintegrasi ke nilai finite (dapat dinormalisasi menjadi 1).

Sebaliknya, improper prior - mis. flat prior di seluruh (,)(-\infty,\infty) atau prior Jeffreys 1/θ1/\theta di (0,)(0,\infty) - integralnya divergen sehingga bukan distribusi probabilitas yang valid.

Untuk prior normal multivariat N(μ,Σ)\mathcal N(\boldsymbol\mu, \boldsymbol\Sigma) yang dipakai di MAP dan EAP pada dokumen ini, properness cukup dicek lewat Σ\boldsymbol\Sigma saja:

  • Σ\boldsymbol\Sigma harus simetris (Σ=Σ\boldsymbol\Sigma^\top = \boldsymbol\Sigma),
  • Σ\boldsymbol\Sigma harus positive-definite (semua eigenvalue >0> 0, sehingga Σ1\boldsymbol\Sigma^{-1} ada dan finite).

Kalau kedua syarat itu terpenuhi, konstanta normalisasi distribusi normal multivariat otomatis membuat integral totalnya =1=1 - properness terjamin tanpa perlu menghitung integral manual. Secara praktis, pengecekan positive-definite bisa dilakukan lewat dekomposisi Cholesky: jika dekomposisi berhasil, Σ\boldsymbol\Sigma positive-definite (proper); jika gagal, Σ\boldsymbol\Sigma singular atau punya eigenvalue 0\leq 0 (bukan kovarians valid, prior tidak proper).

Kasus khusus N(0,I)\mathcal N(\mathbf 0, \mathbf I) - yang dipakai sebagai default di beberapa demo - selalu proper di dimensi berapa pun, karena matriks identitas I\mathbf I otomatis simetris dan semua eigenvalue-nya =1>0=1>0, tanpa bergantung pada input apa pun.

Contoh Σ\boldsymbol\Sigma proper selain I\mathbf I (K=3):

Σ=[1.50.300.31.20.200.21.0]\boldsymbol\Sigma = \begin{bmatrix} 1.5 & 0.3 & 0 \\ 0.3 & 1.2 & 0.2 \\ 0 & 0.2 & 1.0 \end{bmatrix}

Varians tiap dimensi tidak seragam (1.5, 1.2, 1.0) dan ada korelasi prior antar θ1\theta_1-θ2\theta_2 (0.3) serta θ2\theta_2-θ3\theta_3 (0.2), sementara θ1\theta_1-θ3\theta_3 diasumsikan independen (0).

  • Simetris: Σ12=Σ21=0.3\Sigma_{12}=\Sigma_{21}=0.3, Σ23=Σ32=0.2\Sigma_{23}=\Sigma_{32}=0.2, Σ13=Σ31=0\Sigma_{13}=\Sigma_{31}=0
  • Positive-definite lewat Sylvester's criterion (semua leading principal minor >0>0, alternatif praktis dari menghitung eigenvalue satu-satu):
    • M1=1.5>0M_1 = 1.5 > 0
    • M2=1.5(1.2)0.32=1.71>0M_2 = 1.5(1.2) - 0.3^2 = 1.71 > 0
    • M3=det(Σ)=1.5(1.21.00.22)0.3(0.31.00.20)=1.65>0M_3 = \det(\boldsymbol\Sigma) = 1.5(1.2\cdot1.0-0.2^2) - 0.3(0.3\cdot1.0-0.2\cdot0) = 1.65 > 0

Semua minor positif → Σ\boldsymbol\Sigma positive-definite → Σ1\boldsymbol\Sigma^{-1} ada dan finite → prior proper.

Contoh gagal (kontras): Σinvalid=[1221]\boldsymbol\Sigma_{\text{invalid}} = \begin{bmatrix} 1 & 2 \\ 2 & 1 \end{bmatrix} simetris, tapi M2=1(1)22=3<0M_2 = 1(1)-2^2=-3<0 → bukan positive-definite (korelasi 2 melebihi batas valid untuk varians 1 & 1, seharusnya korelasi ternormalisasi [1,1]\in[-1,1]). Σ1\Sigma^{-1} tetap bisa dihitung secara aljabar, tapi bukan kovarians valid, sehingga bukan prior proper meski syarat simetri terpenuhi.

Penting: properness murni sifat f(θ)f(\boldsymbol\theta) (yakni μ\boldsymbol\mu dan Σ\boldsymbol\Sigma)

  • tidak bergantung pada bank soal. Parameter item (aa, dd, cc) dan respons examinee hanya masuk ke likelihood L(θ)L(\boldsymbol\theta), bukan ke prior; bank soal memengaruhi akurasi/bias hasil estimasi, bukan properness prior itu sendiri.

Referensi

[1] Mulder, J., & van der Linden, W. J. (2009). Multidimensional Adaptive Testing with Optimal Design Criteria for Item Selection. Psychometrika, 74(2), 273–296. https://doi.org/10.1007/s11336-008-9097-5 - Full text gratis (PubMed Central, open access): https://pmc.ncbi.nlm.nih.gov/articles/PMC2813188/ (mirror PDF jurnal dengan nomor halaman asli: https://www.cambridge.org/core/services/aop-cambridge-core/content/view/A3BFF7744EDCE563819C31270D9C7E7D/S0033312300021608a.pdf/multidimensional-adaptive-testing-with-optimal-design-criteria-for-item-selection.pdf). Sumber untuk: model M3PL (Eq.1, p.275), definisi MLE & fungsi likelihood (Eq.2-3, p.276), pernyataan Newton-Raphson & catatan non-eksistensi maksimum (p.276), Fisher Information Matrix (Eq.4, p.276), aditivitas FIM (Eq.6, p.277), dan normalitas asimtotik/Cramér–Rao (Eq.7, p.277). Sama seperti [1] pada item_selection_summary.md, bagian berbeda (#2-3 alih-alih #3-4).

[2] Baker, F. B. (2001). The Basics of Item Response Theory (2nd ed.). ERIC Clearinghouse on Assessment and Evaluation, University of Maryland. Full text gratis (ERIC ED458219): https://files.eric.ed.gov/fulltext/ED458219.pdf (mirror: https://www.ime.unicamp.br/~cnaber/Baker_Book.pdf). Sumber untuk Bab 5 "Estimating an Examinee's Ability" (p.85-90): formula iteratif MLE univariat Eq.[5-1] (p.86), contoh tiga-item lengkap dengan nilai a priori (p.87), dan tabel iterasi 1-2 yang direproduksi persis di #3.2.1 (p.88). Sama seperti [2] pada item_selection_summary.md (di sana dipakai untuk Bab 6 "The Information Function", di sini untuk Bab 5).

[3] Magis, D., & Raîche, G. (2012). Random Generation of Response Patterns under Computerized Adaptive Testing with the R Package catR. Journal of Statistical Software, 48(8), 1–31. https://doi.org/10.18637/jss.v048.i08 - Open access (JSS). PDF: https://www.jstatsoft.org/index.php/jss/article/view/v048i08/600 (landing page: https://www.jstatsoft.org/v48/i08/). Sumber utama #2.2 "Ability estimation" (p.4-6): definisi ML (Eq.2-4, p.4), Bayes Modal/MAP (Eq.5-6, p.4-5), Jeffreys' prior (Eq.7-9, p.5, tidak dipakai kode produksi), EAP (Eq.10-11, p.5-6), dan Weighted Likelihood/Warm estimator (Eq.12-14, p.6, tidak diimplementasikan produksi - dicatat sebagai pembanding di #4).

[4] Mislevy, R. J. (1986). Bayes modal estimation in item response models. Psychometrika, 51(2), 177–195. https://doi.org/10.1007/BF02293979 - Sumber asli/historis estimasi Bayes Modal (MAP). Tidak berhasil diakses gratis (Springer/Psychometrika berbayar) - klaim yang berasal dari Mislevy (1986) pada dokumen ini hanya diverifikasi secara tidak langsung lewat definisi & nomor persamaan yang direproduksi eksplisit di [3, Eq.5-6, p.4-5].

[5] Bock, R. D., & Mislevy, R. J. (1982). Adaptive EAP estimation of ability in a microcomputer environment. Applied Psychological Measurement, 6(4), 431–444. https://doi.org/10.1177/014662168200600405 - Sumber asli/historis estimasi EAP. Tidak berhasil diakses gratis (SAGE berbayar) - klaim yang berasal dari Bock & Mislevy (1982) pada dokumen ini hanya diverifikasi secara tidak langsung lewat definisi & nomor persamaan yang direproduksi eksplisit di [3, Eq.10-11, p.5-6], yang juga menyitasi Bock & Mislevy (1982) secara langsung sebagai sumber EAP (p.5).

[6] Chalmers, R. P. (2012). mirt: A Multidimensional Item Response Theory Package for the R Environment. Journal of Statistical Software, 48(6), 1–29. https://doi.org/10.18637/jss.v048.i06

  • Open access (JSS). PDF: https://www.jstatsoft.org/index.php/jss/article/view/v048i06/598 (landing page: https://www.jstatsoft.org/article/view/v048i06). Sumber untuk model M3PL multidimensional dengan skala DD (Eq.1, p.3 - produksi tidak memakai skala DD, konsisten dengan [1, Eq.1]) dan pola diskretisasi grid kuadratur multi-indeks kk-dimensi (Eq.6, p.5), dipakai sebagai pembanding teknik untuk grid EAP di #3.1 (catatan: Eq.6 [6] pada paper aslinya mengintegralkan θ\theta sebagai nuisance parameter pada estimasi parameter item/EM, bukan pada estimasi EAP examinee individual - hanya teknik diskretisasinya yang dipakai sebagai pembanding, bukan rumusnya secara langsung).

[7] Golub, G. H., & Welsch, J. H. (1969). Calculation of Gauss Quadrature Rules. Mathematics of Computation, 23(106), 221–230. https://doi.org/10.1090/S0025-5718-69-99647-1 - Sumber asli algoritma Golub-Welsch (nilai eigen matriks Jacobi tridiagonal → node/bobot kuadratur Gauss) dipakai persis oleh gauss_hermite() di eap.rs:12-30. PDF di halaman jurnal (ams.org) mengembalikan HTTP 403 saat diambil langsung - tidak berhasil diverifikasi full text gratis. Klaim yang berasal dari paper ini pada dokumen ini (konstruksi matriks Jacobi, rumus bobot wq=μ0vq,02w_q=\mu_0v_{q,0}^2) diverifikasi secara tidak langsung: (a) turunan aljabar dari rekursi tiga-suku polinomial Hermite di #5.1 menghasilkan matriks off-diagonal yang identik dengan kode produksi, dan (b) untuk pts=5pts=5, akar H5H_5 yang diturunkan analitik (faktorisasi H5(x)=8x(4x420x2+15)H_5(x)=8x(4x^4-20x^2+15), tanpa dekomposisi eigen sama sekali) cocok tepat dengan node numerik yang dihasilkan gauss_hermite() dan dipakai di #5.2.1.

Peta Sitasi per Formula

Formula Dipakai di metode Sumber
f(uθ)=PiuiQi1uif(\mathbf u\mid\theta)=\prod P_i^{u_i}Q_i^{1-u_i}, θ^=argmaxf\hat\theta=\arg\max f MLE (dasar ketiganya) [1] Eq.2–3, p.276
logf(θ)=ai(uiPi)Pi/(PiQi)\nabla\log f(\theta)=\sum a_i(u_i-P_i)P'_i/(P_iQ_i) MLE, MAP (bagian likelihood) Diturunkan sendiri di #4.1 dari [1] Eq.2-3
Ii(θ)=waiai\mathbf I_i(\theta)=w\cdot\mathbf a_i\mathbf a_i^\top (Fisher scoring) MLE, MAP (Hessian) [1] Eq.4, p.276; dibuktikan identik di #4.2
θ^s+1=θ^s+[Σa(uP)]/[Σa2PQ]\hat\theta_{s+1}=\hat\theta_s+[\Sigma a(u-P)]/[\Sigma a^2PQ] MLE (univariat) [2] Eq.[5-1], p.86
logg(θ)=logf(θ)+logL(θ)\log g(\theta)=\log f(\theta)+\log L(\theta), θ^BM=argmaxg\hat\theta_{BM}=\arg\max g MAP [3] Eq.5, p.5; asal-usul [4]
logg=logfΣ1(θμ)\nabla\log g=\nabla\log f-\Sigma^{-1}(\theta-\mu), HMAP=IS+Σ1H_{MAP}=I_S+\Sigma^{-1} MAP Diturunkan sendiri di #4.1 dari [3] Eq.5 + kalkulus Gaussian multivariat
θ^EAP=θfLdθ/fLdθ\hat\theta_{EAP}=\int\theta f L\,d\theta/\int fL\,d\theta EAP [3] Eq.10, p.5; asal-usul [5]
Grid kuadratur multi-indeks kk-dimensi EAP Teknik dibandingkan dengan [6] Eq.6, p.5
Node xqx_q/bobot wqw_q via eigen matriks Jacobi (Golub-Welsch) EAP (gauss_hermite()) [7]; diverifikasi analitik untuk pts=5pts=5 di #5.1
SE(θ^j)=[IS(θ^)1]jjSE(\hat\theta_j)=\sqrt{[\mathbf I_S(\hat\theta)^{-1}]_{jj}} MLE Diturunkan sendiri di #3.1.1 dari [1] Eq.7, p.277
SE(θ^BM,j)=[HMAP(θ^)1]jjSE(\hat\theta_{BM,j})=\sqrt{[H_{MAP}(\hat\theta)^{-1}]_{jj}} MAP [3] Eq.6, p.5 (bentuk univariat); generalisasi multivariat diturunkan sendiri di #4.1.2
se(θ^EAP)=E[θ2u]E[θu]2se(\hat\theta_{EAP})=\sqrt{E[\theta^2\mid\mathbf u]-E[\theta\mid\mathbf u]^2} EAP [3] Eq.11, p.6; identitas momen-mentah \equiv bentuk tersentral dibuktikan sendiri di #5.1.2

irufano - 2026