set.seed(123)

beta0 <- -0.7
beta1 <- 0.85
beta2 <- 0.5

n_sim <- 100 

Parameter awal yang ditentukan dibuat tidak terlalu besar agar model regresi logistik tetap stabil dan peluang yang dihasilkan tidak terlalu ekstrem, yaitu tetap berada pada rentang yang wajar antara 0 dan 1. Kemudian, jumlah dataset yang dibangkitkan sebanyak 100 kali simulasi.

Data dengan sampel 30

Data bersih n = 30

n <- 30

hasil_bersih_30 <- matrix(NA, nrow = n_sim, ncol = 3)

for(i in 1:n_sim){
  
  x1 <- rnorm(n, mean = 0, sd = 1)
  x2 <- rnorm(n, mean = 0, sd = 1)
  
  p <- exp(beta0 + beta1*x1 + beta2*x2) / (1 + exp(beta0 + beta1*x1 + beta2*x2))
  
  y <- rbinom(n, 1, p)
  
  model <- glm(y ~ x1 + x2, family = binomial)

    hasil_bersih_30[i, ] <- coef(model)
}

colnames(hasil_bersih_30) <- c("b0","b1","b2")
hasil_bersih_30
##                 b0           b1           b2
##   [1,] -1.76366866  0.839750497 -0.388433417
##   [2,] -0.46880251  1.191811882  2.313739253
##   [3,] -0.49653428  0.155143828  1.117931608
##   [4,] -0.19302253 -0.258363606 -1.025832633
##   [5,] -0.76499264  0.507172476  0.058789901
##   [6,] -0.07245498  2.267871674  1.478592935
##   [7,] -1.69309998  1.539977377  1.081471930
##   [8,]  0.09323252  0.918539419  1.813417035
##   [9,] -0.35827676  2.694166782  0.994478662
##  [10,]  0.34858693  0.882214440  0.382937372
##  [11,] -0.44815962  0.332099086  0.007751145
##  [12,] -2.38943942  0.661085061  2.030240067
##  [13,] -0.88203815  1.330545203  1.822000723
##  [14,] -0.35067944  1.668922839  0.523269665
##  [15,] -0.14019292  0.122200735  1.223455375
##  [16,] -0.91779008  0.540642677  0.025515044
##  [17,] -0.13527757  0.629162642 -0.062194037
##  [18,] -1.11150442  0.206089944  0.751979944
##  [19,] -1.76882602  1.619482557 -0.501298119
##  [20,] -0.70109803  0.920069774  0.761672654
##  [21,] -0.42125230  1.118742628 -0.056013187
##  [22,] -0.28535096  0.907401358  0.688841896
##  [23,] -4.38815771  4.362002502  2.527922288
##  [24,] -0.42488171  0.682954357  0.548287778
##  [25,] -0.34797234  0.911850698  0.588882499
##  [26,] -1.51000664  1.078522574  1.041681964
##  [27,] -0.81328356  0.692444207  0.944945971
##  [28,] -0.65311236  2.582441468  0.643654943
##  [29,] -0.75720022  1.847336708  1.283231799
##  [30,] -1.04260397  1.476911120  1.047889738
##  [31,] -0.10879678  2.291461884  1.131601886
##  [32,] -0.60613461  0.968796538  0.338415513
##  [33,] -1.70047363  0.706689674 -0.064210513
##  [34,]  0.44945479  2.838849502  0.288277379
##  [35,] -0.43101552  0.796913034  0.345383168
##  [36,] -0.39027822  0.641797496  1.310428827
##  [37,] -1.04558733  0.901835429  0.669649869
##  [38,] -1.10708903  1.838586575  0.806444373
##  [39,] -1.82013128  0.568585762  0.124589168
##  [40,] -0.53288541  0.856355147  0.274421357
##  [41,] -0.75822291  1.086165426  0.902558488
##  [42,] -1.36254278  1.903313772  1.176455098
##  [43,] -0.09419867  1.188232864  0.750671142
##  [44,] -0.74924334 -0.191245394  2.548763952
##  [45,] -0.82280762  1.258572404  0.701481402
##  [46,] -1.33152091  0.870298357  1.557011251
##  [47,] -0.88856896  0.636085641  0.814245854
##  [48,] -0.95971572  0.579548405  0.612479607
##  [49,] -0.23587916  0.325126460  0.095654044
##  [50,] -0.40534075  1.124869588  0.061742517
##  [51,] -0.85367189  0.950035207  0.609102333
##  [52,] -0.62945381  0.877551826  0.986664740
##  [53,] -0.52269248  0.194103899  0.955456765
##  [54,] -0.06259816  1.319309943  0.979861198
##  [55,] -0.75232717  1.861742563  0.549568973
##  [56,] -2.64721188  2.300273235  2.195423303
##  [57,] -1.12135564  1.047334736 -0.028655423
##  [58,]  0.02962450  1.129465571  1.089670336
##  [59,] -1.90667690  1.457822281  0.057398524
##  [60,] -1.14517615  0.495309735  0.700191410
##  [61,] -0.51750587  0.490675199  1.277484021
##  [62,] -0.62522471  0.545590363  0.480589636
##  [63,] -1.17537795  1.038280695  0.232505464
##  [64,] -1.32286245  1.283326261  0.916949897
##  [65,] -0.47140049  0.147123879  0.884682800
##  [66,] -0.54676700  0.717805099  0.263092150
##  [67,] -1.03645167  1.163174329  1.471645006
##  [68,] -1.33022004  0.896975440 -0.005168776
##  [69,] -0.68604597 -0.009303166  0.103160660
##  [70,] -1.87405345  2.399675036 -0.769048851
##  [71,] -0.38273942  1.268339034  0.400002855
##  [72,] -0.84841200  0.995045984  0.556627993
##  [73,] -0.58531013  0.810192657  0.398578861
##  [74,] -0.59971598  0.780974116 -0.036139269
##  [75,] -0.28233626  2.529431158  0.457052163
##  [76,] -0.31995475  1.089499019  0.551056324
##  [77,] -0.54590486  0.612749683  0.530339284
##  [78,] -0.54523784  1.635700534  1.409184711
##  [79,] -0.55727834  0.464971314  0.970421604
##  [80,] -0.17873275  1.207930746  0.217002459
##  [81,] -1.18613408  1.028225228 -0.382685102
##  [82,] -0.77623454  0.414511972  0.195624837
##  [83,] -0.11648478  1.082071390  0.760316892
##  [84,] -1.23092622  1.114648269  0.968135179
##  [85,] -0.65899073  1.298156246  1.029039776
##  [86,] -0.49474458  0.731160721  0.497862350
##  [87,] -1.76725720  2.052109093  1.504233506
##  [88,] -1.30259851  0.517519700  1.434574007
##  [89,] -0.73620679  1.659493329  1.809815546
##  [90,] -0.75168688  1.030498678  0.999635028
##  [91,] -1.10248077  0.850437246  0.311429319
##  [92,] -0.11936133  0.890651647 -0.306728964
##  [93,] -0.57317106  0.865924888  0.324000761
##  [94,] -1.17200616  0.914978693  0.383288180
##  [95,] -0.80930282  0.405899420  0.546661951
##  [96,] -0.81225734  1.241229581  1.233213553
##  [97,] -2.22350211  0.982742440  1.825303620
##  [98,] -1.27170963  1.582503811  0.987558590
##  [99,] -1.86945665  1.337221157  1.125134463
## [100,] -0.58077948  0.590799315 -0.009302479

