BAB IV Aplikasi Jarak Mahalanobis
42
BAB IV APLIKASI JARAK MAHALANOBIS
4.1 Pendeteksian Outlier k Teknologi pendeteksian outlier dengan menggunakan jarak Mahalanobis merupakan teknologi paling awal dalam memisahkan dan menguji calon-calon outlier. Metode ini sangat efektif jika hanya ada 1 buah outlier dalam himpunan data. Berikut ini akan disajikan algoritma mulai dari algoritma membangkitkan n buah data acak dari distribusi normal p-variat N (0, I p ) , kemudian data ke-n dibuat menjadi data outlier, hingga algoritma pengujian outlier.
A. Algoritma membangkitkan data acak Pertama adalah membangkitkan data acak dengan menggunakan StatPlus dalam sistem. Caranya sebagai berikut. -
Klik Statplus > Create Data > Random Numbers
-
Dalam combo box type of distribution pilih “normal” kemudian isi banyaknya sampel yang mau dibangkitkan (misalnya 5) dan ukuran masing-masing sampelnya (misalnya 100).pada kotak. Pada kotak “mean” isikan 0 dan pada kotak “standard deviation” isikan 1. Ini akan menghasilkan 100 buah data acak dari distribusi normal N (0, I p ) dengan p = 5.
-
Kemudian data ke 100 kita buat menjadi outlier. Caranya dengan menambahkan bilangan x pada setiap kolomnya sehingga data ke 100 akan
Abdullah - 10103076
43
BAB IV Aplikasi Jarak Mahalanobis
berbeda jauh dengan 99 buah data lainnya. Misalnya, ambil x = 5. Jadi, data ke 100 berdistribusi N (5, I p ) . -
Keseratus data tersebut kita simpan dalam matriks A berukuran (100x5).
Berikut adalah contoh matriks data A (100x5) yang diperoleh dari suatu eksperimen. No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
Abdullah - 10103076
1 -1.3328 -1.3729 0.8419 -0.55217 0.47432 -0.60063 -0.69812 -0.85672 -1.1299 0.77329 -0.28882 0.99293 -0.6235 0.093412 -0.07761 -1.3302 -0.3754 -0.83735 0.76303 0.34565 -0.8708 -0.04037 0.41873 -1.0231 0.23214 -0.12885 0.007152 -0.34411 -0.37097 -1.5788 1.1247 -1.059 0.70794 -2.1251 -0.84839 -2.0174
2 -0.76441 -1.722 -0.0964 -1.7173 1.3311 0.79135 -1.0318 1.5966 -0.87197 -0.51983 0.067967 -0.08422 -0.83984 -0.41017 0.1127 -0.11207 0.90739 -0.97292 1.0339 0.87461 1.2467 -0.71696 -1.6418 -1.1028 0.95618 -0.1602 0.91995 -0.87545 -0.44223 0.26189 0.8523 2.0753 -0.71114 -0.20234 1.0072 -0.66811
3 0.072387 1.8961 -1.1115 0.050883 -0.63266 -1.1076 -0.24729 0.060284 2.0264 -0.33222 0.67598 -0.80623 0.004917 0.87825 -0.90205 0.017069 -0.36843 -0.35255 0.30861 0.32904 -0.78816 -0.97344 -0.02151 0.33823 0.016192 -0.73052 0.15474 2.1211 -0.11585 1.2886 1.2121 -1.6427 -0.39124 1.4728 -0.61589 0.85137
4 0.31678 -0.23265 -1.9913 -0.96117 0.025555 2.1983 -0.80065 -0.20792 -0.85283 -0.63333 -1.1612 1.3587 0.21752 -1.4193 0.64133 0.37794 -0.46328 -0.7005 -1.1122 0.88247 0.27616 -0.21897 1.1218 -2.4549 0.72538 -0.48734 0.010789 0.10413 0.10722 -0.1456 -0.82242 1.0417 -0.69118 1.0832 0.067314 1.6295
5 1.6752 -0.32643 -0.94277 -0.34037 0.6584 -0.57773 -0.06877 -0.66434 0.38422 -0.15728 -0.80131 0.068006 0.4768 -0.33712 0.22841 -0.11715 0.95724 0.38632 0.55888 0.96815 -0.10588 -1.6905 -1.251 -0.88997 0.34538 0.79269 0.20038 -0.23012 -0.53781 1.807 -0.86982 0.023188 -0.12734 0.86901 -0.2178 0.45548
44
BAB IV Aplikasi Jarak Mahalanobis 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
Abdullah - 10103076
1.6963 0.72229 -1.5747 -1.0746 -0.71385 0.99016 -0.09261 0.75062 0.41239 0.28703 0.1414 0.23587 -0.0095 0.11011 0.85237 1.4399 0.44426 -1.0412 -0.44807 0.48363 0.42049 0.95241 -0.09543 -0.06736 0.22829 1.2402 0.97078 0.72585 -0.62031 -1.272 -0.86433 -0.33925 0.29553 0.25509 -0.14883 0.673 -0.38743 -1.0569 1.7564 -1.3054 2.0469 -0.33769 0.5333 -0.53027 -1.3711 0.13317 0.17391
1.4028 -0.43206 -1.3634 1.6657 0.58877 1.0095 -0.42972 0.35356 -1.4046 -0.39267 -1.573 -1.34 0.46737 0.62401 1.0869 0.43728 1.6157 2.0374 -0.01539 0.042355 1.5314 0.44593 -0.06891 0.29853 -2.4617 1.9378 0.82369 -0.80988 0.43435 0.1171 1.5657 0.52528 1.5186 -0.6581 -0.58191 0.23494 -0.09878 -0.13521 -1.8865 -1.489 0.14832 0.95391 2.2932 -0.14516 0.071984 0.71399 1.2446
-0.64256 0.90373 -0.26346 -0.02977 3.4578 -1.2781 1.0086 1.2065 -0.5862 -2.4026 1.3954 0.097688 -1.1061 0.10027 -1.6745 0.79612 0.29833 0.47419 1.1867 -2.2623 -1.1882 0.91608 1.0599 -0.12927 0.36336 0.48046 0.87312 0.61448 -0.08555 -0.33829 -0.3259 -1.3437 -1.736 0.64444 1.4727 -0.81723 -1.7099 -0.53736 0.001677 -1.0184 0.14183 0.41978 -0.0195 0.92574 0.31105 1.7142 -0.32662
-0.769 -2.2306 -1.4454 -0.80343 0.56185 -0.54509 -1.854 -0.3328 -1.7823 -0.46323 -1.6553 0.009694 -0.78406 -0.37334 -0.76005 1.2051 0.35864 1.6009 -1.8294 -0.26966 0.11874 1.2407 0.75469 -1.4754 1.1092 0.45968 0.27287 -1.2107 -0.97649 -0.01901 0.3943 1.4125 0.68871 -0.05834 0.26525 -0.31115 -0.64548 -0.2492 -0.62033 0.98889 0.044209 1.157 -2.2938 0.44996 -0.60867 0.26122 -0.80745
-1.0855 -1.7144 0.62713 -0.3451 0.24317 -0.31603 -0.60363 1.123 1.0635 1.6617 0.74635 -0.13213 0.57948 -0.83624 -0.14793 -0.35819 -1.2912 2.2302 -0.24839 -0.87494 -0.1264 -0.69892 0.6098 0.40676 -1.0592 -0.65914 1.2788 1.5707 0.68486 0.017333 2.188 -0.59673 -0.52292 0.071472 1.2118 -1.109 0.54005 -0.29585 -0.65926 1.1071 -0.00091 -0.83294 0.5013 0.77958 0.37537 -1.8562 -1.4053
45
BAB IV Aplikasi Jarak Mahalanobis 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
-0.21817 0.66284 0.12896 -1.0817 0.34321 -0.13887 0.47251 -0.27104 0.37578 -0.43672 -0.11797 -1.2533 0.61005 1.3318 -0.32394 -0.60176 4.0012
0.49611 0.55803 -1.9399 2.4346 0.34695 -0.97556 0.46545 -0.0999 -0.28052 0.41359 0.29667 1.1556 -0.97836 -1.1571 -0.05485 1.1387 5.7722
-2.1588 -1.1567 0.52357 0.26126 0.36388 -0.18714 2.0956 1.0123 -0.06151 1.0444 -0.83518 -0.35858 -0.7666 0.45457 2.0819 0.33425 4.5264
-0.66643 0.22288 2.2394 -0.49862 0.55337 -0.34541 -0.09818 -2.0562 -1.676 0.80324 -1.1286 1.0443 0.64466 0.98628 -0.00198 1.8384 5.2488
-0.43877 -0.24906 -0.7595 0.88969 -2.5637 0.96727 0.12514 0.67305 -0.26724 -1.1222 -0.2028 -0.35414 2.0821 0.1252 0.74461 0.28726 6.3662
B. Algoritma menghitung kuadrat jarak Mahalanobis -
Hitung x ( dibaca “x bar” ) yaitu vektor rata- rata data, x ∈ℜ p dengan p = 5. Cara menghitungnya dengan MS Excel adalah dengan menggunakan perintah “=average(
)”. Matriks data A di atas akan memberikan vektor x sebagai berikut. xbar
-
-0.04604 0.168676 0.108515 -0.07881 0.087454
Kemudian hitung xi − x untuk i = 1, 2, .., 100. Matriks data A memberikan matriks data terpusat xi − x sebagai berikut. No, 1 2 3 4 5 6 7 8
Abdullah - 10103076
1 -1.28676 -1.32686 0.887941 -0.50613 0.520361 -0.55459 -0.65208 -0.81068
2 -0.93309 -1.89068 -0.26508 -1.88598 1.162424 0.622674 -1.20048 1.427924
3 -0.03613 1.787585 -1.22001 -0.05763 -0.74117 -1.21611 -0.3558 -0.04823
4 0.395586 -0.15384 -1.91249 -0.88236 0.104361 2.277106 -0.72184 -0.12911
5 1.587746 -0.41388 -1.03022 -0.42782 0.570946 -0.66518 -0.15623 -0.75179
46
BAB IV Aplikasi Jarak Mahalanobis 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
Abdullah - 10103076
-1.08386 0.819331 -0.24278 1.038971 -0.57746 0.139453 -0.03157 -1.28416 -0.32936 -0.79131 0.809071 0.391691 -0.82476 0.005671 0.464771 -0.97706 0.278181 -0.08281 0.053193 -0.29807 -0.32493 -1.53276 1.170741 -1.01296 0.753981 -2.07906 -0.80235 -1.97136 1.742341 0.768331 -1.52866 -1.02856 -0.66781 1.036201 -0.04656 0.796661 0.458431 0.333071 0.187441 0.281911 0.036539 0.156151 0.898411 1.485941 0.490301 -0.99516 -0.40203
-1.04065 -0.68851 -0.10071 -0.25289 -1.00852 -0.57885 -0.05598 -0.28075 0.738714 -1.1416 0.865224 0.705934 1.078024 -0.88564 -1.81048 -1.27148 0.787504 -0.32888 0.751274 -1.04413 -0.61091 0.093214 0.683624 1.906624 -0.87982 -0.37102 0.838524 -0.83679 1.234124 -0.60074 -1.53208 1.497024 0.420094 0.840824 -0.5984 0.184884 -1.57328 -0.56135 -1.74168 -1.50868 0.298694 0.455334 0.918224 0.268604 1.447024 1.868724 -0.18407
1.917885 -0.44073 0.567465 -0.91474 -0.1036 0.769735 -1.01056 -0.09145 -0.47694 -0.46106 0.200095 0.220525 -0.89667 -1.08195 -0.13003 0.229715 -0.09232 -0.83903 0.046225 2.012585 -0.22436 1.180085 1.103585 -1.75121 -0.49975 1.364285 -0.7244 0.742855 -0.75107 0.795215 -0.37197 -0.13829 3.349285 -1.38661 0.900085 1.097985 -0.69471 -2.51111 1.286885 -0.01083 -1.21461 -0.00824 -1.78301 0.687605 0.189815 0.365675 1.078185
-0.77402 -0.55452 -1.08239 1.437506 0.296326 -1.34049 0.720136 0.456746 -0.38447 -0.62169 -1.03339 0.961276 0.354966 -0.14016 1.200606 -2.37609 0.804186 -0.40853 0.089595 0.182936 0.186026 -0.06679 -0.74361 1.120506 -0.61237 1.162006 0.14612 1.708306 -0.69019 -2.15179 -1.36659 -0.72462 0.640656 -0.46628 -1.77519 -0.25399 -1.70349 -0.38442 -1.57649 0.0885 -0.70525 -0.29453 -0.68124 1.283906 0.437446 1.679706 -1.75059
0.296766 -0.24473 -0.88876 -0.01945 0.389346 -0.42457 0.140956 -0.2046 0.869786 0.298866 0.471426 0.880696 -0.19333 -1.77795 -1.33845 -0.97742 0.257926 0.705236 0.112926 -0.31757 -0.62526 1.719546 -0.95727 -0.06427 -0.21479 0.781556 -0.30525 0.368026 -1.17295 -1.80185 0.539676 -0.43255 0.155716 -0.40348 -0.69108 1.035546 0.976046 1.574246 0.658896 -0.21958 0.492026 -0.92369 -0.23538 -0.44564 -1.37865 2.142746 -0.33584
47
BAB IV Aplikasi Jarak Mahalanobis 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Abdullah - 10103076
0.529671 0.466531 0.998451 -0.04939 -0.02131 0.274331 1.286241 1.016821 0.771891 -0.57427 -1.22596 -0.81829 -0.29321 0.341571 0.301131 -0.10279 0.719041 -0.34139 -1.01086 1.802441 -1.25936 2.092941 -0.29165 0.579341 -0.48423 -1.32506 0.179211 0.219951 -0.17213 0.708881 0.175001 -1.03566 0.389251 -0.09283 0.518551 -0.225 0.421821 -0.39068 -0.07193 -1.20726 0.656091 1.377841 -0.2779 -0.55572 4.047241
-0.12632 1.362724 0.277254 -0.23758 0.129854 -2.63038 1.769124 0.655014 -0.97856 0.265674 -0.05158 1.397024 0.356604 1.349924 -0.82678 -0.75059 0.066264 -0.26745 -0.30389 -2.05518 -1.65768 -0.02036 0.785234 2.124524 -0.31384 -0.09669 0.545314 1.075924 0.327434 0.389354 -2.10858 2.265924 0.178274 -1.14424 0.296774 -0.26858 -0.4492 0.244914 0.127994 0.986924 -1.14704 -1.32578 -0.22352 0.970024 5.603524
-2.37081 -1.29671 0.807565 0.951385 -0.23778 0.254845 0.371945 0.764605 0.505965 -0.19407 -0.4468 -0.43441 -1.45221 -1.84451 0.535925 1.364185 -0.92574 -1.81841 -0.64587 -0.10684 -1.12691 0.033315 0.311265 -0.12801 0.817225 0.202535 1.605685 -0.43513 -2.26731 -1.26521 0.415055 0.152745 0.255365 -0.29565 1.987085 0.903785 -0.17002 0.935885 -0.94369 -0.46709 -0.87511 0.346055 1.973385 0.225735 4.417885
-0.19085 0.197546 1.319506 0.833496 -1.39659 1.188006 0.538486 0.351676 -1.13189 -0.89768 0.059797 0.473106 1.491306 0.767516 0.020465 0.344056 -0.23234 -0.56667 -0.17039 -0.54152 1.067696 0.123015 1.235806 -2.21499 0.528766 -0.52986 0.340026 -0.72864 -0.58762 0.301686 2.318206 -0.41981 0.632176 -0.2666 -0.01937 -1.97739 -1.59719 0.882046 -1.04979 1.123106 0.723466 1.065086 0.076829 1.917206 5.327606
-0.96239 -0.21385 -0.78637 0.522346 0.319306 -1.14665 -0.74659 1.191346 1.483246 0.597406 -0.07012 2.100546 -0.68418 -0.61037 -0.01598 1.124346 -1.19645 0.452596 -0.3833 -0.74671 1.019646 -0.08836 -0.92039 0.413846 0.692126 0.287916 -1.94365 -1.49275 -0.52622 -0.33651 -0.84695 0.802236 -2.65115 0.879816 0.037686 0.585596 -0.35469 -1.20965 -0.29025 -0.44159 1.994646 0.037746 0.657156 0.199806 6.278746
48
BAB IV Aplikasi Jarak Mahalanobis -
Hitung matriks kovariansi sampel dengan menggunakan program Matlab 7. Caranya, ketik di editor m-file atau command windows sintaks berikut: “cov()”. Contohnya, untuk menghitung matriks kovariansi dari matriks data A, ketiklah perintah cov(A) di editor m-file atau di command windows-nya. Matriks kovariansi yang dihasilkan kita beri nama S. Kemudian hitung invers dari S dengan sintaks “inv(<matriks kovariansi yang akan dihitung inversnya>)” atau inv(S). Berikut matriks kovariansi yang diberikan A.
0.87906 0.27055 0.0725 0.27055 1.4013 0.071065 0.0725 0.071065 1.2817 0.12443 0.42444 0.24551 0.060498 0.35239 0.32388
-
0.12443 0.060498 0.42444 0.35239 0.24551 0.32388 1.3202 0.36708 0.36708 1.2111
Hitung kuadrat jarak Mahalanobis di 2 = ( xi − x)* S −1 *( xi − x) untuk i = 1, 2, ..., 100. Matriks data A akan memberikan nilai di 2 pada table di bawah ini. i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Abdullah - 10103076
d2 5.2864 6.8666 4.9028 2.6572 1.86 7.5889 1.4365 4.1295 5.5105 1.7074 2.1078 4.5321 1.5244 2.3448 1.5746 2.2671
49
BAB IV Aplikasi Jarak Mahalanobis 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
Abdullah - 10103076
1.8337 1.9428 2.8441 1.1751 2.864 3.3575 7.0683 5.563 0.77351 1.6496 0.43227 4.5121 0.74328 6.243 4.9194 8.1249 1.9149 7.9578 2.1466 8.2403 6.4596 7.7144 5.3221 5.0923 10.357 3.4217 3.8149 2.5091 6.9874 10.635 6.4076 2.2541 2.2025 1.2101 4.4104 4.3871 4.6191 7.7672 4.2446 5.1168 2.921 3.9831 1.2896 2.0931 9.6551 4.8261 2.3733
50
BAB IV Aplikasi Jarak Mahalanobis 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
5.9909 1.8026 1.9258 6.2353 4.7827 4.9781 0.99946 2.8669 2.2632 3.6154 1.4517 8.9127 8.3281 5.3318 3.4183 10.433 1.3044 2.4449 8.0578 3.9703 4.2473 2.1402 11.662 7.4111 8.4253 2.4547 3.6336 5.0397 2.3281 3.9846 1.4615 4.6064 8.8702 6.097 3.347 3.8223 63.679
C. Algoritma untuk mendeteksi outlier -
Buat plot nilai di 2 untuk i = 1, 2, ..., 100 terhadap indeksnya. Untuk matriks data A akan diperoleh gambar berikut. Pada gambar ini sumbu tegaknya
Abdullah - 10103076
51
BAB IV Aplikasi Jarak Mahalanobis
adalah nilai di 2 dan sumbu datarnya adalah indeks i = 1, 2, ..., 100. GAmbar ini menunjukkan bahwa data ke 100 mempunyai kuadrat jarak Mahalanobis yang sangat besar yaitu 63.679. Sedangkan data 1 sampai 99 mempunyai kuadrat jarak mahalanobis antara 0 sampai 11.662. Jadi, data ke 100 patut dicurigai sebagai outlier.
70
60
50
40
30
20
10
0
0
10
20
30
40
50
60
70
80
90
100
Gambar 4.1 Hitung nilai cut-off untuk α yang diinginkan dengan menggunakan distribusi pendekatan (chi-square dengan parameter p) karena n cukup besar sehingga efektifitas penggunaan cut-off distribusi pendekatan sama dengan cut-off distribusi eksaknya. Kemudian plot nilai cut-off pada Gambar 4.1 di atas.
Abdullah - 10103076
BAB IV Aplikasi Jarak Mahalanobis
52
Algoritma di atas, jika dilaksanakan dalam Matlab 7, maka pada editor m-filenya diisi dengan sintaks sebagai berikut.
A=load('data.txt'); [n p]=size(A); xbar=mean(A); S=cov(A); for i=1:n d2(i)=(A(i,:)-xbar)*inv(S)*(A(i,:)-xbar)'; end cut_pdkt=chi2inv(0.95,p) figure(1) plot(1:n,d2,'*',1:n,cut_pdkt*ones(1,n),'b'); grid on
Jika algoritma di atas diterapkan pada matriks data A, maka akan didapat plot jarak Mahalanobis beserta nilai cut-off sebagai berikut untuk α = 5%.
Abdullah - 10103076
53
BAB IV Aplikasi Jarak Mahalanobis
70
outlier
60
50
40
30
20
Cut off 10
0
0
10
20
30
40
50
60
70
80
90
100
Gambar 4.2
Pada gambar tampak bahwa data ke 100 berada cukup jauh di atas nilai cut-off. Seperti telah diutarakan di depan, jarak Mahalanobis dapat mengidentifikasi outlier secara efektif karena dalam matriks data A sebenarnya hanya terdapat 1 outlier.
Abdullah - 10103076