Data yang saya gunakan berasal dari Seeds Dataset yang tersedia pada UCI Machine Learning Repository. Saya memilih dataset ini karena sumbernya kredibel dan banyak digunakan dalam penelitian maupun pembelajaran analisis multivariat.
> library(readxl)
> data = read_excel("C:/Users/Muhammad Abdul Aziz/OneDrive/Documents/A. KULIAH/Semester 5/Analisis Multivariat/Praktikum/Data Tugas Praktikum 2.xlsx")
> data
# A tibble: 210 × 8
X1 X2 X3 X4 X5 X6 X7 Y
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 15.3 14.8 0.871 5.76 3.31 2.22 5.22 1
2 14.9 14.6 0.881 5.55 3.33 1.02 4.96 1
3 14.3 14.1 0.905 5.29 3.34 2.70 4.82 1
4 13.8 13.9 0.896 5.32 3.38 2.26 4.80 1
5 16.1 15.0 0.903 5.66 3.56 1.36 5.18 1
6 14.4 14.2 0.895 5.39 3.31 2.46 4.96 1
7 14.7 14.5 0.880 5.56 3.26 3.59 5.22 1
8 14.1 14.1 0.891 5.42 3.30 2.7 5 1
9 16.6 15.5 0.875 6.05 3.46 2.04 5.88 1
10 16.4 15.2 0.888 5.88 3.50 1.97 5.53 1
# ℹ 200 more rows
Syntax read_excel() digunakan untuk mengimpor data dari file Excel ke dalam R sehingga dataset dapat diolah lebih lanjut. Selanjutnya, bagian data[,1:7] <- lapply(…) berfungsi mengonversi tujuh variabel pertama menjadi tipe numerik agar dapat digunakan dalam analisis multivariat tanpa error tipe data. Terakhir, str(data) menampilkan struktur data untuk memastikan bahwa proses konversi berhasil dan seluruh variabel memiliki format yang sesuai.
> library(MVN)
> # Cek Outliers
> testnorm = mvn(data[,1:7], multivariate_outlier_method = 'adj',show_new_data = TRUE)
> testnorm
$multivariate_normality
Test Statistic p.value Method MVN
1 Henze-Zirkler 1.662 <0.001 asymptotic ✗ Not normal
$univariate_normality
Test Variable Statistic p.value Normality
1 Anderson-Darling X1 4.448 <0.001 ✗ Not normal
2 Anderson-Darling X2 4.379 <0.001 ✗ Not normal
3 Anderson-Darling X3 1.360 0.002 ✗ Not normal
4 Anderson-Darling X4 3.892 <0.001 ✗ Not normal
5 Anderson-Darling X5 2.053 <0.001 ✗ Not normal
6 Anderson-Darling X6 0.635 0.096 ✓ Normal
7 Anderson-Darling X7 6.740 <0.001 ✗ Not normal
$descriptives
Variable n Mean Std.Dev Median Min Max 25th 75th Skew
1 X1 210 14.848 2.910 14.355 10.590 21.180 12.270 17.305 0.397
2 X2 210 14.559 1.306 14.320 12.410 17.250 13.450 15.715 0.384
3 X3 210 0.871 0.024 0.873 0.808 0.918 0.857 0.888 -0.534
4 X4 210 5.629 0.443 5.524 4.899 6.675 5.262 5.980 0.522
5 X5 210 3.259 0.378 3.237 2.630 4.033 2.944 3.562 0.133
6 X6 210 3.700 1.504 3.599 0.765 8.456 2.562 4.769 0.399
7 X7 210 5.408 0.491 5.223 4.519 6.550 5.045 5.877 0.558
Kurtosis
1 1.913
2 1.891
3 2.835
4 2.205
5 1.900
6 2.907
7 2.151
$multivariate_outliers
Observation Mahalanobis.Distance
1 89 618.167
2 90 542.275
3 115 492.560
4 78 475.104
5 83 410.835
6 121 370.955
7 129 323.334
8 91 317.565
9 109 306.911
10 120 304.746
11 103 265.363
12 84 230.214
13 74 220.627
14 85 220.580
15 107 211.443
16 119 209.802
17 113 208.061
18 117 205.167
19 98 205.106
20 97 204.347
21 87 203.722
22 118 202.786
23 79 198.082
24 114 197.471
25 116 195.546
26 93 190.836
27 104 190.082
28 112 189.234
29 106 175.811
30 105 174.368
31 94 173.551
32 132 172.899
33 92 171.962
34 82 171.085
35 126 168.053
36 124 164.726
37 131 157.448
38 127 157.050
39 100 152.315
40 88 142.727
41 110 139.381
42 122 131.482
43 86 127.847
44 111 123.407
45 102 113.528
46 128 112.412
47 99 107.015
48 95 104.908
49 130 93.165
50 108 80.227
51 60 72.198
52 77 68.714
53 71 60.298
54 80 57.251
55 137 53.726
56 73 49.100
57 38 47.680
58 81 42.466
59 125 42.258
60 76 39.554
61 75 37.428
62 123 36.284
63 96 33.668
64 101 31.464
65 72 31.230
66 140 30.966
67 9 28.653
68 4 25.789
69 10 22.754
70 36 22.601
71 134 22.405
72 52 21.932
73 135 21.481
74 158 20.708
75 26 19.368
76 133 18.284
77 57 18.226
78 136 17.791
$new_data
X1 X2 X3 X4 X5 X6 X7
1 15.26 14.84 0.8710 5.763 3.312 2.2210 5.220
2 14.88 14.57 0.8811 5.554 3.333 1.0180 4.956
3 14.29 14.09 0.9050 5.291 3.337 2.6990 4.825
5 16.14 14.99 0.9034 5.658 3.562 1.3550 5.175
6 14.38 14.21 0.8951 5.386 3.312 2.4620 4.956
7 14.69 14.49 0.8799 5.563 3.259 3.5860 5.219
8 14.11 14.10 0.8911 5.420 3.302 2.7000 5.000
11 15.26 14.85 0.8696 5.714 3.242 4.5430 5.314
12 14.03 14.16 0.8796 5.438 3.201 1.7170 5.001
13 13.89 14.02 0.8880 5.439 3.199 3.9860 4.738
14 13.78 14.06 0.8759 5.479 3.156 3.1360 4.872
15 13.74 14.05 0.8744 5.482 3.114 2.9320 4.825
16 14.59 14.28 0.8993 5.351 3.333 4.1850 4.781
17 13.99 13.83 0.9183 5.119 3.383 5.2340 4.781
18 15.69 14.75 0.9058 5.527 3.514 1.5990 5.046
19 14.70 14.21 0.9153 5.205 3.466 1.7670 4.649
20 12.72 13.57 0.8686 5.226 3.049 4.1020 4.914
21 14.16 14.40 0.8584 5.658 3.129 3.0720 5.176
22 14.11 14.26 0.8722 5.520 3.168 2.6880 5.219
23 15.88 14.90 0.8988 5.618 3.507 0.7651 5.091
24 12.08 13.23 0.8664 5.099 2.936 1.4150 4.961
25 15.01 14.76 0.8657 5.789 3.245 1.7910 5.001
27 13.02 13.76 0.8641 5.395 3.026 3.3730 4.825
28 12.74 13.67 0.8564 5.395 2.956 2.5040 4.869
29 14.11 14.18 0.8820 5.541 3.221 2.7540 5.038
30 13.45 14.02 0.8604 5.516 3.065 3.5310 5.097
31 13.16 13.82 0.8662 5.454 2.975 0.8551 5.056
32 15.49 14.94 0.8724 5.757 3.371 3.4120 5.228
33 14.09 14.41 0.8529 5.717 3.186 3.9200 5.299
34 13.94 14.17 0.8728 5.585 3.150 2.1240 5.012
35 15.05 14.68 0.8779 5.712 3.328 2.1290 5.360
37 16.20 15.27 0.8734 5.826 3.464 2.8230 5.527
39 14.80 14.52 0.8823 5.656 3.288 3.1120 5.309
40 14.28 14.17 0.8944 5.397 3.298 6.6850 5.001
41 13.54 13.85 0.8871 5.348 3.156 2.5870 5.178
42 13.50 13.85 0.8852 5.351 3.158 2.2490 5.176
43 13.16 13.55 0.9009 5.138 3.201 2.4610 4.783
44 15.50 14.86 0.8820 5.877 3.396 4.7110 5.528
45 15.11 14.54 0.8986 5.579 3.462 3.1280 5.180
46 13.80 14.04 0.8794 5.376 3.155 1.5600 4.961
47 15.36 14.76 0.8861 5.701 3.393 1.3670 5.132
48 14.99 14.56 0.8883 5.570 3.377 2.9580 5.175
49 14.79 14.52 0.8819 5.545 3.291 2.7040 5.111
50 14.86 14.67 0.8676 5.678 3.258 2.1290 5.351
51 14.43 14.40 0.8751 5.585 3.272 3.9750 5.144
53 14.49 14.61 0.8538 5.715 3.113 4.1160 5.396
54 14.33 14.28 0.8831 5.504 3.199 3.3280 5.224
55 14.52 14.60 0.8557 5.741 3.113 1.4810 5.487
56 15.03 14.77 0.8658 5.702 3.212 1.9330 5.439
58 14.92 14.43 0.9006 5.384 3.412 1.1420 5.088
59 15.38 14.77 0.8857 5.662 3.419 1.9990 5.222
61 11.42 12.86 0.8683 5.008 2.850 2.7000 4.607
62 11.23 12.63 0.8840 4.902 2.879 2.2690 4.703
63 12.36 13.19 0.8923 5.076 3.042 3.2200 4.605
64 13.22 13.84 0.8680 5.395 3.070 4.1570 5.088
65 12.78 13.57 0.8716 5.262 3.026 1.1760 4.782
66 12.88 13.50 0.8879 5.139 3.119 2.3520 4.607
67 14.34 14.37 0.8726 5.630 3.190 1.3130 5.150
68 14.01 14.29 0.8625 5.609 3.158 2.2170 5.132
69 14.37 14.39 0.8726 5.569 3.153 1.4640 5.300
70 12.73 13.75 0.8458 5.412 2.882 3.5330 5.067
138 15.57 15.15 0.8527 5.920 3.231 2.6400 5.879
139 15.60 15.11 0.8580 5.832 3.286 2.7250 5.752
141 13.07 13.92 0.8480 5.472 2.994 5.3040 5.395
142 13.32 13.94 0.8613 5.541 3.073 7.0350 5.440
143 13.34 13.95 0.8620 5.389 3.074 5.9950 5.307
144 12.22 13.32 0.8652 5.224 2.967 5.4690 5.221
145 11.82 13.40 0.8274 5.314 2.777 4.4710 5.178
146 11.21 13.13 0.8167 5.279 2.687 6.1690 5.275
147 11.43 13.13 0.8335 5.176 2.719 2.2210 5.132
148 12.49 13.46 0.8658 5.267 2.967 4.4210 5.002
149 12.70 13.71 0.8491 5.386 2.911 3.2600 5.316
150 10.79 12.93 0.8107 5.317 2.648 5.4620 5.194
151 11.83 13.23 0.8496 5.263 2.840 5.1950 5.307
152 12.01 13.52 0.8249 5.405 2.776 6.9920 5.270
153 12.26 13.60 0.8333 5.408 2.833 4.7560 5.360
154 11.18 13.04 0.8266 5.220 2.693 3.3320 5.001
155 11.36 13.05 0.8382 5.175 2.755 4.0480 5.263
156 11.19 13.05 0.8253 5.250 2.675 5.8130 5.219
157 11.34 12.87 0.8596 5.053 2.849 3.3470 5.003
159 11.75 13.52 0.8082 5.444 2.678 4.3780 5.310
160 11.49 13.22 0.8263 5.304 2.695 5.3880 5.310
161 12.54 13.67 0.8425 5.451 2.879 3.0820 5.491
162 12.02 13.33 0.8503 5.350 2.810 4.2710 5.308
163 12.05 13.41 0.8416 5.267 2.847 4.9880 5.046
164 12.55 13.57 0.8558 5.333 2.968 4.4190 5.176
165 11.14 12.79 0.8558 5.011 2.794 6.3880 5.049
166 12.10 13.15 0.8793 5.105 2.941 2.2010 5.056
167 12.44 13.59 0.8462 5.319 2.897 4.9240 5.270
168 12.15 13.45 0.8443 5.417 2.837 3.6380 5.338
169 11.35 13.12 0.8291 5.176 2.668 4.3370 5.132
170 11.24 13.00 0.8359 5.090 2.715 3.5210 5.088
171 11.02 13.00 0.8189 5.325 2.701 6.7350 5.163
172 11.55 13.10 0.8455 5.167 2.845 6.7150 4.956
173 11.27 12.97 0.8419 5.088 2.763 4.3090 5.000
174 11.40 13.08 0.8375 5.136 2.763 5.5880 5.089
175 10.83 12.96 0.8099 5.278 2.641 5.1820 5.185
176 10.80 12.57 0.8590 4.981 2.821 4.7730 5.063
177 11.26 13.01 0.8355 5.186 2.710 5.3350 5.092
178 10.74 12.73 0.8329 5.145 2.642 4.7020 4.963
179 11.48 13.05 0.8473 5.180 2.758 5.8760 5.002
180 12.21 13.47 0.8453 5.357 2.893 1.6610 5.178
181 11.41 12.95 0.8560 5.090 2.775 4.9570 4.825
182 12.46 13.41 0.8706 5.236 3.017 4.9870 5.147
183 12.19 13.36 0.8579 5.240 2.909 4.8570 5.158
184 11.65 13.07 0.8575 5.108 2.850 5.2090 5.135
185 12.89 13.77 0.8541 5.495 3.026 6.1850 5.316
186 11.56 13.31 0.8198 5.363 2.683 4.0620 5.182
187 11.81 13.45 0.8198 5.413 2.716 4.8980 5.352
188 10.91 12.80 0.8372 5.088 2.675 4.1790 4.956
189 11.23 12.82 0.8594 5.089 2.821 7.5240 4.957
190 10.59 12.41 0.8648 4.899 2.787 4.9750 4.794
191 10.93 12.80 0.8390 5.046 2.717 5.3980 5.045
192 11.27 12.86 0.8563 5.091 2.804 3.9850 5.001
193 11.87 13.02 0.8795 5.132 2.953 3.5970 5.132
194 10.82 12.83 0.8256 5.180 2.630 4.8530 5.089
195 12.11 13.27 0.8639 5.236 2.975 4.1320 5.012
196 12.80 13.47 0.8860 5.160 3.126 4.8730 4.914
197 12.79 13.53 0.8786 5.224 3.054 5.4830 4.958
198 13.37 13.78 0.8849 5.320 3.128 4.6700 5.091
199 12.62 13.67 0.8481 5.410 2.911 3.3060 5.231
200 12.76 13.38 0.8964 5.073 3.155 2.8280 4.830
201 12.38 13.44 0.8609 5.219 2.989 5.4720 5.045
202 12.67 13.32 0.8977 4.984 3.135 2.3000 4.745
203 11.18 12.72 0.8680 5.009 2.810 4.0510 4.828
204 12.70 13.41 0.8874 5.183 3.091 8.4560 5.000
205 12.37 13.47 0.8567 5.204 2.960 3.9190 5.001
206 12.19 13.20 0.8783 5.137 2.981 3.6310 4.870
207 11.23 12.88 0.8511 5.140 2.795 4.3250 5.003
208 13.20 13.66 0.8883 5.236 3.232 8.3150 5.056
209 11.84 13.21 0.8521 5.175 2.836 3.5980 5.044
210 12.30 13.34 0.8684 5.243 2.974 5.6370 5.063
$data
# A tibble: 210 × 7
X1 X2 X3 X4 X5 X6 X7
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 15.3 14.8 0.871 5.76 3.31 2.22 5.22
2 14.9 14.6 0.881 5.55 3.33 1.02 4.96
3 14.3 14.1 0.905 5.29 3.34 2.70 4.82
4 13.8 13.9 0.896 5.32 3.38 2.26 4.80
5 16.1 15.0 0.903 5.66 3.56 1.36 5.18
6 14.4 14.2 0.895 5.39 3.31 2.46 4.96
7 14.7 14.5 0.880 5.56 3.26 3.59 5.22
8 14.1 14.1 0.891 5.42 3.30 2.7 5
9 16.6 15.5 0.875 6.05 3.46 2.04 5.88
10 16.4 15.2 0.888 5.88 3.50 1.97 5.53
# ℹ 200 more rows
$subset
NULL
$outlierMethod
[1] "adj"
attr(,"class")
[1] "mvn"
> # Mengahapus outliers dan identifikasi data baru
> newdata = testnorm$new_data
> result = mvn(newdata, mvn_test = 'mardia',alpha = 0.05)
> result
$multivariate_normality
Test Statistic p.value Method MVN
1 Mardia Skewness 208.411 <0.001 asymptotic ✗ Not normal
2 Mardia Kurtosis 0.667 0.505 asymptotic ✓ Normal
$univariate_normality
Test Variable Statistic p.value Normality
1 Anderson-Darling X1 1.938 <0.001 ✗ Not normal
2 Anderson-Darling X2 1.451 <0.001 ✗ Not normal
3 Anderson-Darling X3 0.297 0.585 ✓ Normal
4 Anderson-Darling X4 0.856 0.027 ✗ Not normal
5 Anderson-Darling X5 1.118 0.006 ✗ Not normal
6 Anderson-Darling X6 0.446 0.278 ✓ Normal
7 Anderson-Darling X7 0.532 0.171 ✓ Normal
$descriptives
Variable n Mean Std.Dev Median Min Max 25th 75th Skew
1 X1 132 12.992 1.491 12.735 10.590 16.200 11.725 14.282 0.297
2 X2 132 13.724 0.676 13.580 12.410 15.270 13.180 14.265 0.324
3 X3 132 0.864 0.024 0.865 0.808 0.918 0.848 0.881 -0.195
4 X4 132 5.357 0.228 5.349 4.899 5.920 5.176 5.522 0.328
5 X5 132 3.029 0.239 3.026 2.630 3.562 2.830 3.204 0.160
6 X6 132 3.789 1.630 3.635 0.765 8.456 2.566 4.904 0.373
7 X7 132 5.102 0.216 5.091 4.605 5.879 5.000 5.222 0.269
Kurtosis
1 1.931
2 2.107
3 2.574
4 2.376
5 2.006
6 2.780
7 3.948
$data
X1 X2 X3 X4 X5 X6 X7
1 15.26 14.84 0.8710 5.763 3.312 2.2210 5.220
2 14.88 14.57 0.8811 5.554 3.333 1.0180 4.956
3 14.29 14.09 0.9050 5.291 3.337 2.6990 4.825
5 16.14 14.99 0.9034 5.658 3.562 1.3550 5.175
6 14.38 14.21 0.8951 5.386 3.312 2.4620 4.956
7 14.69 14.49 0.8799 5.563 3.259 3.5860 5.219
8 14.11 14.10 0.8911 5.420 3.302 2.7000 5.000
11 15.26 14.85 0.8696 5.714 3.242 4.5430 5.314
12 14.03 14.16 0.8796 5.438 3.201 1.7170 5.001
13 13.89 14.02 0.8880 5.439 3.199 3.9860 4.738
14 13.78 14.06 0.8759 5.479 3.156 3.1360 4.872
15 13.74 14.05 0.8744 5.482 3.114 2.9320 4.825
16 14.59 14.28 0.8993 5.351 3.333 4.1850 4.781
17 13.99 13.83 0.9183 5.119 3.383 5.2340 4.781
18 15.69 14.75 0.9058 5.527 3.514 1.5990 5.046
19 14.70 14.21 0.9153 5.205 3.466 1.7670 4.649
20 12.72 13.57 0.8686 5.226 3.049 4.1020 4.914
21 14.16 14.40 0.8584 5.658 3.129 3.0720 5.176
22 14.11 14.26 0.8722 5.520 3.168 2.6880 5.219
23 15.88 14.90 0.8988 5.618 3.507 0.7651 5.091
24 12.08 13.23 0.8664 5.099 2.936 1.4150 4.961
25 15.01 14.76 0.8657 5.789 3.245 1.7910 5.001
27 13.02 13.76 0.8641 5.395 3.026 3.3730 4.825
28 12.74 13.67 0.8564 5.395 2.956 2.5040 4.869
29 14.11 14.18 0.8820 5.541 3.221 2.7540 5.038
30 13.45 14.02 0.8604 5.516 3.065 3.5310 5.097
31 13.16 13.82 0.8662 5.454 2.975 0.8551 5.056
32 15.49 14.94 0.8724 5.757 3.371 3.4120 5.228
33 14.09 14.41 0.8529 5.717 3.186 3.9200 5.299
34 13.94 14.17 0.8728 5.585 3.150 2.1240 5.012
35 15.05 14.68 0.8779 5.712 3.328 2.1290 5.360
37 16.20 15.27 0.8734 5.826 3.464 2.8230 5.527
39 14.80 14.52 0.8823 5.656 3.288 3.1120 5.309
40 14.28 14.17 0.8944 5.397 3.298 6.6850 5.001
41 13.54 13.85 0.8871 5.348 3.156 2.5870 5.178
42 13.50 13.85 0.8852 5.351 3.158 2.2490 5.176
43 13.16 13.55 0.9009 5.138 3.201 2.4610 4.783
44 15.50 14.86 0.8820 5.877 3.396 4.7110 5.528
45 15.11 14.54 0.8986 5.579 3.462 3.1280 5.180
46 13.80 14.04 0.8794 5.376 3.155 1.5600 4.961
47 15.36 14.76 0.8861 5.701 3.393 1.3670 5.132
48 14.99 14.56 0.8883 5.570 3.377 2.9580 5.175
49 14.79 14.52 0.8819 5.545 3.291 2.7040 5.111
50 14.86 14.67 0.8676 5.678 3.258 2.1290 5.351
51 14.43 14.40 0.8751 5.585 3.272 3.9750 5.144
53 14.49 14.61 0.8538 5.715 3.113 4.1160 5.396
54 14.33 14.28 0.8831 5.504 3.199 3.3280 5.224
55 14.52 14.60 0.8557 5.741 3.113 1.4810 5.487
56 15.03 14.77 0.8658 5.702 3.212 1.9330 5.439
58 14.92 14.43 0.9006 5.384 3.412 1.1420 5.088
59 15.38 14.77 0.8857 5.662 3.419 1.9990 5.222
61 11.42 12.86 0.8683 5.008 2.850 2.7000 4.607
62 11.23 12.63 0.8840 4.902 2.879 2.2690 4.703
63 12.36 13.19 0.8923 5.076 3.042 3.2200 4.605
64 13.22 13.84 0.8680 5.395 3.070 4.1570 5.088
65 12.78 13.57 0.8716 5.262 3.026 1.1760 4.782
66 12.88 13.50 0.8879 5.139 3.119 2.3520 4.607
67 14.34 14.37 0.8726 5.630 3.190 1.3130 5.150
68 14.01 14.29 0.8625 5.609 3.158 2.2170 5.132
69 14.37 14.39 0.8726 5.569 3.153 1.4640 5.300
70 12.73 13.75 0.8458 5.412 2.882 3.5330 5.067
138 15.57 15.15 0.8527 5.920 3.231 2.6400 5.879
139 15.60 15.11 0.8580 5.832 3.286 2.7250 5.752
141 13.07 13.92 0.8480 5.472 2.994 5.3040 5.395
142 13.32 13.94 0.8613 5.541 3.073 7.0350 5.440
143 13.34 13.95 0.8620 5.389 3.074 5.9950 5.307
144 12.22 13.32 0.8652 5.224 2.967 5.4690 5.221
145 11.82 13.40 0.8274 5.314 2.777 4.4710 5.178
146 11.21 13.13 0.8167 5.279 2.687 6.1690 5.275
147 11.43 13.13 0.8335 5.176 2.719 2.2210 5.132
148 12.49 13.46 0.8658 5.267 2.967 4.4210 5.002
149 12.70 13.71 0.8491 5.386 2.911 3.2600 5.316
150 10.79 12.93 0.8107 5.317 2.648 5.4620 5.194
151 11.83 13.23 0.8496 5.263 2.840 5.1950 5.307
152 12.01 13.52 0.8249 5.405 2.776 6.9920 5.270
153 12.26 13.60 0.8333 5.408 2.833 4.7560 5.360
154 11.18 13.04 0.8266 5.220 2.693 3.3320 5.001
155 11.36 13.05 0.8382 5.175 2.755 4.0480 5.263
156 11.19 13.05 0.8253 5.250 2.675 5.8130 5.219
157 11.34 12.87 0.8596 5.053 2.849 3.3470 5.003
159 11.75 13.52 0.8082 5.444 2.678 4.3780 5.310
160 11.49 13.22 0.8263 5.304 2.695 5.3880 5.310
161 12.54 13.67 0.8425 5.451 2.879 3.0820 5.491
162 12.02 13.33 0.8503 5.350 2.810 4.2710 5.308
163 12.05 13.41 0.8416 5.267 2.847 4.9880 5.046
164 12.55 13.57 0.8558 5.333 2.968 4.4190 5.176
165 11.14 12.79 0.8558 5.011 2.794 6.3880 5.049
166 12.10 13.15 0.8793 5.105 2.941 2.2010 5.056
167 12.44 13.59 0.8462 5.319 2.897 4.9240 5.270
168 12.15 13.45 0.8443 5.417 2.837 3.6380 5.338
169 11.35 13.12 0.8291 5.176 2.668 4.3370 5.132
170 11.24 13.00 0.8359 5.090 2.715 3.5210 5.088
171 11.02 13.00 0.8189 5.325 2.701 6.7350 5.163
172 11.55 13.10 0.8455 5.167 2.845 6.7150 4.956
173 11.27 12.97 0.8419 5.088 2.763 4.3090 5.000
174 11.40 13.08 0.8375 5.136 2.763 5.5880 5.089
175 10.83 12.96 0.8099 5.278 2.641 5.1820 5.185
176 10.80 12.57 0.8590 4.981 2.821 4.7730 5.063
177 11.26 13.01 0.8355 5.186 2.710 5.3350 5.092
178 10.74 12.73 0.8329 5.145 2.642 4.7020 4.963
179 11.48 13.05 0.8473 5.180 2.758 5.8760 5.002
180 12.21 13.47 0.8453 5.357 2.893 1.6610 5.178
181 11.41 12.95 0.8560 5.090 2.775 4.9570 4.825
182 12.46 13.41 0.8706 5.236 3.017 4.9870 5.147
183 12.19 13.36 0.8579 5.240 2.909 4.8570 5.158
184 11.65 13.07 0.8575 5.108 2.850 5.2090 5.135
185 12.89 13.77 0.8541 5.495 3.026 6.1850 5.316
186 11.56 13.31 0.8198 5.363 2.683 4.0620 5.182
187 11.81 13.45 0.8198 5.413 2.716 4.8980 5.352
188 10.91 12.80 0.8372 5.088 2.675 4.1790 4.956
189 11.23 12.82 0.8594 5.089 2.821 7.5240 4.957
190 10.59 12.41 0.8648 4.899 2.787 4.9750 4.794
191 10.93 12.80 0.8390 5.046 2.717 5.3980 5.045
192 11.27 12.86 0.8563 5.091 2.804 3.9850 5.001
193 11.87 13.02 0.8795 5.132 2.953 3.5970 5.132
194 10.82 12.83 0.8256 5.180 2.630 4.8530 5.089
195 12.11 13.27 0.8639 5.236 2.975 4.1320 5.012
196 12.80 13.47 0.8860 5.160 3.126 4.8730 4.914
197 12.79 13.53 0.8786 5.224 3.054 5.4830 4.958
198 13.37 13.78 0.8849 5.320 3.128 4.6700 5.091
199 12.62 13.67 0.8481 5.410 2.911 3.3060 5.231
200 12.76 13.38 0.8964 5.073 3.155 2.8280 4.830
201 12.38 13.44 0.8609 5.219 2.989 5.4720 5.045
202 12.67 13.32 0.8977 4.984 3.135 2.3000 4.745
203 11.18 12.72 0.8680 5.009 2.810 4.0510 4.828
204 12.70 13.41 0.8874 5.183 3.091 8.4560 5.000
205 12.37 13.47 0.8567 5.204 2.960 3.9190 5.001
206 12.19 13.20 0.8783 5.137 2.981 3.6310 4.870
207 11.23 12.88 0.8511 5.140 2.795 4.3250 5.003
208 13.20 13.66 0.8883 5.236 3.232 8.3150 5.056
209 11.84 13.21 0.8521 5.175 2.836 3.5980 5.044
210 12.30 13.34 0.8684 5.243 2.974 5.6370 5.063
$subset
NULL
$outlierMethod
[1] "none"
attr(,"class")
[1] "mvn"
> dataakhir = data[c(rownames(newdata)),1:8]
> dataakhir
# A tibble: 132 × 8
X1 X2 X3 X4 X5 X6 X7 Y
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 15.3 14.8 0.871 5.76 3.31 2.22 5.22 1
2 14.9 14.6 0.881 5.55 3.33 1.02 4.96 1
3 14.3 14.1 0.905 5.29 3.34 2.70 4.82 1
4 16.1 15.0 0.903 5.66 3.56 1.36 5.18 1
5 14.4 14.2 0.895 5.39 3.31 2.46 4.96 1
6 14.7 14.5 0.880 5.56 3.26 3.59 5.22 1
7 14.1 14.1 0.891 5.42 3.30 2.7 5 1
8 15.3 14.8 0.870 5.71 3.24 4.54 5.31 1
9 14.0 14.2 0.880 5.44 3.20 1.72 5.00 1
10 13.9 14.0 0.888 5.44 3.20 3.99 4.74 1
# ℹ 122 more rows
> dataakhir = dataakhir[-(62:63), ]
> dataakhir
# A tibble: 130 × 8
X1 X2 X3 X4 X5 X6 X7 Y
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 15.3 14.8 0.871 5.76 3.31 2.22 5.22 1
2 14.9 14.6 0.881 5.55 3.33 1.02 4.96 1
3 14.3 14.1 0.905 5.29 3.34 2.70 4.82 1
4 16.1 15.0 0.903 5.66 3.56 1.36 5.18 1
5 14.4 14.2 0.895 5.39 3.31 2.46 4.96 1
6 14.7 14.5 0.880 5.56 3.26 3.59 5.22 1
7 14.1 14.1 0.891 5.42 3.30 2.7 5 1
8 15.3 14.8 0.870 5.71 3.24 4.54 5.31 1
9 14.0 14.2 0.880 5.44 3.20 1.72 5.00 1
10 13.9 14.0 0.888 5.44 3.20 3.99 4.74 1
# ℹ 120 more rows
> table(dataakhir$Y)
1 3
61 69
Syntax mvn() dari paket MVN digunakan untuk mendeteksi outlier multivariat secara otomatis menggunakan metode adjusted outlier detection, sekaligus menghasilkan dataset baru tanpa outlier melalui argumen show_new_data = TRUE. Selanjutnya, dataset yang telah dibersihkan diuji kembali menggunakan mvn(…, mvn_test = ‘mardia’) untuk memeriksa asumsi normalitas multivariat berdasarkan uji Mardia. Syntax berikutnya menyusun ulang data asli agar hanya menyertakan observasi yang valid, menghapus observasi tertentu yang masih terindikasi bermasalah, dan menampilkan data akhir yang siap digunakan untuk analisis berikutnya. Terakhir, table() digunakan untuk melihat kembali distribusi kelompok pada variabel Y setelah proses pembersihan data.
> library(biotools)
> ujiboxM = boxM(cbind(dataakhir$X1, dataakhir$X2, dataakhir$X3, dataakhir$X4,
+ dataakhir$X5, dataakhir$X6, dataakhir$X7),dataakhir$Y)
> ujiboxM
Box's M-test for Homogeneity of Covariance Matrices
data: cbind(dataakhir$X1, dataakhir$X2, dataakhir$X3, dataakhir$X4, dataakhir$X5, dataakhir$X6, dataakhir$X7)
Chi-Sq (approx.) = 240.66, df = 28, p-value < 2.2e-16
Syntax boxM() digunakan untuk menguji asumsi homogenitas matriks varians–kovarians antar kelompok dengan memasukkan tujuh variabel prediktor sebagai input dan Y sebagai faktor pengelompok. Selanjutnya, objek ujiboxM menampilkan hasil pengujian Box’s M, yang menunjukkan apakah matriks varians–kovarians antar kelompok sama atau berbeda secara signifikan, sehingga dapat menentukan kesesuaian penggunaan metode diskriminan seperti LDA.
> cor(dataakhir[,1:7])
X1 X2 X3 X4 X5 X6
X1 1.0000000 0.9788356 0.6787652 0.8145151 0.94907682 -0.5141570
X2 0.9788356 1.0000000 0.5165082 0.9065534 0.86978987 -0.4842681
X3 0.6787652 0.5165082 1.0000000 0.1629031 0.85561996 -0.4121073
X4 0.8145151 0.9065534 0.1629031 1.0000000 0.61617496 -0.3526123
X5 0.9490768 0.8697899 0.8556200 0.6161750 1.00000000 -0.4770821
X6 -0.5141570 -0.4842681 -0.4121073 -0.3526123 -0.47708213 1.0000000
X7 0.2050670 0.3469372 -0.3886415 0.5896538 -0.01049675 0.1217338
X7
X1 0.20506699
X2 0.34693719
X3 -0.38864152
X4 0.58965376
X5 -0.01049675
X6 0.12173383
X7 1.00000000
Syntax cor(dataakhir[,1:7]) digunakan untuk menghitung matriks korelasi antar variabel X1 hingga X7 sebagai langkah untuk memeriksa adanya multikolinieritas. Melalui output korelasi ini dapat dilihat apakah terdapat hubungan yang sangat tinggi antar variabel prediktor, yang berpotensi mengganggu kestabilan model diskriminan.
> X = as.matrix(dataakhir[1:7])
> X_manova = manova(X~dataakhir$Y, data = data)
> X_manova
Call:
manova(X ~ dataakhir$Y, data = data)
Terms:
dataakhir$Y Residuals
X1 172.2058 105.2855
X2 31.31047 24.50384
X3 0.02788 0.04565
X4 2.18676 4.07112
X5 4.27544 3.11132
X6 141.7494 203.9412
X7 0.08104 5.00750
Deg. of Freedom 1 128
Residual standard errors: 0.9069416 0.4375343 0.01888455 0.1783414 0.1559075 1.262256 0.1977904
Estimated effects may be unbalanced
> X_wilks = summary(X_manova, test="Wilks")
> X_wilks
Df Wilks approx F num Df den Df Pr(>F)
dataakhir$Y 1 0.21542 63.476 7 122 < 2.2e-16 ***
Residuals 128
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Syntax manova() digunakan untuk membangun model MANOVA yang menguji perbedaan rata-rata tujuh variabel X secara simultan berdasarkan kelompok pada variabel Y. Selanjutnya, summary(…, test = “Wilks”) menghasilkan uji signifikansi menggunakan Wilks’ Lambda untuk menentukan apakah terdapat perbedaan rata-rata multivariat yang signifikan antar kelompok. Terakhir, pemanggilan objek hasil seperti X_manova dan X_wilks menampilkan output lengkap model dan nilai uji statistiknya.
> library(candisc)
> cc = candisc(X_manova)
> cc
Canonical Discriminant Analysis for dataakhir$Y:
CanRsq Eigenvalue Difference Percent Cumulative
1 0.78458 3.642 100 100
Test of H0: The canonical correlations in the
current row and all that follow are zero
LR test stat approx F numDF denDF Pr(> F)
1 0.21542 63.476 7 122 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Syntax candisc() digunakan untuk melakukan Canonical Discriminant Analysis pada objek MANOVA yang telah dibentuk sebelumnya, sehingga dapat diketahui kontribusi masing-masing variabel prediktor dalam membedakan kelompok pada variabel respon. Selanjutnya, pemanggilan objek cc menampilkan hasil analisis tersebut, termasuk nilai eigen, canonical correlations, serta struktur variabel yang menunjukkan variabel mana yang paling berperan dalam pemisahan kelompok.
> lda_model = lda(Y~., data = dataakhir)
> lda_model
Call:
lda(Y ~ ., data = dataakhir)
Prior probabilities of groups:
1 3
0.4692308 0.5307692
Group means:
X1 X2 X3 X4 X5 X6 X7
1 14.17639 14.22426 0.8793541 5.487016 3.218738 2.695479 5.064869
3 11.87014 13.24087 0.8500072 5.227130 2.855348 4.787870 5.114899
Coefficients of linear discriminants:
LD1
X1 -2.4004197
X2 2.4385039
X3 -13.3492159
X4 -5.9543590
X5 5.9310352
X6 0.2872413
X7 5.4294485
> pred_ld = predict(lda_model, dataakhir)
> table(actual = dataakhir$Y, predicted = pred_ld$class)
predicted
actual 1 3
1 58 3
3 1 68
Syntax lda() digunakan untuk membangun model Linear Discriminant Analysis dengan Y sebagai variabel kategori dan seluruh variabel prediktor yang ada pada dataakhir (ditandai dengan simbol .). Selanjutnya, predict() menghasilkan kelas prediksi untuk setiap observasi berdasarkan model LDA yang telah dibentuk. Terakhir, table() menyusun tabel klasifikasi yang membandingkan kelas sebenarnya dengan kelas hasil prediksi untuk menilai akurasi model.
> qda_model = qda(dataakhir$Y~dataakhir$X1 + dataakhir$X2 + dataakhir$X3
+ + dataakhir$X4 + dataakhir$X5 + dataakhir$X6 + dataakhir$X7)
> qda_model
Call:
qda(dataakhir$Y ~ dataakhir$X1 + dataakhir$X2 + dataakhir$X3 +
dataakhir$X4 + dataakhir$X5 + dataakhir$X6 + dataakhir$X7)
Prior probabilities of groups:
1 3
0.4692308 0.5307692
Group means:
dataakhir$X1 dataakhir$X2 dataakhir$X3 dataakhir$X4 dataakhir$X5 dataakhir$X6
1 14.17639 14.22426 0.8793541 5.487016 3.218738 2.695479
3 11.87014 13.24087 0.8500072 5.227130 2.855348 4.787870
dataakhir$X7
1 5.064869
3 5.114899
> pred_qda = predict(qda_model, dataakhir)
> table(actual = dataakhir$Y,predicted = pred_qda$class)
predicted
actual 1 3
1 57 4
3 2 67
Syntax qda() digunakan untuk membangun model Quadratic Discriminant Analysis dengan Y sebagai variabel kategori dan X1 hingga X7 sebagai prediktor. Selanjutnya, predict() menghasilkan kelas prediksi untuk setiap observasi berdasarkan model tersebut. Terakhir, table() membuat tabel klasifikasi yang membandingkan kelas sebenarnya dengan kelas hasil prediksi untuk menilai akurasi model.
Pada pengujian pertama hasil dari uji asumsi normalitas memperlihatkan bahwa, data yang saya pakai tidak berdistribusu normal. Maka dari itu, saya melakukan cek outliers dan menghapus outliers tersebut pada data. Setelah, meghapus outliers, menyebabkan data berkurang sebanyak 78 data. Setelah ditelusuri data tersebut berasal dari kategori dengan biji. Akhirnya, saya menghapus data ke 62 dan 63 yaitu data dengan kategori biji, karena apabila tidak dihapus saya tidak bisa melakukan uji boxM karena terdapat 1 jenis biji yang jumlah datanya lebih sedikit dari banyaknya variable yang dianalisi.
Berdasarkan output tersebut, hasil uji asumsi normalitas masih tetap tidak terpenuhi.
Berdasarkan uji homogenitas ragam pada Rstudio tersebut, didapatkan pvalue yang jauh lebih kecil dari 0.05. Artinya, asumsi homogenitas ragam tidak terpenuhi.
Berdasarkan outpur Rstudio tersebut, terlihat bahwa terdapat beberapa variable yang memiliki nilai korelasi yang kuat antara sesame variable prediktor. Hal ini menyebabkan nilai VIF setiap variable memiliki nilai yang lebih besar dari 10. Nilai VIF yang lebih besar dari 10 ini, menunjukkan bahwa adanya indikasi multikolinieritas antar sesame variable prediktor. Maka dari itu, Asumsi multikolinieritas pada data tersebut tidak terpenuhi.
Uji perbedaan rata-rata variable dependen dilakukan untuk mengetahui seberapa layak variable-variabel tersebut digunakan untuk analisis diskriminan. Berdasarkan output tersebut, didapatkan nilan pvalue yang lebih kecil dari 0.05. Hal ini membuktikan bahwa terdapat perbedaan rata-rata antara variable-variabel dependen. Artinya, data tersebut layak digunakan untuk analisis diskriminan.
Hasil Canonical Discriminant Analysis menunjukkan bahwa model menghasilkan satu fungsi diskriminan yang secara statistik signifikan dalam membedakan kelompok pada variabel Y. Hal ini terlihat dari nilai Likelihood Ratio Test yang sangat signifikan (F = 63.476, p < 2.2e-16), sehingga secara statistik terdapat perbedaan nyata antara kelompok. Nilai Canonical R² sebesar 0.78458 mengindikasikan bahwa fungsi diskriminan mampu menjelaskan sekitar 78.46% variasi perbedaan antar kelompok, dan nilai eigenvalue sebesar 3.642 menunjukkan kekuatan pemisahan yang tinggi dari fungsi tersebut. Dengan kata lain, secara matematis fungsi diskriminan memiliki kemampuan yang baik untuk membedakan kelompok dalam data.
Berdasarkan hasil analisis diskriminan linear (LDA), terlihat bahwa model mampu memisahkan kelompok 1 dan kelompok 3 dengan sangat baik. Probabilitas awal menunjukkan bahwa proporsi data pada kelompok 1 sebesar 46,9% dan kelompok 3 sebesar 53,1%, yang menggambarkan distribusi kelas yang relatif seimbang. Rata-rata setiap variabel pada masing-masing kelompok menunjukkan adanya perbedaan yang cukup jelas, terutama pada variabel X3, X4, X5, dan X6, sehingga variabel-variabel tersebut berpotensi kuat sebagai pembeda antar kelompok. Hal ini sejalan dengan koefisien fungsi diskriminan, di mana variabel dengan nilai absolut koefisien terbesar—yaitu X3, X4, X5, dan X7—menjadi kontributor utama dalam memisahkan kedua kelompok. Koefisien positif mengarahkan objek ke kelompok 3, sedangkan koefisien negatif mendorong objek ke kelompok 1.
Kinerja model ditunjukkan melalui matriks klasifikasi, di mana 58 dari 61 objek kelompok 1 berhasil diprediksi dengan benar, sedangkan 68 dari 69 objek kelompok 3 juga diklasifikasikan secara tepat. Secara keseluruhan, tingkat akurasi model mencapai 96,9%, yang menandakan bahwa model diskriminan memiliki kemampuan prediktif yang sangat baik dalam membedakan kedua kelompok pada data ini.
Karena hampir semua asumsi klasik tidak terpenuhi, maka saya melakukan QDA karena analisis lebih robust dibandingkan dengan LDA.
Analisis diskriminan menggunakan metode QDA menunjukkan bahwa model mampu membedakan dua kelompok pada variabel Y dengan tingkat ketepatan yang cukup tinggi. Proporsi awal kelompok yang relatif seimbang (46,9% dan 53,1%) menjadi dasar yang baik untuk evaluasi performa model. Perbedaan mean pada setiap variabel antar kelompok memberikan indikasi bahwa karakteristik kedua kelompok memang berbeda secara substansial. Berdasarkan matriks klasifikasi, model QDA berhasil mengklasifikasikan 57 dari 61 objek kelompok 1 dengan benar, dan 67 dari 69 objek kelompok 3 dengan tepat, menghasilkan tingkat akurasi sekitar 94,3%. Meskipun akurasinya sedikit lebih rendah dibandingkan model LDA, secara metodologis QDA lebih tepat digunakan karena tidak mengharuskan adanya homogenitas matriks kovarians—sebuah asumsi yang diketahui dilanggar pada dataset ini. Oleh karena itu, hasil QDA dapat dianggap lebih stabil dan lebih dapat dipercaya dibanding LDA, sehingga lebih layak dijadikan dasar kesimpulan untuk pemisahan kelompok dalam analisis ini.
Hasil analisis menunjukkan bahwa LDA mampu membedakan kelompok 1 dan 3 dengan sangat baik, ditandai akurasi klasifikasi sebesar 96,9%. Variabel X3, X4, X5, dan X7 menjadi prediktor utama pemisahan kelompok. Namun, karena asumsi dasar LDA tidak terpenuhi (normalitas, homogenitas kovarians, dan tidak adanya multikolinieritas), hasil ini perlu diinterpretasikan dengan hati-hati.
Sebagai alternatif yang lebih sesuai, QDA memberikan akurasi klasifikasi sebesar ±94,3%. Meskipun sedikit lebih rendah dari LDA, QDA lebih tepat digunakan karena tidak mensyaratkan homogenitas matriks kovarians. Secara keseluruhan, baik LDA maupun QDA mampu memisahkan kelompok dengan baik, tetapi QDA dianggap lebih robust terhadap pelanggaran asumsi pada dataset ini.
Charytanowicz, M., Niewczas, J., Kulczycki, P., Kowalski, P. A., & Lukasik, S. (2010). Seeds [Dataset]. UCI Machine Learning Repository.