Untuk skenario ukuran sampel 30 pada data bersih, variabel independen X1 dan X2 dibangkitkan menggunakan fungsi rnorm(n) yang berarti data dihasilkan dari distribusi normal standar dengan mean = 0 dan standar deviasi = 1, bertujuan agar data tidak terlalu menyebar. Selanjutnya, peluang kejadian dihitung menggunakan rumus model regresi logistik. Kemudian, proses estimasi parameter dilakukan menggunakan fungsi glm() dengan family = binomial, yaitu dalam kerangka Generalized Linear Model (GLM).

Data Multikolinearitas n = 30

hasil_multi_30 <- matrix(NA, nrow = n_sim, ncol = 3)

for(i in 1:n_sim){
  
  x1 <- rnorm(n)
  x2 <- x1 + rnorm(n, 0, 0.1)
  
  p <- exp(beta0 + beta1*x1 + beta2*x2) /
       (1 + exp(beta0 + beta1*x1 + beta2*x2))
  
  y <- rbinom(n, 1, p)
  
  model <- glm(y ~ x1 + x2, family = binomial)
  
  hasil_multi_30[i, ] <- coef(model)
}
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
colnames(hasil_multi_30) <- c("b0","b1","b2")
hasil_multi_30
##                 b0          b1           b2
##   [1,] -0.92820737  2.07506531  -0.44499616
##   [2,]  0.55807384  1.21717861   1.13727240
##   [3,] -1.22600415 -2.92632532   4.79857652
##   [4,] -0.97976353  4.12467188  -1.89197933
##   [5,] -1.43928734 -4.93974030   7.83054290
##   [6,] -0.15198711  5.58221174  -4.41706012
##   [7,] -0.54596069  0.57198148   0.19978864
##   [8,] -0.14217975 -0.06940095   1.90816605
##   [9,] -0.59293721 -1.59552256   2.43157394
##  [10,]  0.13515789  0.20361091  -0.04192979
##  [11,] -0.17102451  6.58517631  -5.48076581
##  [12,] -1.17098245 -1.14967718   2.46410414
##  [13,] -0.59167185  4.92336258  -3.11592662
##  [14,] -1.28338845 -0.35363648   2.17398308
##  [15,] -0.56754542 -2.28230496   3.25833230
##  [16,] -0.60496262  1.71526839  -0.18370590
##  [17,] -0.98016497 -0.20401150   1.55215251
##  [18,] -1.09071068  4.81384064  -3.23080051
##  [19,] -1.43416809 13.45616231 -11.89398389
##  [20,] -0.48043464  2.98255159  -1.62694293
##  [21,] -0.44913162 -1.68520053   3.54925525
##  [22,] -0.41401855 -1.65801778   3.17193533
##  [23,] -0.11480353 -0.49306421   1.69328330
##  [24,] -0.85242981  5.26790414  -3.73316705
##  [25,] -2.09730720  1.03393696   1.77862192
##  [26,] -1.01022047  0.10707236   1.57678616
##  [27,] -1.16309074 -3.84789975   4.75779256
##  [28,] -0.90888408  2.50808968  -1.44244885
##  [29,] -1.57293828  5.67387553  -3.78910589
##  [30,] -1.18707883 -5.99729867   7.60384785
##  [31,] -0.65054347 -5.43232861   8.07676296
##  [32,] -0.62245277  6.27296884  -4.35292236
##  [33,] -0.26660770 -1.52601518   2.07214061
##  [34,] -0.50640331  4.03493595  -3.26190478
##  [35,] -1.47420603 -1.77684204   3.72177423
##  [36,] -0.86452181  1.01386523   0.82457857
##  [37,] -1.25018552 -5.19630170   7.39625454
##  [38,] -1.11060517 -1.85864090   3.69657742
##  [39,] -0.25818836  5.45553204  -3.71771817
##  [40,] -1.58398492  2.36998639   0.65664562
##  [41,] -0.65096183 -1.76378911   2.34164103
##  [42,] -0.42922703  4.73858216  -3.51058014
##  [43,] -1.19219291  0.84996754  -0.69110547
##  [44,] -0.85612822  4.20759738  -2.57026768
##  [45,] -1.15032722 -0.11942727   1.46588785
##  [46,]  0.08088254  3.47931606  -1.91058990
##  [47,] -0.50537372  9.59135524  -8.04061558
##  [48,] -0.15039054 -3.39605288   4.95925636
##  [49,] -0.70392627 -4.73652458   5.77067860
##  [50,] -1.93970291  3.56004916  -1.76174037
##  [51,] -0.76478103  2.80204367  -0.89270085
##  [52,] -0.18039034  9.70915034  -7.97015144
##  [53,] -0.67072134  0.47197422   1.38492497
##  [54,] -2.02590682 10.91543271  -9.22415494
##  [55,] -0.92202054  7.95147856  -6.66608501
##  [56,] -0.61974416  0.93821916   1.86657362
##  [57,] -1.21139591 -1.18875452   1.84779852
##  [58,] -0.37409407 -0.42787728   1.07184960
##  [59,] -0.86457809 -0.34051243   2.39168239
##  [60,] -0.09093551 -4.45491377   5.97619496
##  [61,] -1.32903993  0.28422488   1.86547136
##  [62,] -1.48865803 -2.92549089   3.81066762
##  [63,] -0.86445433  7.41857073  -6.74198679
##  [64,] -0.55908289  1.97692349  -1.21089427
##  [65,] -0.58305895  1.89432840  -0.67519546
##  [66,]  0.51600589 -6.90343609  10.33137552
##  [67,] -0.67670863  0.89739407  -0.01991495
##  [68,] -2.20949819  1.73554733  -1.46687648
##  [69,] -0.68354583 -3.26921732   4.56533290
##  [70,] -0.67378050 -3.81756356   4.96545021
##  [71,] -0.88888826 10.27939785  -7.84239943
##  [72,] -2.11616955 10.41279984  -7.29075451
##  [73,] -1.59973315  9.98169571  -6.69446055
##  [74,] -0.57230580 -5.21126087   6.13985768
##  [75,] -1.06059497  5.48801003  -3.62798513
##  [76,] -0.59347761 -2.63469955   4.72866831
##  [77,] -1.20280788 -1.57148512   2.64712034
##  [78,] -0.75758081  3.92896059  -2.17603104
##  [79,] -0.46719495  4.62083626  -3.17885722
##  [80,] -0.19929050 -0.08423213   1.86503564
##  [81,] -1.30607935  3.35574022  -0.79231346
##  [82,] -1.48828329  3.80520768  -2.54211724
##  [83,] -0.71526614 -1.55466365   3.98370583
##  [84,] -1.61693772 -5.78585320   7.83143420
##  [85,]  0.11001358  5.73136275  -4.66449709
##  [86,] -1.01903392 -7.52735196   9.53611969
##  [87,] -0.98032557 -3.09154542   5.06693762
##  [88,] -0.49545769  5.00433798  -4.15470017
##  [89,] -2.38504325  0.92256341   2.00502334
##  [90,] -0.62281453 -3.64949563   4.55825185
##  [91,] -1.94264698 -5.25598021   8.17801039
##  [92,] -0.01941767  1.09900621  -0.27261179
##  [93,] -0.84178340  0.75921231   0.15277337
##  [94,] -4.89844517 96.73514160 -87.52867637
##  [95,] -0.78656377 -0.06481508   2.10080698
##  [96,] -0.27338523  0.39358006   0.75587417
##  [97,]  0.02201622 -8.21257438  10.68920492
##  [98,] -0.44819507  3.66106592  -2.33632895
##  [99,] -1.23113816 10.84838728  -8.44618386
## [100,] -0.89868336 -7.58347090   9.04807028

