# 1. Inisialisasi Data
# Tabel observasi (sel yang diketahui)
# [1,1]=10, [1,2]=5
# [2,1]=20, [2,3]=30
# Sel [1,3] dan [2,2] tergabung dengan total 35
n11 <- 10; n12 <- 5
n21 <- 20; n23 <- 30
n_grouped <- 35
n_total <- 100

# 2. Inisialisasi Parameter Awal (Theta)
r1 <- 1/3; c1 <- 1/3; c2 <- 1/6

# 3. Loop Algoritma EM (Proses Perhitungan)
tol <- 1e-8 # Definisikan toleransi konvergensi
for (i in 1:200) {
  theta_old <- c(r1, c1, c2)
  
  # --- STEP E (Expectation) ---
  p13 <- r1 * (1 - c1 - c2)
  p22 <- (1 - r1) * c2
  E13 <- n_grouped * (p13 / (p13 + p22))
  E22 <- n_grouped * (p22 / (p13 + p22))
  
  # --- STEP M (Maximization) ---
  r1 <- (n11 + n12 + E13) / n_total
  c1 <- (n11 + n21) / n_total
  c2 <- (n12 + E22) / n_total
  
  cat(sprintf("Iterasi %-3d | r1: %.6f | c1: %.6f | c2: %.6f\n", i, r1, c1, c2))
  
  if (sum(abs(c(r1, c1, c2) - theta_old)) < tol) {
    cat("Konvergensi tercapai pada iterasi ke-", i, "\n")
    break
  }
}
## Iterasi 1   | r1: 0.360000 | c1: 0.300000 | c2: 0.190000
## Iterasi 2   | r1: 0.360550 | c1: 0.300000 | c2: 0.189450
## Iterasi 3   | r1: 0.361084 | c1: 0.300000 | c2: 0.188916
## Iterasi 4   | r1: 0.361602 | c1: 0.300000 | c2: 0.188398
## Iterasi 5   | r1: 0.362104 | c1: 0.300000 | c2: 0.187896
## Iterasi 6   | r1: 0.362590 | c1: 0.300000 | c2: 0.187410
## Iterasi 7   | r1: 0.363060 | c1: 0.300000 | c2: 0.186940
## Iterasi 8   | r1: 0.363516 | c1: 0.300000 | c2: 0.186484
## Iterasi 9   | r1: 0.363956 | c1: 0.300000 | c2: 0.186044
## Iterasi 10  | r1: 0.364382 | c1: 0.300000 | c2: 0.185618
## Iterasi 11  | r1: 0.364794 | c1: 0.300000 | c2: 0.185206
## Iterasi 12  | r1: 0.365193 | c1: 0.300000 | c2: 0.184807
## Iterasi 13  | r1: 0.365577 | c1: 0.300000 | c2: 0.184423
## Iterasi 14  | r1: 0.365949 | c1: 0.300000 | c2: 0.184051
## Iterasi 15  | r1: 0.366307 | c1: 0.300000 | c2: 0.183693
## Iterasi 16  | r1: 0.366653 | c1: 0.300000 | c2: 0.183347
## Iterasi 17  | r1: 0.366987 | c1: 0.300000 | c2: 0.183013
## Iterasi 18  | r1: 0.367309 | c1: 0.300000 | c2: 0.182691
## Iterasi 19  | r1: 0.367619 | c1: 0.300000 | c2: 0.182381
## Iterasi 20  | r1: 0.367918 | c1: 0.300000 | c2: 0.182082
## Iterasi 21  | r1: 0.368206 | c1: 0.300000 | c2: 0.181794
## Iterasi 22  | r1: 0.368484 | c1: 0.300000 | c2: 0.181516
## Iterasi 23  | r1: 0.368751 | c1: 0.300000 | c2: 0.181249
## Iterasi 24  | r1: 0.369008 | c1: 0.300000 | c2: 0.180992
## Iterasi 25  | r1: 0.369256 | c1: 0.300000 | c2: 0.180744
## Iterasi 26  | r1: 0.369494 | c1: 0.300000 | c2: 0.180506
## Iterasi 27  | r1: 0.369722 | c1: 0.300000 | c2: 0.180278
## Iterasi 28  | r1: 0.369943 | c1: 0.300000 | c2: 0.180057
## Iterasi 29  | r1: 0.370154 | c1: 0.300000 | c2: 0.179846
## Iterasi 30  | r1: 0.370357 | c1: 0.300000 | c2: 0.179643
## Iterasi 31  | r1: 0.370553 | c1: 0.300000 | c2: 0.179447
## Iterasi 32  | r1: 0.370740 | c1: 0.300000 | c2: 0.179260
## Iterasi 33  | r1: 0.370920 | c1: 0.300000 | c2: 0.179080
## Iterasi 34  | r1: 0.371093 | c1: 0.300000 | c2: 0.178907
## Iterasi 35  | r1: 0.371259 | c1: 0.300000 | c2: 0.178741
## Iterasi 36  | r1: 0.371419 | c1: 0.300000 | c2: 0.178581
## Iterasi 37  | r1: 0.371572 | c1: 0.300000 | c2: 0.178428
## Iterasi 38  | r1: 0.371718 | c1: 0.300000 | c2: 0.178282
## Iterasi 39  | r1: 0.371859 | c1: 0.300000 | c2: 0.178141
## Iterasi 40  | r1: 0.371994 | c1: 0.300000 | c2: 0.178006
## Iterasi 41  | r1: 0.372123 | c1: 0.300000 | c2: 0.177877
## Iterasi 42  | r1: 0.372247 | c1: 0.300000 | c2: 0.177753
## Iterasi 43  | r1: 0.372366 | c1: 0.300000 | c2: 0.177634
## Iterasi 44  | r1: 0.372480 | c1: 0.300000 | c2: 0.177520
## Iterasi 45  | r1: 0.372589 | c1: 0.300000 | c2: 0.177411
## Iterasi 46  | r1: 0.372694 | c1: 0.300000 | c2: 0.177306
## Iterasi 47  | r1: 0.372794 | c1: 0.300000 | c2: 0.177206
## Iterasi 48  | r1: 0.372890 | c1: 0.300000 | c2: 0.177110
## Iterasi 49  | r1: 0.372982 | c1: 0.300000 | c2: 0.177018
## Iterasi 50  | r1: 0.373070 | c1: 0.300000 | c2: 0.176930
## Iterasi 51  | r1: 0.373154 | c1: 0.300000 | c2: 0.176846
## Iterasi 52  | r1: 0.373235 | c1: 0.300000 | c2: 0.176765
## Iterasi 53  | r1: 0.373312 | c1: 0.300000 | c2: 0.176688
## Iterasi 54  | r1: 0.373386 | c1: 0.300000 | c2: 0.176614
## Iterasi 55  | r1: 0.373457 | c1: 0.300000 | c2: 0.176543
## Iterasi 56  | r1: 0.373525 | c1: 0.300000 | c2: 0.176475
## Iterasi 57  | r1: 0.373590 | c1: 0.300000 | c2: 0.176410
## Iterasi 58  | r1: 0.373652 | c1: 0.300000 | c2: 0.176348
## Iterasi 59  | r1: 0.373711 | c1: 0.300000 | c2: 0.176289
## Iterasi 60  | r1: 0.373768 | c1: 0.300000 | c2: 0.176232
## Iterasi 61  | r1: 0.373822 | c1: 0.300000 | c2: 0.176178
## Iterasi 62  | r1: 0.373874 | c1: 0.300000 | c2: 0.176126
## Iterasi 63  | r1: 0.373924 | c1: 0.300000 | c2: 0.176076
## Iterasi 64  | r1: 0.373972 | c1: 0.300000 | c2: 0.176028
## Iterasi 65  | r1: 0.374017 | c1: 0.300000 | c2: 0.175983
## Iterasi 66  | r1: 0.374061 | c1: 0.300000 | c2: 0.175939
## Iterasi 67  | r1: 0.374102 | c1: 0.300000 | c2: 0.175898
## Iterasi 68  | r1: 0.374142 | c1: 0.300000 | c2: 0.175858
## Iterasi 69  | r1: 0.374180 | c1: 0.300000 | c2: 0.175820
## Iterasi 70  | r1: 0.374217 | c1: 0.300000 | c2: 0.175783
## Iterasi 71  | r1: 0.374251 | c1: 0.300000 | c2: 0.175749
## Iterasi 72  | r1: 0.374285 | c1: 0.300000 | c2: 0.175715
## Iterasi 73  | r1: 0.374316 | c1: 0.300000 | c2: 0.175684
## Iterasi 74  | r1: 0.374347 | c1: 0.300000 | c2: 0.175653
## Iterasi 75  | r1: 0.374376 | c1: 0.300000 | c2: 0.175624
## Iterasi 76  | r1: 0.374404 | c1: 0.300000 | c2: 0.175596
## Iterasi 77  | r1: 0.374430 | c1: 0.300000 | c2: 0.175570
## Iterasi 78  | r1: 0.374456 | c1: 0.300000 | c2: 0.175544
## Iterasi 79  | r1: 0.374480 | c1: 0.300000 | c2: 0.175520
## Iterasi 80  | r1: 0.374503 | c1: 0.300000 | c2: 0.175497
## Iterasi 81  | r1: 0.374525 | c1: 0.300000 | c2: 0.175475
## Iterasi 82  | r1: 0.374546 | c1: 0.300000 | c2: 0.175454
## Iterasi 83  | r1: 0.374567 | c1: 0.300000 | c2: 0.175433
## Iterasi 84  | r1: 0.374586 | c1: 0.300000 | c2: 0.175414
## Iterasi 85  | r1: 0.374604 | c1: 0.300000 | c2: 0.175396
## Iterasi 86  | r1: 0.374622 | c1: 0.300000 | c2: 0.175378
## Iterasi 87  | r1: 0.374639 | c1: 0.300000 | c2: 0.175361
## Iterasi 88  | r1: 0.374655 | c1: 0.300000 | c2: 0.175345
## Iterasi 89  | r1: 0.374670 | c1: 0.300000 | c2: 0.175330
## Iterasi 90  | r1: 0.374685 | c1: 0.300000 | c2: 0.175315
## Iterasi 91  | r1: 0.374699 | c1: 0.300000 | c2: 0.175301
## Iterasi 92  | r1: 0.374713 | c1: 0.300000 | c2: 0.175287
## Iterasi 93  | r1: 0.374726 | c1: 0.300000 | c2: 0.175274
## Iterasi 94  | r1: 0.374738 | c1: 0.300000 | c2: 0.175262
## Iterasi 95  | r1: 0.374750 | c1: 0.300000 | c2: 0.175250
## Iterasi 96  | r1: 0.374761 | c1: 0.300000 | c2: 0.175239
## Iterasi 97  | r1: 0.374771 | c1: 0.300000 | c2: 0.175229
## Iterasi 98  | r1: 0.374782 | c1: 0.300000 | c2: 0.175218
## Iterasi 99  | r1: 0.374791 | c1: 0.300000 | c2: 0.175209
## Iterasi 100 | r1: 0.374801 | c1: 0.300000 | c2: 0.175199
## Iterasi 101 | r1: 0.374810 | c1: 0.300000 | c2: 0.175190
## Iterasi 102 | r1: 0.374818 | c1: 0.300000 | c2: 0.175182
## Iterasi 103 | r1: 0.374826 | c1: 0.300000 | c2: 0.175174
## Iterasi 104 | r1: 0.374834 | c1: 0.300000 | c2: 0.175166
## Iterasi 105 | r1: 0.374842 | c1: 0.300000 | c2: 0.175158
## Iterasi 106 | r1: 0.374849 | c1: 0.300000 | c2: 0.175151
## Iterasi 107 | r1: 0.374855 | c1: 0.300000 | c2: 0.175145
## Iterasi 108 | r1: 0.374862 | c1: 0.300000 | c2: 0.175138
## Iterasi 109 | r1: 0.374868 | c1: 0.300000 | c2: 0.175132
## Iterasi 110 | r1: 0.374874 | c1: 0.300000 | c2: 0.175126
## Iterasi 111 | r1: 0.374880 | c1: 0.300000 | c2: 0.175120
## Iterasi 112 | r1: 0.374885 | c1: 0.300000 | c2: 0.175115
## Iterasi 113 | r1: 0.374890 | c1: 0.300000 | c2: 0.175110
## Iterasi 114 | r1: 0.374895 | c1: 0.300000 | c2: 0.175105
## Iterasi 115 | r1: 0.374900 | c1: 0.300000 | c2: 0.175100
## Iterasi 116 | r1: 0.374904 | c1: 0.300000 | c2: 0.175096
## Iterasi 117 | r1: 0.374909 | c1: 0.300000 | c2: 0.175091
## Iterasi 118 | r1: 0.374913 | c1: 0.300000 | c2: 0.175087
## Iterasi 119 | r1: 0.374917 | c1: 0.300000 | c2: 0.175083
## Iterasi 120 | r1: 0.374920 | c1: 0.300000 | c2: 0.175080
## Iterasi 121 | r1: 0.374924 | c1: 0.300000 | c2: 0.175076
## Iterasi 122 | r1: 0.374927 | c1: 0.300000 | c2: 0.175073
## Iterasi 123 | r1: 0.374931 | c1: 0.300000 | c2: 0.175069
## Iterasi 124 | r1: 0.374934 | c1: 0.300000 | c2: 0.175066
## Iterasi 125 | r1: 0.374937 | c1: 0.300000 | c2: 0.175063
## Iterasi 126 | r1: 0.374940 | c1: 0.300000 | c2: 0.175060
## Iterasi 127 | r1: 0.374942 | c1: 0.300000 | c2: 0.175058
## Iterasi 128 | r1: 0.374945 | c1: 0.300000 | c2: 0.175055
## Iterasi 129 | r1: 0.374947 | c1: 0.300000 | c2: 0.175053
## Iterasi 130 | r1: 0.374950 | c1: 0.300000 | c2: 0.175050
## Iterasi 131 | r1: 0.374952 | c1: 0.300000 | c2: 0.175048
## Iterasi 132 | r1: 0.374954 | c1: 0.300000 | c2: 0.175046
## Iterasi 133 | r1: 0.374956 | c1: 0.300000 | c2: 0.175044
## Iterasi 134 | r1: 0.374958 | c1: 0.300000 | c2: 0.175042
## Iterasi 135 | r1: 0.374960 | c1: 0.300000 | c2: 0.175040
## Iterasi 136 | r1: 0.374962 | c1: 0.300000 | c2: 0.175038
## Iterasi 137 | r1: 0.374964 | c1: 0.300000 | c2: 0.175036
## Iterasi 138 | r1: 0.374965 | c1: 0.300000 | c2: 0.175035
## Iterasi 139 | r1: 0.374967 | c1: 0.300000 | c2: 0.175033
## Iterasi 140 | r1: 0.374968 | c1: 0.300000 | c2: 0.175032
## Iterasi 141 | r1: 0.374970 | c1: 0.300000 | c2: 0.175030
## Iterasi 142 | r1: 0.374971 | c1: 0.300000 | c2: 0.175029
## Iterasi 143 | r1: 0.374972 | c1: 0.300000 | c2: 0.175028
## Iterasi 144 | r1: 0.374974 | c1: 0.300000 | c2: 0.175026
## Iterasi 145 | r1: 0.374975 | c1: 0.300000 | c2: 0.175025
## Iterasi 146 | r1: 0.374976 | c1: 0.300000 | c2: 0.175024
## Iterasi 147 | r1: 0.374977 | c1: 0.300000 | c2: 0.175023
## Iterasi 148 | r1: 0.374978 | c1: 0.300000 | c2: 0.175022
## Iterasi 149 | r1: 0.374979 | c1: 0.300000 | c2: 0.175021
## Iterasi 150 | r1: 0.374980 | c1: 0.300000 | c2: 0.175020
## Iterasi 151 | r1: 0.374981 | c1: 0.300000 | c2: 0.175019
## Iterasi 152 | r1: 0.374982 | c1: 0.300000 | c2: 0.175018
## Iterasi 153 | r1: 0.374982 | c1: 0.300000 | c2: 0.175018
## Iterasi 154 | r1: 0.374983 | c1: 0.300000 | c2: 0.175017
## Iterasi 155 | r1: 0.374984 | c1: 0.300000 | c2: 0.175016
## Iterasi 156 | r1: 0.374985 | c1: 0.300000 | c2: 0.175015
## Iterasi 157 | r1: 0.374985 | c1: 0.300000 | c2: 0.175015
## Iterasi 158 | r1: 0.374986 | c1: 0.300000 | c2: 0.175014
## Iterasi 159 | r1: 0.374987 | c1: 0.300000 | c2: 0.175013
## Iterasi 160 | r1: 0.374987 | c1: 0.300000 | c2: 0.175013
## Iterasi 161 | r1: 0.374988 | c1: 0.300000 | c2: 0.175012
## Iterasi 162 | r1: 0.374988 | c1: 0.300000 | c2: 0.175012
## Iterasi 163 | r1: 0.374989 | c1: 0.300000 | c2: 0.175011
## Iterasi 164 | r1: 0.374989 | c1: 0.300000 | c2: 0.175011
## Iterasi 165 | r1: 0.374990 | c1: 0.300000 | c2: 0.175010
## Iterasi 166 | r1: 0.374990 | c1: 0.300000 | c2: 0.175010
## Iterasi 167 | r1: 0.374991 | c1: 0.300000 | c2: 0.175009
## Iterasi 168 | r1: 0.374991 | c1: 0.300000 | c2: 0.175009
## Iterasi 169 | r1: 0.374992 | c1: 0.300000 | c2: 0.175008
## Iterasi 170 | r1: 0.374992 | c1: 0.300000 | c2: 0.175008
## Iterasi 171 | r1: 0.374992 | c1: 0.300000 | c2: 0.175008
## Iterasi 172 | r1: 0.374993 | c1: 0.300000 | c2: 0.175007
## Iterasi 173 | r1: 0.374993 | c1: 0.300000 | c2: 0.175007
## Iterasi 174 | r1: 0.374993 | c1: 0.300000 | c2: 0.175007
## Iterasi 175 | r1: 0.374994 | c1: 0.300000 | c2: 0.175006
## Iterasi 176 | r1: 0.374994 | c1: 0.300000 | c2: 0.175006
## Iterasi 177 | r1: 0.374994 | c1: 0.300000 | c2: 0.175006
## Iterasi 178 | r1: 0.374994 | c1: 0.300000 | c2: 0.175006
## Iterasi 179 | r1: 0.374995 | c1: 0.300000 | c2: 0.175005
## Iterasi 180 | r1: 0.374995 | c1: 0.300000 | c2: 0.175005
## Iterasi 181 | r1: 0.374995 | c1: 0.300000 | c2: 0.175005
## Iterasi 182 | r1: 0.374995 | c1: 0.300000 | c2: 0.175005
## Iterasi 183 | r1: 0.374996 | c1: 0.300000 | c2: 0.175004
## Iterasi 184 | r1: 0.374996 | c1: 0.300000 | c2: 0.175004
## Iterasi 185 | r1: 0.374996 | c1: 0.300000 | c2: 0.175004
## Iterasi 186 | r1: 0.374996 | c1: 0.300000 | c2: 0.175004
## Iterasi 187 | r1: 0.374996 | c1: 0.300000 | c2: 0.175004
## Iterasi 188 | r1: 0.374996 | c1: 0.300000 | c2: 0.175004
## Iterasi 189 | r1: 0.374997 | c1: 0.300000 | c2: 0.175003
## Iterasi 190 | r1: 0.374997 | c1: 0.300000 | c2: 0.175003
## Iterasi 191 | r1: 0.374997 | c1: 0.300000 | c2: 0.175003
## Iterasi 192 | r1: 0.374997 | c1: 0.300000 | c2: 0.175003
## Iterasi 193 | r1: 0.374997 | c1: 0.300000 | c2: 0.175003
## Iterasi 194 | r1: 0.374997 | c1: 0.300000 | c2: 0.175003
## Iterasi 195 | r1: 0.374997 | c1: 0.300000 | c2: 0.175003
## Iterasi 196 | r1: 0.374998 | c1: 0.300000 | c2: 0.175002
## Iterasi 197 | r1: 0.374998 | c1: 0.300000 | c2: 0.175002
## Iterasi 198 | r1: 0.374998 | c1: 0.300000 | c2: 0.175002
## Iterasi 199 | r1: 0.374998 | c1: 0.300000 | c2: 0.175002
## Iterasi 200 | r1: 0.374998 | c1: 0.300000 | c2: 0.175002
# 4. Pembulatan Data Subjek
E13_final <- round(E13) 
E22_final <- n_grouped - E13_final

cat("r1 (Baris 1) :", round(r1, 4), "\n")
## r1 (Baris 1) : 0.375
cat("c1 (Kolom 1) :", round(c1, 4), "\n")
## c1 (Kolom 1) : 0.3
cat("c2 (Kolom 2) :", round(c2, 4), "\n")
## c2 (Kolom 2) : 0.175
tabel_akhir <- matrix(c(n11, n12, E13_final, n21, E22_final, n23), 
                      nrow = 2, byrow = TRUE)
colnames(tabel_akhir) <- c("Kolom 1", "Kolom 2", "Kolom 3")
rownames(tabel_akhir) <- c("Baris 1", "Baris 2")
knitr::kable(tabel_akhir, caption = "Tabel Kontingensi Lengkap")
Tabel Kontingensi Lengkap
Kolom 1 Kolom 2 Kolom 3
Baris 1 10 5 22
Baris 2 20 13 30