Algoritme Expectation-Maximization (EM) menggunakan R
R Programming
Computational Statistics
Author
Gerry Alfa Dito
Published
November 19, 2021
Algoritme EM
Algoritme EM adalah cara untuk menghitung estimasi parameter model menggunakan Metode MLE (Maksimum Likelihood Estimation) ketika data yang kita tidak lengkap, memiliki missing data, atau memiliki variabel laten (latent variable) yang tak teramati. Secara singkat EM bisa diartikan sebagai metode untuk iteratif yang bisa mendekati Likelihood function. Metode MLE memiliki hanya bisa mengestimasi parameter dengan baik jika data yang kita miliki tidak lengkap. Algoritme EM bekerja dengan memilih nilai acak untuk titik data yang tidak lengkap, dan menggunakan nilai acak tersebut untuk mengestimasi data yang tidak lengkap.
Misalkan \(X=(X_{1},X_{2},\ldots,X_{n_{1}})\) merupakan sampel yang teramati (observed) dan \(Z=(Z_{1},Z_{2},\ldots,Z_{n_{2}})\) merupakan sampel yang tak teramati (unobserved) dengan \(n=n_{1}+n_{2}\). Asumsikan bahwa \(X_{i}\) i.i.d dengan pdf \(f(x|\theta)\) dan \(Z_{j}\) serta \(X_{i}\) saling lepas. Misalkan \(g(x|\theta)\) merupakan joint pdf dari \(X\) dan \(h(x,z|\theta)\) merupakan joint pdf antara observed dan unobserved. Conditional pdf dari unobserved adalah
\[
f(z|\theta,x)=\frac{h(x,z|\theta)}{g(x|\theta)}
\] Fungsi observed likelihood didefinisikan \(L(\theta|x)=g(x|\theta)\) dan fungsi complete likelihood didefinisikan \(L^{c}(\theta|x,z)=h(x,z|\theta)\)
Tahap-tahap dalam Algoritme EM dapat ditulis sebagai berikut
Isi data yang tak lengkap tersebut dengan suatu nilai estimasi yang didapatkan dari nilai Ekspetasi fungsi log-Likelihood
Tahap 1 ini sering disebut dengan Tahap Expectation atau Tahap-E
Dari tahap 1 kita sudah memperoleh data lengkap, selanjutnya estimasi parameter menggunakan data lengkap tersebut. Estimasi parameter dilakukan dengan menerapkan metode MLE pada fungsi \(Q(\theta|\hat{\theta}^{(m)})\) sebagai berikut:
\[
\hat{\theta}^{(m+1)}= \arg \max{Q(\theta|\hat{\theta}^{(m)})}
\] Tahap 2 ini sering disebut dengan Tahap Maximization atau Tahap-M
Gunakan parameter hasil estimasi pada tahap 2 untuk mendapatkan nilai estimasi yang baru
Gunakan nilai estimasi yang baru pada tahap 3 untuk mendapatkan estimasi parameter yang baru
Lakukan langkah 3 dan 4 sampai konvergen
Penerapan Algoritme EM
Berikut adalah beberapa penerapan EM-Algorithm
Missing Data Problems
Grouped Data Problems
Truncated and Censored Data Problems
Latent Variable Estimation
Mixtures Model
Ilustrasi 1
Rao (1973) melakukan pembagian secara acak 197 hewan menjadi 4 kategori berdasarkan phenotypes sedemikian sehingga:
sehingga \(\boldsymbol{y}\sim \text{Multinomial}(p_{1},p_{2},p_{3},p_{4})\). Fungsi kepekatan peluang (fkp) atau probability density function (pdf) dari \(\boldsymbol{y}\) adalah
sehingga \(\boldsymbol{x}\sim \text{Multinomial}(p_{1},p_{2},p_{3},p_{4},p_{5})\). Fungsi kepekatan peluang (fkp) atau probability density function (pdf) dari \(\boldsymbol{x}\) adalah
Jika diketahui fungsi log-likelihood bagi \(y\) adalah
\[
\log{L(\theta|y)} = c+y_{1} \log{(2+\theta)} + (y_{2} + y_{3}) \log{(1-\theta)} + y_{4} \log{\theta}
\] dan fungsi fungsi log-likelihood bagi \(x\) adalah
\[
\log{L(\theta|y)} = \log{\left( \frac{y_{1}+y_{2}+y_{3}+y_{4}}{y_{1}! y_{2}! y_{3}! y_{4}!} \right)} + \log{\left(\left(\frac{1}{2}+\frac{\theta}{4} \right) ^{y_{1}}\right)} + \log{\left(\left(\frac{1-\theta}{4}\right)^{y_{2}} \right)} + \log{\left(\left(\frac{1-\theta}{4}\right)^{y_{3}}\right)} + \log{\left(\left(\frac{\theta}{4}\right)^{y_{4}}\right)}
\] kita misalkan bagian yang tidak ada unsur \(\theta\) sebagai \(c\) atau konstanta
Tahap 1 ini sering disebut dengan Tahap Expectation atau Tahap-E
Pada tahap 1 ini hal pertama yang kita lakukan adalah menentukan fungsi complete log-likelihood\(\log{L^{c}(\theta|x,z)}\) yang bisa kita ambil dari fungsi log-likelihood bagi \(x\)
\[
\log{L(\theta|x)} = c+x_{1}\log{\left(\frac{1}{2}\right)}+(x_2+ x_5)\log{\theta} + (x_3+x_4) \log{ (1-\theta)}
\] karena di dalam fungsi ini terdapat data unobserved \(x_{1}\) dan \(x_{2}\) serta data observed \(x_{3},x_{4},x_{5}\) sehingga jika digabungkan akan menjadi fungsi complete log-likelihood
Untuk mempermudah perhitungan kita misalkan \(z_{1}=x_{1}\) dan \(z_{1}=x_{2}\), yang mana \(x_{1}\) dan \(x_{2}\) merupakan data unobserved. Sehingga \(\boldsymbol{z}=(z_{1},z_{2})\). Kemudian, kita tahu bahwa \(x_{3}=y_{2},x_{4}=y_{3},x_{5}=y_{4}\) sehingga kita rubah simbol \(x\) menjadi \(y\). Jadi fungsi complete log-likelihood adalah sebagai berikut
Untuk memperoleh nilai dari \(\text{E}_{\hat{\theta}^{(0)}}\left[z_{1}\right|\hat{\theta}^{(0)},y]\) dan \(\text{E}_{\hat{\theta}^{(0)}}\left[z_2|\hat{\theta}^{(0)},y\right]\), kita perlu tahu terlebih dahulu tentang distribusi dari \(\boldsymbol{z}=(z_{1},z_{2})\). Karena \(\boldsymbol{z}=(z_{1},z_{2})\) merupakan data unobserved maka kita bisa mendapatkan pdf dari \(\boldsymbol{z}\) dengan
\[
f(\boldsymbol{z}|\theta,\boldsymbol{y})=\frac{h(\boldsymbol{y},\boldsymbol{z}|\theta)}{g(\boldsymbol{y}|\theta)}
\] dengan \[
h(\boldsymbol{x},\boldsymbol{z}|\theta)=L^{c}(\theta|\boldsymbol{y},\boldsymbol{z} )= \frac{z_{1}+z_{2}+y_{2}+y_{3}+y_{4}}{z_{1}! z_{2}! y_{2}! y_{3}! y_{4}!} \left(\frac{1}{2}\right) ^{z_{1}} \left(\frac{\theta}{4} \right) ^{z_{2}} \left(\frac{1-\theta}{4}\right)^{y_{2}} \left(\frac{1-\theta}{4}\right)^{y_{3}} \left(\frac{\theta}{4}\right)^{y_{4}}
\] yang merupakan fungsi complete likelihood. Kemudian
\[
g(\boldsymbol{y}|\theta)=L(\theta|\boldsymbol{y})=\frac{y_{1}+y_{2}+y_{3}+y_{4}}{y_{1}! y_{2}! y_{3}! y_{4}!} \left(\frac{1}{2}+\frac{\theta}{4} \right) ^{y_{1}} \left(\frac{1-\theta}{4}\right)^{y_{2}} \left(\frac{1-\theta}{4}\right)^{y_{3}} \left(\frac{\theta}{4}\right)^{y_{4}}
\] yang merupakan fungsi observed likelihood. Jadi diperoleh
\[
\hat{z}_{2} = \text{E}_{\hat{\theta}^{(0)}}\left[z_2|\hat{\theta}^{(0)},y\right]=y_{1}\left(\frac{\frac{\hat{\theta}^{(0)}}{4}}{\frac{1}{2}+\frac{\hat{\theta}^{(0)}}{4} }\right)
\] karena \(y_{1}=100\) maka
Dari langkah 1 kita sudah memperoleh data lengkap, selanjutnya estimasi parameter menggunakan data lengkap tersebut. Estimasi parameter dilakukan dengan menerapkan metode MLE pada fungsi \(Q(\theta|\hat{\theta}^{(m)})\) sebagai berikut:
\[
\hat{\theta}^{(m+1)}= \arg \max{Q(\theta|\hat{\theta}^{(m)})}
\] Tahap 2 ini sering disebut dengan Tahap Maximization atau Tahap-M
Berdasarkan formula tersebut diperoleh nilai estimasi untuk \(x_{2}=24.23\), sedangkan \(x_{1}\) tidak memiliki nilai estimasi tertentu karena tidak mempengaruhi nilai estimasi parameter \(\hat{\theta}\). Sementara itu, nilai estimasi \(\hat{\theta}=0.639\)
Ilustrasi 2
Suatu percobaan memiliki suatu model linear sebagai berikut
\[
y_{ij} = \mu + \alpha_{i} + \beta_{j} +\epsilon_{ij}
\] Dari percobaan tersebut dihasilkan data sebagai berikut
Tip
Coupon
1
2
3
4
1
9.3
9.4
9.6
10
2
9.4
9.3
9.8
9.9
3
9.4
9.5
9.7
4
9.7
9.6
10
Data hasil percobaan tersebut mengandung dua missing data. Jika diketahui bahwa estimasi parameter dari model linear percobaan adalah sebagai berikut
\[
\hat{\mu} = \bar{y}
\]\[
\hat{\alpha} = \bar{y}_{i.}-\bar{y}=\frac{\Sigma_{j=1}^{b} y_{ij}}{b}-\frac{\Sigma_{j=1}^{n} y_{ij}}{n}
\]\[
\hat{\beta} = \bar{y}_{.j}-\bar{y}=\frac{\Sigma_{i=1}^{a} y_{ij}}{a}-\frac{\Sigma_{j=1}^{n} y_{ij}}{n}
\] untuk \(n=a+b\), maka hitung nilai estimasi dari dua missing data yang hilang tersebut dengan Algoritme EM menggunakan R!
Pembahasan Ilustrasi 2
Data pada soal tersebut kita rubah ke dalam format long seperti berikut:
\(\epsilon_{ij}\) tidak kita masukan karena merupakan galat, sehingga tidak dibutuhkan untuk estimasi nilai missing data.
Sebelum kita menghitung nilai estimasi bagi tiap-tiap parameter, kita buat dulu tambahan satu kolom untuk mengidentifikasi ada amatan hilang atau tidak
Pada bagian ini akan diilustrasikan missing data akan diganti dengan nilai awal dibandingkan dengan nilai estimasi yang didapatkan dari parameter seperti ilustrasi sebelumnya.