Untuk skenario ukuran sampel 30 pada data multikolinearitas, variabel X1 tetap dibangkitkan menggunakan distribusi normal standar, sedangkan variabel X2 dibentuk dengan rumus x2 <- x1 + rnorm(n, 0, 0.1). Artinya, X2 sangat bergantung pada X1 karena hanya ditambahkan error acak yang sangat kecil. Hal ini menyebabkan korelasi yang tinggi antara kedua variabel independen sehingga terbentuk kondisi multikolinearitas. Setelah itu, proses perhitungan peluang dan estimasi parameter dilakukan dengan cara yang sama seperti pada data bersih.

Data Outlier n = 30

hasil_out_30 <- matrix(NA, nrow = n_sim, ncol = 3)

for(i in 1:n_sim){
  
  x1 <- rnorm(n)
  x2 <- rnorm(n)
  
  # tambahkan outlier
  x1[1:5] <- c(5, 6, -5, -6, 7)
  x2[1:5] <- c(5, 6, -5, -6, 7)
  
  p <- exp(beta0 + beta1*x1 + beta2*x2) /
       (1 + exp(beta0 + beta1*x1 + beta2*x2))
  
  y <- rbinom(n, 1, p)
  
  model <- glm(y ~ x1 + x2, family = binomial)
  
  hasil_out_30[i, ] <- coef(model)
}
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
colnames(hasil_out_30) <- c("b0","b1","b2")
hasil_out_30
##                  b0          b1           b2
##   [1,] -0.926809236  1.68806710  0.728153094
##   [2,] -1.104292008  0.95460805  0.538729034
##   [3,] -1.198331070  0.05101536  1.120942906
##   [4,] -0.157428970  0.42220247  0.901432640
##   [5,] -2.331778964  2.56852138  1.208666080
##   [6,] -0.901644440  0.99365646  0.215021354
##   [7,] -0.009490419  0.56296380  0.416329026
##   [8,] -2.348875142  1.69379117  1.118996593
##   [9,]  0.437222728  5.84830506  6.232878455
##  [10,] -1.275394913  3.90335511 -1.292633805
##  [11,] -0.993342386  1.08105582  0.692218881
##  [12,] -0.338167095  0.42255238  0.227068445
##  [13,] -0.903213976  1.83864961  0.742154868
##  [14,] -0.382341688  0.93877418  0.712455418
##  [15,] -0.637583091  0.42594941  0.816855836
##  [16,] -2.281226513  1.08786450  1.783164503
##  [17,] -1.066347417  1.42249228  0.303236167
##  [18,] -1.122819080  1.03235871 -0.198783183
##  [19,] -0.732309240  1.09528811  0.940706178
##  [20,] -1.653663031  1.54913874  1.806481468
##  [21,] -0.985778104  0.99151072  1.139013525
##  [22,] -0.685185075  2.01820068 -0.065104450
##  [23,] -1.054185565  1.26605136  0.067879239
##  [24,] -1.330976718  2.29698398  0.645965444
##  [25,] -0.468113130  0.95776503  0.456729081
##  [26,] -1.713176725  0.63226390  0.660215611
##  [27,] -2.521966109  3.43771190  4.537054071
##  [28,] -1.087179709  0.81557218 -0.144456592
##  [29,] -0.537416323  0.41652272  0.582824664
##  [30,] -0.546320606  0.97565559  0.980100649
##  [31,] -0.868823974  0.06292522  0.630251798
##  [32,] -0.159052178 -0.22689858  0.945606138
##  [33,] -0.321601535  1.02740776 -0.455324237
##  [34,] -0.914557069  1.73063617  0.284107400
##  [35,] -2.914653022  3.02952148  3.894406009
##  [36,] -0.945217944  0.67615716  0.133879358
##  [37,] -0.595576845  0.03145882  0.679265443
##  [38,] -1.683792989 -0.10406660  0.743522519
##  [39,] -2.334093940  0.65840739  0.938685854
##  [40,] -0.789468707  1.79581730  1.810630333
##  [41,] -1.718403730  2.41098054 -0.423384755
##  [42,] -0.111968062  1.05927914  1.637121446
##  [43,]  0.138024707  0.60560614  0.995935901
##  [44,] -0.499263210  1.12718962  2.370147334
##  [45,] -1.182668787  3.09086284  1.243861327
##  [46,]  0.479330089  2.09980808  1.186826143
##  [47,] -0.717519200  0.62003686  0.008911179
##  [48,] -0.737671250  3.87286287  1.543109167
##  [49,] -0.809052972  1.71318930  0.864728060
##  [50,] -1.461494448  1.92398363 -0.533583160
##  [51,] -0.596501878  0.59758035  0.391620493
##  [52,] -0.200682611  0.18430031  0.584732199
##  [53,] -0.294599403  2.18457430 -0.304862562
##  [54,] -0.756872741  0.41582156  0.731792098
##  [55,] -0.739175857  0.64189940  0.809293214
##  [56,] -0.803456152  0.85709149  1.482685077
##  [57,] -0.968118262  1.34047869  2.081848186
##  [58,] -0.842589122  0.72075049  0.263499946
##  [59,] -1.630173016  1.74031381  1.252411242
##  [60,] -1.569247029  1.07226539  0.433776049
##  [61,] -1.144440483  0.09007821  0.795650041
##  [62,] -0.629177579  1.39485210 -0.205612074
##  [63,] -1.057666838  0.65335030 -0.032934791
##  [64,] -0.591917773  1.15087349  0.673552586
##  [65,] -1.330382050  0.91980424  1.154562112
##  [66,] -0.286640862  1.52087936  1.552892128
##  [67,] -0.814058694  0.94152048  0.045213581
##  [68,] -0.821443916  0.32498284  0.847050787
##  [69,] -0.023908430  1.59931499  0.577709030
##  [70,] -0.727572729  1.45730470  0.296425980
##  [71,] -0.883272962  1.42363683 -0.769100788
##  [72,] -0.038192209  0.54662312  0.119631862
##  [73,] -0.505451972  0.95997952  1.376116315
##  [74,] -1.017627864  3.22193943  1.947630026
##  [75,] -1.045938580  0.41877787  0.192986427
##  [76,] -0.118610751  1.39499350  0.183458964
##  [77,]  0.322570853  1.17846710  0.028775640
##  [78,] -0.758663157  0.47360349  0.211713018
##  [79,] -1.626450912  0.86205775  0.370767626
##  [80,] -0.751826782  1.88600209 -0.439362997
##  [81,] -0.197281360  2.77045435  0.182576299
##  [82,] -0.124552103 -0.43120277  1.197113332
##  [83,] -1.130540162  0.16758520  0.607376476
##  [84,] -0.894998327  0.42938484  0.540075201
##  [85,] -0.696541000  1.07471991  1.350856736
##  [86,] -0.799721993  1.07491848 -0.098648137
##  [87,] -1.057556088  1.04741668  0.994759741
##  [88,] -0.800425945  1.53106191 -0.095322960
##  [89,] -0.463897645  1.53728890  0.299346808
##  [90,] -0.176091733  0.64428857  1.044337779
##  [91,] -0.868376815  0.79082687  0.670959573
##  [92,] -0.545582871  0.91981856  0.487024123
##  [93,] -1.615539183  0.87205072  0.954481128
##  [94,] -1.015784726  0.53452756  0.729847836
##  [95,] -0.119306403  0.42670087  0.416955446
##  [96,] -0.287369852  1.60031302  1.407601801
##  [97,] -1.123701218  1.90284459  0.917827554
##  [98,] -0.795590358  1.02818794 -0.108372832
##  [99,] -0.778842919  0.59506953  1.088053729
## [100,] -0.317438916  0.13452187  0.500709601

Untuk skenario ukuran sampel 30 pada data outlier, variabel X1dan X2 juga dibangkitkan menggunakan rnorm(n) yang berarti data awal berasal dari distribusi normal. Namun,ditambahkan nilai ekstrem (outlier) pada lima observasi pertama menggunakan kode x1[1:5] <- c(5, 6, -5, -6, 7) dan x2[1:5] <- c(5, 6, -5, -6, 7). Umumnya, data normal berada pada rentang sekitar -3 sampai 3, sehingga nilai 5, 6, -5, -6, dan 7 termasuk sangat jauh dari pusat data dan dianggap sebagai nilai ekstrem.

Data dengan sampel 150

Data bersih n = 150

n <- 150

hasil_bersih_150 <- matrix(NA, nrow = n_sim, ncol = 3)

for(i in 1:n_sim){
  
  x1 <- rnorm(n)
  x2 <- rnorm(n)
  
  p <- exp(beta0 + beta1*x1 + beta2*x2) /
       (1 + exp(beta0 + beta1*x1 + beta2*x2))
  
  y <- rbinom(n, 1, p)
  
  model <- glm(y ~ x1 + x2, family = binomial)
  
  hasil_bersih_150[i, ] <- coef(model)
}

colnames(hasil_bersih_150) <- c("b0","b1","b2")
hasil_bersih_150
##                b0        b1           b2
##   [1,] -0.5095489 0.6318371  0.176760326
##   [2,] -0.7802950 0.6922505  0.704578804
##   [3,] -0.1296114 0.9144236  0.635546520
##   [4,] -0.6384661 0.8623258  0.452018651
##   [5,] -0.6158225 0.8441882  0.360643139
##   [6,] -0.5847152 0.8408729  0.788709953
##   [7,] -0.3326048 0.5100911  0.502918111
##   [8,] -0.8601874 0.9300472  0.405546987
##   [9,] -0.4918855 0.4609035  0.752809033
##  [10,] -0.8241429 0.8018678  0.733633368
##  [11,] -0.5605560 0.8857392  0.179956814
##  [12,] -0.8027237 0.7668836  0.538912838
##  [13,] -0.9747341 1.0810241  0.849609140
##  [14,] -0.5244849 0.7117138  0.424261275
##  [15,] -0.8106531 0.5807960  0.762168604
##  [16,] -0.7495551 0.5685177  0.624066691
##  [17,] -0.4501932 1.1125205  0.421857038
##  [18,] -0.5954928 1.0434950  1.109237461
##  [19,] -0.6486821 0.8122600  0.364119316
##  [20,] -0.7991972 0.8248270  0.798602413
##  [21,] -0.6919089 0.7484005  0.487071313
##  [22,] -0.7286713 0.9467458  0.782317608
##  [23,] -0.5755911 1.1521498  0.672781818
##  [24,] -0.5256882 0.9617715  0.380727898
##  [25,] -0.8722554 0.5220327  0.480126026
##  [26,] -0.6388713 1.0319746  0.479555124
##  [27,] -0.6414707 0.7893837  0.583575555
##  [28,] -0.6922340 0.9095256  0.441625819
##  [29,] -1.0199489 1.0231348  0.667934623
##  [30,] -0.8354393 0.7786103  0.425597689
##  [31,] -0.8534161 1.0946434  0.604046726
##  [32,] -0.9618922 1.0188898  0.773010154
##  [33,] -0.4671253 1.3659837  1.213866788
##  [34,] -0.8582485 1.1815157  0.998247595
##  [35,] -0.8759088 0.7342254  0.783158990
##  [36,] -0.6115096 1.3416456  0.778061187
##  [37,] -0.8219557 1.0497342  0.854231530
##  [38,] -0.6094451 0.7654757  0.444642372
##  [39,] -0.7408175 1.2554501  0.625904370
##  [40,] -0.5696437 1.0160180  0.212168280
##  [41,] -0.8887075 0.7944864  0.335296153
##  [42,] -0.5929595 0.7637718  0.228885944
##  [43,] -0.5211860 0.7433951  0.608080457
##  [44,] -0.8462414 0.8642363  0.407179783
##  [45,] -0.8522797 1.2759119 -0.007985609
##  [46,] -0.5570816 0.7926787  0.365194418
##  [47,] -0.7390933 0.8327508  0.529559882
##  [48,] -0.9252560 1.3274331  0.800822951
##  [49,] -0.5358002 0.7022897  0.633473395
##  [50,] -0.6800782 0.9192144  0.769675140
##  [51,] -0.9315333 0.7588586  0.458868520
##  [52,] -0.6978705 0.8315978  0.565572572
##  [53,] -0.1967355 1.0315011  0.609790748
##  [54,] -0.4988303 0.5376991  0.616635712
##  [55,] -0.5678399 0.8954835  0.212767597
##  [56,] -0.8667512 0.7527278  0.552842408
##  [57,] -0.5289567 0.6891673  0.843967846
##  [58,] -0.6062151 0.4783518  0.654875734
##  [59,] -0.7312405 0.7408093  0.565728631
##  [60,] -0.6216638 1.0379625  0.621975934
##  [61,] -0.8888463 0.8662171  0.434254879
##  [62,] -0.3802216 0.6633852  0.350792558
##  [63,] -0.6863364 0.6292758  0.555904019
##  [64,] -0.6027115 0.6841923  0.448254370
##  [65,] -0.6883010 0.6398827  0.369410834
##  [66,] -0.6212412 0.9591581  0.317698479
##  [67,] -1.1025480 1.0838168  0.551600496
##  [68,] -0.3334658 0.9301547  0.809642410
##  [69,] -0.7052831 1.1836866  0.849398037
##  [70,] -0.6770126 0.7781335  0.472538414
##  [71,] -0.8447792 1.2401341  0.874452331
##  [72,] -0.7859636 0.9855099  0.595205894
##  [73,] -0.9070424 0.9908731  0.643183413
##  [74,] -0.5802737 1.0100623  0.723136633
##  [75,] -0.7692429 0.8239136  0.507614855
##  [76,] -1.0879430 0.7849760  0.602207254
##  [77,] -0.6132846 0.9095343  0.668939642
##  [78,] -0.5469210 0.8147952  0.373924681
##  [79,] -0.9139536 0.8247038  0.523895262
##  [80,] -0.5245611 0.7935550  0.387661262
##  [81,] -0.7837194 1.0369267  0.607617623
##  [82,] -0.4903697 0.5673104  0.639328081
##  [83,] -0.9593183 1.0921871  0.144995762
##  [84,] -0.5114329 0.7709300  0.227913483
##  [85,] -0.4244446 0.8730976  0.368028862
##  [86,] -0.5692531 1.0110152  0.401281544
##  [87,] -0.7430013 0.7552030  0.367386516
##  [88,] -0.8928386 0.8440622  0.487119026
##  [89,] -0.8417989 1.0163688  0.406588569
##  [90,] -0.5613423 0.9986199  0.538369043
##  [91,] -0.5566704 0.9674579  0.327039428
##  [92,] -0.5352072 0.6850387  0.622589393
##  [93,] -0.8311639 0.7631347  0.523722392
##  [94,] -0.7180411 0.6571889  0.472819819
##  [95,] -0.6491101 0.7121898  0.181020093
##  [96,] -0.7338746 1.1225069  0.207417519
##  [97,] -0.7890424 0.5618598  0.483804365
##  [98,] -0.7278760 0.9482424  0.659063104
##  [99,] -0.6514356 1.0129977  0.493926231
## [100,] -0.5786152 0.7959266  0.341371804

Data MULTIKOLINEARITAS N = 150

hasil_multi_150 <- matrix(NA, nrow = n_sim, ncol = 3)

for(i in 1:n_sim){
  
  x1 <- rnorm(n)
  x2 <- x1 + rnorm(n, 0, 0.1)
  
  p <- exp(beta0 + beta1*x1 + beta2*x2) /
       (1 + exp(beta0 + beta1*x1 + beta2*x2))
  
  y <- rbinom(n, 1, p)
  
  model <- glm(y ~ x1 + x2, family = binomial)
  
  hasil_multi_150[i, ] <- coef(model)
}

colnames(hasil_multi_150) <- c("b0","b1","b2")
hasil_multi_150
##                b0          b1          b2
##   [1,] -0.8034658  0.21838095  1.32982290
##   [2,] -1.1207756  5.06681254 -3.18001170
##   [3,] -0.9647705  9.56396031 -7.55429317
##   [4,] -0.5708715  0.75964246  0.88030649
##   [5,] -0.6578815 -1.49654249  3.10317529
##   [6,] -0.8190136 -0.09211654  1.57537316
##   [7,] -0.5147514  1.21276237  0.19908927
##   [8,] -0.9267444  0.94744612  0.15010286
##   [9,] -0.6608735  0.46778006  0.69986480
##  [10,] -0.6685836  0.69785621  0.37469524
##  [11,] -0.7945578  2.41680357 -1.18094938
##  [12,] -0.4561689 -0.72171909  1.73441123
##  [13,] -0.7921475 -1.31994647  3.04868570
##  [14,] -0.6793836  1.29091787  0.63272611
##  [15,] -0.6045790  1.86748859 -0.53449830
##  [16,] -0.4576436  0.19183705  1.11000521
##  [17,] -0.8637504 -0.90169450  2.56046156
##  [18,] -0.8176783 -1.38395958  2.90114907
##  [19,] -0.7458622 -1.77963262  3.00237686
##  [20,] -1.0274275  4.69535583 -3.04613231
##  [21,] -0.3856715  4.80873603 -3.36610182
##  [22,] -0.4417961  0.68172958  1.10546737
##  [23,] -0.4359454  5.29153013 -3.49613179
##  [24,] -0.7940584  1.14590426  0.56239464
##  [25,] -0.8976153 -2.55767524  3.87919301
##  [26,] -0.5618407  3.46047430 -1.74744307
##  [27,] -0.7044671  1.00381539  0.59243040
##  [28,] -0.8676534  1.70554592 -0.17610208
##  [29,] -0.4160939 -2.51022088  3.71021065
##  [30,] -0.8925508  3.68826025 -1.93112765
##  [31,] -0.9530792  4.53904684 -2.88698248
##  [32,] -0.7266455 -1.36033683  2.72939031
##  [33,] -1.1688544  1.22573993  0.27054246
##  [34,] -0.6212198  0.76407566  0.81387878
##  [35,] -0.8523329 -1.92213447  3.21796366
##  [36,] -0.8790997  0.45247107  1.22388929
##  [37,] -0.9639194 -3.35250628  4.61348061
##  [38,] -0.7333431  2.38821663 -0.75051410
##  [39,] -1.0657951 -1.74975312  3.03694083
##  [40,] -0.8095889  2.06442116 -0.67534582
##  [41,] -0.6518792  2.29375325 -1.26946389
##  [42,] -0.7121088  0.86603905  0.53029125
##  [43,] -0.7161424  1.53918238 -0.58008060
##  [44,] -0.7778176 -0.21836508  1.91792843
##  [45,] -0.6728985  0.91040517  0.32968129
##  [46,] -0.7318662  3.68753747 -2.38047709
##  [47,] -0.9291765  1.10500716  1.01513748
##  [48,] -0.6078506 -0.88398529  2.29311683
##  [49,] -0.6538784  0.02557235  1.14095628
##  [50,] -0.8679909 -0.36742592  1.56547720
##  [51,] -0.4603681  1.34342999 -0.17083878
##  [52,] -0.6732917  0.16265101  1.26324538
##  [53,] -0.8443203 -1.55263311  3.14760958
##  [54,] -0.7729562 -0.10029699  1.20278343
##  [55,] -0.6397927  0.31226775  1.40661703
##  [56,] -0.6990218  2.48736543 -1.38176846
##  [57,] -0.6802925  1.49831105 -0.50293453
##  [58,] -0.4592577  0.99351093  0.11531086
##  [59,] -0.9645819  4.07619588 -2.39717775
##  [60,] -0.6814728 -0.63396306  2.15368909
##  [61,] -1.0063819 -2.61167512  3.69384186
##  [62,] -0.5941038  1.52023078  0.00681258
##  [63,] -0.7351065  3.36253072 -2.22265859
##  [64,] -0.6338752  3.03502835 -1.60298536
##  [65,] -0.9728850  1.69664074 -0.21648479
##  [66,] -0.7883016  2.25473105 -0.71798632
##  [67,] -0.9805403  1.55848793 -0.10789704
##  [68,] -0.9030586  0.99331651  0.27548038
##  [69,] -0.4073407 -2.29459230  3.40936378
##  [70,] -0.7132251  0.30685465  1.04318615
##  [71,] -1.0296729  2.78172724 -0.99654791
##  [72,] -0.7853576  2.67828840 -1.15195950
##  [73,] -0.5771370 -2.11732847  3.35042683
##  [74,] -0.5169740  5.00714589 -3.85060358
##  [75,] -0.5558283  2.66928652 -0.95684592
##  [76,] -0.7503303 -0.08957633  1.44152682
##  [77,] -1.1531631 -2.52333871  3.67433331
##  [78,] -0.8317558  2.39223135 -0.97675780
##  [79,] -1.0635825  0.80405864  0.59269385
##  [80,] -0.5721104 -2.98642531  4.33177970
##  [81,] -0.7532034  2.19948241 -0.92894387
##  [82,] -0.7449921  0.62722661  0.87142983
##  [83,] -0.5783420  2.84507269 -1.35178661
##  [84,] -0.6406343  2.69241672 -0.74319753
##  [85,] -1.0391379  8.34734376 -6.55896233
##  [86,] -1.1427257  2.44676955 -1.16244994
##  [87,] -0.5718177  4.69827688 -3.64740378
##  [88,] -0.5228574 -0.62226371  2.23741438
##  [89,] -1.1041660 -0.99475047  2.96127256
##  [90,] -0.8688899  2.07024779 -0.54560678
##  [91,] -0.6122708  3.25586351 -1.51245544
##  [92,] -0.7529978 -1.97587615  2.93490038
##  [93,] -0.4960248 -0.87902213  2.53460118
##  [94,] -0.7415596  2.40567923 -0.78543246
##  [95,] -0.9995753  0.92289674  1.05250285
##  [96,] -0.7194733  3.24124795 -1.47617677
##  [97,] -0.8320874 -0.74037056  2.15846771
##  [98,] -0.5632745 -0.35555569  1.86399794
##  [99,] -0.7975618  0.90962819  0.54744422
## [100,] -0.8845609  1.68207161 -0.41754134

Data Outlier n = 150

hasil_out_150 <- matrix(NA, nrow = n_sim, ncol = 3)

for(i in 1:n_sim){
  
  x1 <- rnorm(n)
  x2 <- rnorm(n)
  
  x1[1:5] <- c(5, 6, -5, -6, 7)
  x2[1:5] <- c(5, 6, -5, -6, 7)
  
  p <- exp(beta0 + beta1*x1 + beta2*x2) /
       (1 + exp(beta0 + beta1*x1 + beta2*x2))
  
  y <- rbinom(n, 1, p)
  
  model <- glm(y ~ x1 + x2, family = binomial)
  
  hasil_out_150[i, ] <- coef(model)
}

colnames(hasil_out_150) <- c("b0","b1","b2")
hasil_out_150
##                b0        b1         b2
##   [1,] -1.1630616 0.9176290 0.67629768
##   [2,] -0.7475636 1.1157490 0.34795234
##   [3,] -0.6918543 1.0603402 0.43550017
##   [4,] -0.7496452 1.1001367 0.33489354
##   [5,] -0.7882648 0.8742869 0.26319189
##   [6,] -0.7729171 1.0939595 0.61231416
##   [7,] -0.8234779 0.8955270 0.34919187
##   [8,] -0.6926312 0.5304097 0.47573477
##   [9,] -0.4568175 0.8659019 0.53788743
##  [10,] -0.9125856 1.1596678 0.47842757
##  [11,] -0.6486724 0.6605838 0.48076544
##  [12,] -0.9342909 0.7101253 0.54028666
##  [13,] -0.6408588 1.0062334 0.87347686
##  [14,] -0.6605581 0.6495910 0.37734797
##  [15,] -0.3663053 0.7669795 0.62882778
##  [16,] -0.2470541 1.0076771 0.57562192
##  [17,] -0.9892578 0.7805009 0.45108146
##  [18,] -0.7299372 0.7374906 0.41561868
##  [19,] -0.5021216 1.1433025 0.34042416
##  [20,] -0.4274059 0.5560441 0.44273310
##  [21,] -0.4915597 1.3246174 0.70028715
##  [22,] -0.4663537 0.5006459 0.40322498
##  [23,] -0.5161774 0.9659478 0.40047390
##  [24,] -0.8248636 1.2621592 0.57624348
##  [25,] -0.9401218 1.0190752 0.39131006
##  [26,] -0.7058115 0.6184547 0.51271520
##  [27,] -1.0588486 0.9608072 0.35978274
##  [28,] -0.6606987 0.8496162 0.60441705
##  [29,] -1.0546957 0.5897932 0.48347459
##  [30,] -0.6539528 0.5808930 0.73440615
##  [31,] -0.6418793 0.2616016 0.50476965
##  [32,] -0.8469533 0.7444023 0.62926699
##  [33,] -0.8315316 1.1233613 0.46225565
##  [34,] -0.7292065 1.1406393 0.60786180
##  [35,] -0.6526519 1.0454362 0.48159633
##  [36,] -1.1099618 0.9279538 0.57807429
##  [37,] -0.7804213 0.8797936 0.25816251
##  [38,] -0.7084614 1.0322156 0.31383837
##  [39,] -0.5514783 0.8577136 0.40479167
##  [40,] -1.1450191 0.9169176 0.64807521
##  [41,] -0.6041262 0.8367660 0.38505225
##  [42,] -0.8208822 0.9294380 0.64509255
##  [43,] -0.6103734 0.9319043 0.31990241
##  [44,] -0.6810302 1.0936738 0.71472517
##  [45,] -0.8351344 0.7300368 0.61244593
##  [46,] -0.7185761 0.7043923 0.67083749
##  [47,] -0.7862414 0.6914977 0.40661872
##  [48,] -0.5023371 1.2754364 0.62045621
##  [49,] -0.6874567 0.8798047 0.26839563
##  [50,] -0.7295032 0.7560764 0.47681213
##  [51,] -0.3302411 0.6485558 0.39344450
##  [52,] -0.8180100 0.9815939 0.26629273
##  [53,] -0.5119755 0.4130108 0.35265363
##  [54,] -0.6897478 0.8218044 0.05349371
##  [55,] -0.6984420 1.0475420 0.41569840
##  [56,] -0.8840854 0.7276102 0.42422602
##  [57,] -0.8320981 0.9165804 0.34584964
##  [58,] -0.3952569 1.2935560 0.45293332
##  [59,] -0.5195233 0.6873607 0.31319666
##  [60,] -0.7163291 0.6132521 0.42037568
##  [61,] -0.6867203 0.8247142 0.23375439
##  [62,] -0.6349301 0.8877963 0.50308378
##  [63,] -0.7298579 0.7586183 0.42973819
##  [64,] -0.5203961 0.8184126 0.63286814
##  [65,] -0.6721378 0.4247207 0.37542066
##  [66,] -0.4718181 0.6728033 0.45752799
##  [67,] -0.7142562 1.1125476 0.61746814
##  [68,] -0.8929493 1.0002287 0.37295072
##  [69,] -0.4820897 0.8237338 0.45690684
##  [70,] -0.7774068 0.8912100 0.40873306
##  [71,] -0.6162783 0.6944507 0.40026215
##  [72,] -0.6420489 0.7157421 0.50293414
##  [73,] -1.1783772 0.9401665 0.29677426
##  [74,] -0.4152553 0.5120138 0.32625239
##  [75,] -0.5366767 0.8295942 0.13282253
##  [76,] -0.5156729 1.2575941 0.43305547
##  [77,] -0.7546162 0.7711358 0.32127007
##  [78,] -0.4170883 0.6641674 0.54657304
##  [79,] -1.0400277 1.3325910 0.86744107
##  [80,] -1.1187510 1.1298153 0.65283051
##  [81,] -0.5228894 0.9956515 0.61469558
##  [82,] -0.4466595 0.4860068 0.43962177
##  [83,] -0.5812635 0.8255103 0.38188367
##  [84,] -0.8269141 1.0728908 0.48587094
##  [85,] -0.5207285 0.9371887 0.31007933
##  [86,] -0.2298174 1.0883574 0.86534860
##  [87,] -0.5044293 0.7335477 0.44961472
##  [88,] -0.8998970 1.1059952 0.53645050
##  [89,] -0.6854262 0.7489935 0.31089478
##  [90,] -0.5690415 0.8301957 0.53029334
##  [91,] -0.8885327 1.1409888 0.52234357
##  [92,] -0.6690946 0.8713274 0.47794759
##  [93,] -0.7459157 0.9270152 0.56590598
##  [94,] -0.8347774 1.3842523 0.81788529
##  [95,] -0.6183804 0.8275861 0.49344835
##  [96,] -0.6409335 0.9208416 0.55622260
##  [97,] -0.5798421 0.9858356 0.58346741
##  [98,] -0.8324192 0.5325695 1.06835148
##  [99,] -0.7175655 0.5716292 0.82752373
## [100,] -0.6856530 0.7800215 0.67884335

Menghitung Rata-rata dan Bias

hitung <- function(data){
  c(
    mean_b0 = mean(data[,1]),
    mean_b1 = mean(data[,2]),
    mean_b2 = mean(data[,3]),
    bias_b0 = mean(data[,1]) - beta0,
    bias_b1 = mean(data[,2]) - beta1,
    bias_b2 = mean(data[,3]) - beta2
  )
}

hasil_ringkasan <- rbind(
  Bersih_30 = hitung(hasil_bersih_30),
  Multi_30 = hitung(hasil_multi_30),
  Out_30   = hitung(hasil_out_30),
  
  Bersih_150 = hitung(hasil_bersih_150),
  Multi_150 = hitung(hasil_multi_150),
  Out_150   = hitung(hasil_out_150)
)

print(hasil_ringkasan)
##               mean_b0   mean_b1    mean_b2      bias_b0    bias_b1     bias_b2
## Bersih_30  -0.8335720 1.0791192  0.7175669 -0.133572013 0.22911921  0.21756687
## Multi_30   -0.8711500 2.0387549 -0.3529371 -0.171150025 1.18875493 -0.85293705
## Out_30     -0.8506689 1.2141891  0.7611448 -0.150668885 0.36418908  0.26114479
## Bersih_150 -0.6847040 0.8712245  0.5420893  0.015295982 0.02122447  0.04208935
## Multi_150  -0.7525235 1.1022734  0.3498229 -0.052523488 0.25227340 -0.15017710
## Out_150    -0.6950483 0.8704253  0.4873647  0.004951657 0.02042535 -0.01263534

Rata-rata estimasi parameter diperoleh dengan menghitung nilai rata-rata hasil estimasi dari 100 kali simulasi untuk setiap parameter. Sedangkan bias dihitung dari selisih antara rata-rata hasil estimasi dengan nilai parameter sebenarnya.

Berdasarkan hasil simulasi, skenario yang paling mendekati parameter sebenarnya adalah Bersih_150 dan Out_150, karena nilai rata-rata estimasi parameter β1 dan β2 paling dekat dengan parameter awal serta memiliki bias yang sangat kecil. Hal ini menunjukkan bahwa ukuran sampel besar (n=150) menghasilkan estimasi yang lebih stabil dan akurat.

Sebaliknya, skenario yang paling jauh dari parameter sebenarnya adalah Multi_30, dengan nilai mean β1=2,0388 dan mean β2 =−0,3529, serta bias terbesar pada β1 dan β2. Hal ini menunjukkan bahwa multikolinearitas pada ukuran sampel kecil menyebabkan estimator menjadi tidak stabil dan menghasilkan estimasi yang paling bias dibandingkan skenario lainnya.

Visualisasi

boxplot(
  hasil_bersih_30[,2],
  hasil_multi_30[,2],
  hasil_out_30[,2],
  hasil_bersih_150[,2],
  hasil_multi_150[,2],
  hasil_out_150[,2],
  
  names = c(
    "B30", "M30", "O30",
    "B150", "M150", "O150"
  ),
  
  main = "Perbandingan Estimasi Beta1",
  ylab = "Nilai Estimasi Beta1"
)

# garis parameter sebenarnya (warna merah)
abline( h = beta1, col = "red", lty = 2,lwd = 2)

boxplot(
  hasil_bersih_30[,3],
  hasil_multi_30[,3],
  hasil_out_30[,3],
  hasil_bersih_150[,3],
  hasil_multi_150[,3],
  hasil_out_150[,3],
  
  names = c(
    "B30","M30","O30",
    "B150","M150","O150"
  ),
  
  main = "Perbandingan Estimasi Beta2",
  ylab = "Nilai Estimasi Beta2"
)

abline(h = beta2,col = "red", lty = 2, lwd = 2)

Berdasarkan boxplot tersebut, terlihat bahwa pada ukuran sampel kecil (n=30), penyebaran estimasi parameter lebih lebar dibandingkan ukuran sampel besar (n=150). Hal ini menunjukkan bahwa estimator pada sampel kecil lebih tidak stabil dan menghasilkan variasi estimasi yang lebih besar. Kemudian, multikolinearitas menjadi kondisi yang paling besar memengaruhi ketidakstabilan estimasi parameter dibandingkan outlier maupun data bersih.