Analisis diskriminan merupakan salah satu teknik statistik multivariat yang digunakan untuk memisahkan objek ke dalam dua atau lebih kelompok berdasarkan kombinasi linear variabel prediktor. Metode ini bertujuan membentuk fungsi diskriminan yang memaksimalkan perbedaan antar kelompok sehingga suatu observasi dapat diklasifikasikan dengan akurat. Pada tingkat praktikum, analisis diskriminan dipelajari untuk memahami bagaimana pemisahan linear dapat diterapkan pada data yang memiliki struktur kelompok yang jelas.
Dalam praktikum ini, analisis diskriminan akan diterapkan pada dataset Rice (Cammeo dan Osmancik) yang diambil berdasarkan penelitian klasifikasi varietas nasi menggunakan metode artificial intelligence (Cinar dan Koklu, 2019). Berdasarkan penelitian tersebut, dataset ini dihasilkan dari perangkat yang terdiri atas kamera, sistem pencahayaan terkontrol, dan perangkat lunak pemrosesan hasil kamera yang mengambil dan menganalisis butiran beras. Melalui sistem ini, diturunkan sejumlah fitur numerik seperti area, perimeter, major axis length, minor axis length, Eccentricity, convex area, Extent dan Class. Setiap butiran beras diidentifikasi ke dalam salah satu dari dua varietas, yakni Cammeo atau Osmancik, sehingga membentuk struktur data dua kelompok dengan variabel prediktor kontinu.
Karakteristik data seperti ini sangat sesuai untuk dianalisis menggunakan analisis diskriminan, karena tujuannya adalah menentukan kombinasi variabel morfologis yang paling efektif dalam membedakan kedua varietas tersebut. Melalui penerapan metode ini, praktikum bertujuan mengevaluasi kemampuan fungsi diskriminan dalam memisahkan kedua kelompok, mengidentifikasi variabel yang paling berkontribusi terhadap pemisahan kelas, serta menilai tingkat akurasi model dalam melakukan klasifikasi.
Menurut Rencher (2002), analisis diskriminan memiliki dua tujuan utama. Tujuan pertama adalah mendeskripsikan pemisahan kelompok melalui pembentukan kombinasi linear variabel yang dapat menjelaskan perbedaan antar grup. Pada tahap ini, analisis berfokus pada kontribusi masing-masing variabel terhadap pemisahan serta pencarian bidang proyeksi yang memberikan gambaran paling jelas mengenai konfigurasi kelompok. Tujuan kedua adalah mengklasifikasikan atau mengalokasikan suatu observasi ke dalam kelompok tertentu dengan menggunakan fungsi diskriminan atau fungsi klasifikasi. Nilai-nilai pada suatu unit pengamatan dievaluasi melalui fungsi tersebut untuk menentukan kelompok mana yang paling mungkin ditempati oleh observasi tersebut.
Rencher (2002) menjelaskan bahwa pada analisis diskriminan untuk dua kelompok, fungsi diskriminan dibentuk sebagai kombinasi linear variabel yang memaksimalkan pemisahan antara dua populasi yang memiliki matriks kovarians sama tetapi memiliki vektor mean yang berbeda. Misalkan terdapat dua kelompok dengan rerata y1dan y2, masing-masing terdiri dari pengamatan 𝑦 berdimensi 𝑝. Pada kasus dua kelompok saja, fungsi diskriminan didefinisikan sebagai transformasi linear
\[ z = \mathbf{a}' \mathbf{y} \]
yang memetakan setiap vektor pengamatan ke dalam suatu nilai skalar. Proyeksi ini menghasilkan dua set nilai, yaitu z1i untuk kelompok pertama dan z2i untuk kelompok kedua, dengan bentuk sebagai berikut.
\[ z_{1i} = \mathbf{a}' \mathbf{y}_{1i} = a_1 y_{11} + a_2 y_{12} + \cdots + a_p y_{1p}, \qquad z_{2i} = \mathbf{a}' \mathbf{y}_{2i} = a_1 y_{21} + a_2 y_{22} + \cdots + a_p y_{2p} \]
rata-rata dari kedua bentuk tersebut adalah
\[ z_{1i} = \mathbf{a}' \mathbf{y}_{1i} = \bar{\mathbf{y}}_1 = \frac{1}{n_1} \sum_{i=1}^{n_1} \mathbf{y}_{1i}, \qquad z_{2i} = \mathbf{a}' \mathbf{y}_{2i} = \bar{\mathbf{y}}_2 = \frac{1}{n_2} \sum_{i=1}^{n_2} \mathbf{y}_{2i} \]
Pada dua kelompok, tujuan utama fungsi diskriminan adalah mencari vektor koefisien 𝑎 yang memaksimalkan perbedaan antara dua mean proyeksi tersebut relatif terhadap varians dalam kelompok. Rencher menyatakan bahwa ukuran pemisahan optimal dinyatakan melalui rasio berikut.
\[ \frac{ \left[ \mathbf{a}' (\bar{\mathbf{y}}_1 - \bar{\mathbf{y}}_2 ) \right]^2 }{ \mathbf{a}' \mathbf{S}_p \mathbf{a} } \]
Rasio ini akan mencapai maksimum ketika
\[ \mathbf{a} = \mathbf{S}_p^{-1} (\bar{\mathbf{y}}_1 - \bar{\mathbf{y}}_2) \]
Dengan demikian, untuk analisis diskriminan dua kelompok, fungsi diskriminan linear yang optimal diperoleh dengan memproyeksikan data ke arah perbedaan mean yang telah ditimbang oleh invers kovarians gabungan. Proyeksi ini memberikan pemisahan maksimum antara dua kelompok di ruang satu dimensi, sehingga kombinasi linear yang dihasilkan merupakan pemisah terbaik bagi kasus dua kelas.
Menurut Hair et al. (2018), penerapan analisis diskriminan memerlukan sejumlah asumsi agar proses estimasi fungsi diskriminan dan hasil klasifikasi dapat dipercaya. Asumsi-asumsi ini berpengaruh langsung terhadap ketepatan pemisahan kelompok serta stabilitas koefisien diskriminan.
Pertama, analisis diskriminan mengasumsikan bahwa variabel independen dalam masing-masing kelompok mengikuti distribusi normal multivariat. Pelanggaran terhadap normalitas dapat menyebabkan ketidakstabilan dalam estimasi fungsi diskriminan, terutama bila ukuran sampel kecil atau perbedaan ukuran kelompok cukup besar.
Kedua, diasumsikan bahwa masing-masing kelompok memiliki matriks
varians-kovarians yang sama. Pengujian paling umum untuk memeriksa
asumsi ini adalah Box’s M test, yang mengevaluasi apakah kovarians antar
kelompok berbeda secara signifikan. Hair et al. menekankan bahwa Box’s M
sensitif terhadap ukuran sampel, sehingga tingkat signifikansi
konservatif (misalnya p < 0.01) sering dianjurkan.
Hair et al. juga menekankan bahwa keberadaan outlier dapat memengaruhi
ketepatan fungsi diskriminan maupun hasil klasifikasi, sehingga
pemeriksaan dan penanganan outlier perlu dilakukan sebelum estimasi.
Apabila asumsi-asumsi ini dilanggar, dampaknya dapat muncul baik pada
proses estimasi fungsi diskriminan maupun pada akurasi klasifikasi.
Dalam kondisi pelanggaran yang berat, peneliti disarankan
mempertimbangkan metode alternatif seperti regresi logistik atau
quadratic discriminant analysis.
Data yang digunakan dalam praktikum ini adalah dataset Rice (Cammeo dan Osmancik) yang diambil berdasarkan penelitian klasifikasi varietas nasi menggunakan metode artificial intelligence (Cinar dan Koklu, 2019). Berdasarkan penelitian tersebut, dataset ini dihasilkan dari perangkat yang terdiri atas kamera, sistem pencahayaan terkontrol, dan perangkat lunak pemrosesan hasil kamera yang mengambil dan menganalisis butiran beras. Melalui sistem ini, diturunkan sejumlah fitur numerik seperti area, perimeter, major axis length, minor axis length, Eccentricity, convex area, Extent dan Class. Setiap butiran beras diidentifikasi ke dalam salah satu dari dua varietas, yakni Cammeo atau Osmancik, sehingga membentuk struktur data dua kelompok dengan variabel prediktor kontinu.
Keterangan variabel:
Area
Menghasilkan jumlah piksel yang berada di dalam batas-batas butir
beras.
Perimeter
Menghitung keliling butir beras berdasarkan jarak antar-piksel yang
membentuk kontur (boundary) objek.
Major Axis Length
Panjang sumbu utama, yaitu garis terpanjang yang dapat ditarik pada
butir beras.
Minor Axis Length
Panjang sumbu minor, yaitu garis terpendek yang dapat ditarik pada butir
beras tegak lurus terhadap sumbu utama.
Eccentricity
Mengukur tingkat kebulatan objek dengan membandingkannya terhadap suatu
elips yang memiliki momen spasial sama dengan butir beras. Nilai
mendekati 1 menunjukkan bentuk lebih lonjong; mendekati 0 menunjukkan
bentuk lebih bulat.
Convex Area
Menyatakan jumlah piksel pada convex hull terkecil yang dapat
membungkus butir beras.
Extent
Menyatakan rasio antara area butir beras dengan jumlah piksel pada
bounding box yang menaungi objek tersebut.
Class
Kategori varietas beras, yaitu Cammeo atau Osmancik.
> library(readr)
> library(MVN)
> library(biotools)
> library(MASS)
> library(candisc)
> library(knitr)
> rice = read.csv("D:/[PERKULIAHAN]/Analisis Multivariat/PRAKTIKUM/rice.csv")
> str(rice)
'data.frame': 3810 obs. of 8 variables:
$ Area : int 15231 14656 14634 13176 14688 13479 15757 16405 14534 13485 ...
$ Perimeter : num 526 494 501 458 507 ...
$ Major_Axis_Length: num 230 206 214 193 212 ...
$ Minor_Axis_Length: num 85.1 91.7 87.8 87.4 89.3 ...
$ Eccentricity : num 0.929 0.895 0.912 0.892 0.907 ...
$ Convex_Area : int 15617 15072 14954 13368 15262 13786 16150 16837 14932 13734 ...
$ Extent : num 0.573 0.615 0.693 0.641 0.646 ...
$ Class : chr "Cammeo" "Cammeo" "Cammeo" "Cammeo" ...
> kable(head(rice,30), caption = "Sebagian Data klasifikasi butir nasi (Cammeo dan Osmancik)")
| Area | Perimeter | Major_Axis_Length | Minor_Axis_Length | Eccentricity | Convex_Area | Extent | Class |
|---|---|---|---|---|---|---|---|
| 15231 | 525.579 | 229.7499 | 85.09379 | 0.9288820 | 15617 | 0.5728955 | Cammeo |
| 14656 | 494.311 | 206.0201 | 91.73097 | 0.8954050 | 15072 | 0.6154363 | Cammeo |
| 14634 | 501.122 | 214.1068 | 87.76829 | 0.9121181 | 14954 | 0.6932588 | Cammeo |
| 13176 | 458.343 | 193.3374 | 87.44839 | 0.8918609 | 13368 | 0.6406690 | Cammeo |
| 14688 | 507.167 | 211.7434 | 89.31245 | 0.9066909 | 15262 | 0.6460239 | Cammeo |
| 13479 | 477.016 | 200.0531 | 86.65029 | 0.9013283 | 13786 | 0.6578973 | Cammeo |
| 15757 | 509.281 | 207.2967 | 98.33614 | 0.8803235 | 16150 | 0.5897081 | Cammeo |
| 16405 | 526.570 | 221.6125 | 95.43671 | 0.9025206 | 16837 | 0.6588883 | Cammeo |
| 14534 | 483.641 | 196.6508 | 95.05068 | 0.8754286 | 14932 | 0.6496513 | Cammeo |
| 13485 | 471.570 | 198.2726 | 87.72729 | 0.8967893 | 13734 | 0.5723199 | Cammeo |
| 14930 | 499.925 | 212.2458 | 90.01748 | 0.9056064 | 15248 | 0.6243727 | Cammeo |
| 14626 | 496.586 | 204.5341 | 92.97487 | 0.8907115 | 15070 | 0.5702145 | Cammeo |
| 15926 | 522.740 | 225.7361 | 91.05709 | 0.9150332 | 16240 | 0.7797689 | Cammeo |
| 14076 | 479.677 | 199.4892 | 90.70998 | 0.8906389 | 14434 | 0.7812188 | Cammeo |
| 13500 | 476.915 | 202.5467 | 85.40547 | 0.9067549 | 13800 | 0.7177033 | Cammeo |
| 14349 | 496.946 | 213.5440 | 86.16077 | 0.9149884 | 14678 | 0.6668371 | Cammeo |
| 15209 | 496.565 | 214.0501 | 91.02632 | 0.9050726 | 15395 | 0.5693696 | Cammeo |
| 15238 | 496.871 | 208.5318 | 93.82840 | 0.8930549 | 15487 | 0.7323145 | Cammeo |
| 13509 | 480.466 | 207.1372 | 83.94016 | 0.9142106 | 13732 | 0.5956349 | Cammeo |
| 13699 | 480.729 | 197.9709 | 89.94907 | 0.8908207 | 14178 | 0.6720467 | Cammeo |
| 13921 | 481.993 | 203.4449 | 88.12582 | 0.9013132 | 14210 | 0.5613306 | Cammeo |
| 14405 | 488.237 | 204.4301 | 90.62646 | 0.8963671 | 14742 | 0.7637858 | Cammeo |
| 13377 | 472.961 | 199.9408 | 86.68287 | 0.9011330 | 13685 | 0.7948307 | Cammeo |
| 15043 | 498.299 | 206.0117 | 94.76669 | 0.8879157 | 15414 | 0.5868836 | Cammeo |
| 14590 | 496.172 | 212.1008 | 88.60241 | 0.9085678 | 14883 | 0.5714845 | Cammeo |
| 13237 | 466.003 | 197.9048 | 85.70957 | 0.9013532 | 13445 | 0.5924186 | Cammeo |
| 16226 | 524.205 | 216.8733 | 96.65368 | 0.8951979 | 16748 | 0.6486249 | Cammeo |
| 13203 | 469.466 | 199.3419 | 85.38957 | 0.9036094 | 13431 | 0.6015582 | Cammeo |
| 13328 | 473.044 | 201.3989 | 85.25861 | 0.9059746 | 13588 | 0.7800995 | Cammeo |
| 14945 | 493.108 | 202.0470 | 95.07941 | 0.8823569 | 15357 | 0.7399980 | Cammeo |
> knitr::opts_chunk$set(max.print = 30)
> #Cek Outlier
> testnorm = mvn(rice[,1:7], multivariate_outlier_method = 'adj',show_new_data = TRUE)
> testnorm$multivariate_normality
Test Statistic p.value Method MVN
1 Henze-Zirkler 9.605 <0.001 asymptotic ✗ Not normal
>
> newdata <- testnorm$new_data #new_data berisi data yang sudah dihapus baris outliernya
> result = mvn(newdata,mvn_test = 'mardia',alpha = 0.05)
> result$multivariate_normality
Test Statistic p.value Method MVN
1 Mardia Skewness 3310.632 <0.001 asymptotic ✗ Not normal
2 Mardia Kurtosis -1.139 0.255 asymptotic ✓ Normal
>
> datafin = rice[c(rownames(newdata)),1:8]
> #rownames(newdata) digunakan supaya datafin mengambil baris non outlier saja dari data rice
> kable(head(datafin,30),caption = "Data tanpa outlier")
| Area | Perimeter | Major_Axis_Length | Minor_Axis_Length | Eccentricity | Convex_Area | Extent | Class | |
|---|---|---|---|---|---|---|---|---|
| 2 | 14656 | 494.311 | 206.0201 | 91.73097 | 0.8954050 | 15072 | 0.6154363 | Cammeo |
| 4 | 13176 | 458.343 | 193.3374 | 87.44839 | 0.8918609 | 13368 | 0.6406690 | Cammeo |
| 6 | 13479 | 477.016 | 200.0531 | 86.65029 | 0.9013283 | 13786 | 0.6578973 | Cammeo |
| 9 | 14534 | 483.641 | 196.6508 | 95.05068 | 0.8754286 | 14932 | 0.6496513 | Cammeo |
| 10 | 13485 | 471.570 | 198.2726 | 87.72729 | 0.8967893 | 13734 | 0.5723199 | Cammeo |
| 12 | 14626 | 496.586 | 204.5341 | 92.97487 | 0.8907115 | 15070 | 0.5702145 | Cammeo |
| 14 | 14076 | 479.677 | 199.4892 | 90.70998 | 0.8906389 | 14434 | 0.7812188 | Cammeo |
| 15 | 13500 | 476.915 | 202.5467 | 85.40547 | 0.9067549 | 13800 | 0.7177033 | Cammeo |
| 20 | 13699 | 480.729 | 197.9709 | 89.94907 | 0.8908207 | 14178 | 0.6720467 | Cammeo |
| 21 | 13921 | 481.993 | 203.4449 | 88.12582 | 0.9013132 | 14210 | 0.5613306 | Cammeo |
| 22 | 14405 | 488.237 | 204.4301 | 90.62646 | 0.8963671 | 14742 | 0.7637858 | Cammeo |
| 23 | 13377 | 472.961 | 199.9408 | 86.68287 | 0.9011330 | 13685 | 0.7948307 | Cammeo |
| 24 | 15043 | 498.299 | 206.0117 | 94.76669 | 0.8879157 | 15414 | 0.5868836 | Cammeo |
| 26 | 13237 | 466.003 | 197.9048 | 85.70957 | 0.9013532 | 13445 | 0.5924186 | Cammeo |
| 28 | 13203 | 469.466 | 199.3419 | 85.38957 | 0.9036094 | 13431 | 0.6015582 | Cammeo |
| 29 | 13328 | 473.044 | 201.3989 | 85.25861 | 0.9059746 | 13588 | 0.7800995 | Cammeo |
| 31 | 13130 | 467.922 | 196.1468 | 86.20712 | 0.8982411 | 13462 | 0.5748183 | Cammeo |
| 32 | 13414 | 479.901 | 203.0860 | 85.73688 | 0.9065165 | 13735 | 0.7140424 | Cammeo |
| 35 | 14479 | 475.925 | 200.5519 | 92.17806 | 0.8881147 | 14696 | 0.7114289 | Cammeo |
| 36 | 14306 | 482.248 | 197.6858 | 94.05611 | 0.8795611 | 14667 | 0.5879501 | Cammeo |
| 37 | 14415 | 488.122 | 203.5928 | 91.03473 | 0.8944634 | 14758 | 0.6741021 | Cammeo |
| 38 | 14415 | 490.066 | 206.5392 | 90.01753 | 0.9000254 | 14671 | 0.6533267 | Cammeo |
| 39 | 14524 | 480.212 | 199.9330 | 93.31210 | 0.8844068 | 14808 | 0.6112795 | Cammeo |
| 41 | 12768 | 464.820 | 195.3882 | 84.35992 | 0.9019907 | 13085 | 0.5829871 | Cammeo |
| 44 | 13973 | 474.008 | 192.3493 | 93.77914 | 0.8730972 | 14354 | 0.6141978 | Cammeo |
| 45 | 13858 | 482.580 | 205.0202 | 86.96468 | 0.9055797 | 14154 | 0.5559211 | Cammeo |
| 47 | 12792 | 462.073 | 194.4810 | 84.73089 | 0.9001031 | 13032 | 0.5939270 | Cammeo |
| 50 | 14911 | 494.089 | 207.5602 | 92.41061 | 0.8954197 | 15132 | 0.6047615 | Cammeo |
| 51 | 15360 | 504.232 | 210.3907 | 94.74096 | 0.8928725 | 15751 | 0.7576579 | Cammeo |
| 58 | 13536 | 478.006 | 203.1738 | 85.91058 | 0.9062030 | 13810 | 0.5528057 | Cammeo |
>
> #UJI ASUMSI HOMOGENITAS RAGAM PERAGAM
> ujiboxM = boxM(cbind(datafin$Area,datafin$Perimeter,datafin$Major_Axis_Length,
+ datafin$Minor_Axis_Length,datafin$Eccentricity,datafin$Convex_Area,
+ datafin$Extent),datafin$Class)
> ujiboxM
Box's M-test for Homogeneity of Covariance Matrices
data: cbind(datafin$Area, datafin$Perimeter, datafin$Major_Axis_Length, datafin$Minor_Axis_Length, datafin$Eccentricity, datafin$Convex_Area, datafin$Extent)
Chi-Sq (approx.) = 2249.8, df = 28, p-value < 2.2e-16
> X<-as.matrix(datafin[,1:7])
> X.manova<-manova(X~datafin$Class, data=datafin)
> X.wilks<-summary(X.manova, test="Wilks")
> X.wilks
Df Wilks approx F num Df den Df Pr(>F)
datafin$Class 1 0.37996 625.23 7 2682 < 2.2e-16 ***
Residuals 2688
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> cc<-candisc(X.manova)
> cc
Canonical Discriminant Analysis for datafin$Class:
CanRsq Eigenvalue Difference Percent Cumulative
1 0.62004 1.6318 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.37996 625.23 7 2682 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> library(MASS)
> ldamdl<-lda(datafin$Class~., data = datafin)
> ldamdl
Call:
lda(datafin$Class ~ ., data = datafin)
Prior probabilities of groups:
Cammeo Osmancik
0.2579926 0.7420074
Group means:
Area Perimeter Major_Axis_Length Minor_Axis_Length Eccentricity
Cammeo 13554.83 473.2275 197.7268 88.34623 0.8942526
Osmancik 11586.14 429.9507 176.5322 84.61886 0.8766063
Convex_Area Extent
Cammeo 13869.00 0.6510349
Osmancik 11834.98 0.6693083
Coefficients of linear discriminants:
LD1
Area 3.352083e-04
Perimeter 1.761657e-02
Major_Axis_Length -3.223497e-02
Minor_Axis_Length 1.481436e+00
Eccentricity 2.156263e+02
Convex_Area -6.384982e-03
Extent -1.449774e-01
> predLDA1<- predict(ldamdl, datafin)
> table(actual=datafin$Class, predicted=predLDA1$class)
predicted
actual Cammeo Osmancik
Cammeo 563 131
Osmancik 86 1910
Uji normalitas multivariat awal menggunakan fungsi mvn()
menunjukkan bahwa data tidak berdistribusi normal, baik secara univariat
maupun multivariat. Selain itu, teridentifikasi sejumlah outlier
berdasarkan jarak Mahalanobis. Penanganan dilakukan dengan membuang
baris data yang mengandung outlier sehingga dihasilkan data baru
(datafin) yang digunakan pada analisis selanjutnya.
Meskipun outlier telah dihilangkan dan pengujian ulang dilakukan, hasil normalitas tetap menunjukkan bahwa data tidak berdistribusi normal. Kondisi ini dapat disebabkan oleh karakteristik variabel pada dataset Rice yang cenderung memiliki distribusi tidak simetris. Dalam konteks praktikum, analisis tetap dilanjutkan karena tujuan utama adalah menerapkan prosedur analisis diskriminan dan mengevaluasi pemisahan kelompok menggunakan data nyata, bukan memastikan pemenuhan asumsi teoritis secara ketat. Pelanggaran asumsi normalitas dicatat sebagai keterbatasan dalam interpretasi hasil.
Hasil uji Box’s M menunjukkan bahwa matriks varians–kovarians kedua kelompok tidak homogen. Namun, Hair et al. (2018) menyatakan bahwa dampak ketidaksamaan kovarians dapat diminimalkan apabila ukuran sampel cukup besar, sehingga analisis diskriminan masih dapat dilakukan tanpa gangguan yang terlalu serius. Karena dataset rice memiliki jumlah observasi yang besar, analisis tetap dilanjutkan untuk tujuan praktikum. Dalam kondisi seperti ini, Quadratic Discriminant Analysis sebenarnya dapat menjadi alternatif karena tidak memerlukan asumsi kovarians yang sama antar kelompok. Namun, praktikum ini tetap menggunakan Linear Discriminant Analysis dan mencatat ketidakhomogenan kovarians sebagai keterbatasan analisis.
Berdasarkan hasil uji MANOVA menggunakan statistik Wilks’ Lambda, diperoleh nilai Wilks sebesar 0.37996. Nilai p yang sangat kecil ini menunjukkan bahwa terdapat perbedaan rata-rata yang signifikan secara multivariat antara kelompok Cammeo dan Osmancik pada tujuh variabel yang dianalisis.
Berdasarkan analisis canonical discriminant, hanya terbentuk satu fungsi kanonik karena data terdiri dari dua kelompok. Fungsi kanonik tersebut memiliki nilai canonical R² sebesar 0.62004, yang menunjukkan bahwa sekitar 62% variasi pemisahan antara kelompok Cammeo dan Osmancik dapat dijelaskan oleh kombinasi linear variabel prediktor. Nilai eigen sebesar 1.6318 mengindikasikan kemampuan fungsi ini dalam memisahkan dua kelompok cukup kuat.
Model LDA menghasilkan satu fungsi diskriminan karena data terdiri dari dua kelompok. Koefisien LD1 menunjukkan kontribusi masing-masing variabel dalam pemisahan kedua kelompok. Variabel dengan kontribusi positif terhadap skor diskriminan adalah Area (0.000335), Perimeter (0.0176), Minor Axis Length (1.4814), dan Eccentricity (215.6263), sedangkan Major Axis Length (−0.0322), Convex Area (−0.00638), dan Extent (−0.1449) berkontribusi negatif. Besarnya nilai absolut koefisien menunjukkan bahwa Eccentricity, Minor Axis Length, dan Extent menjadi variabel yang paling berpengaruh dalam membedakan Cammeo dan Osmancik.
Berdasarkan hasil klasifikasi menggunakan model LDA, diperoleh bahwa dari 694 butir beras Cammeo, sebanyak 563 terklasifikasi dengan benar dan 131 salah diklasifikasikan sebagai Osmancik. Sementara itu, dari 1.996 butir beras Osmancik, sebanyak 1.910 terklasifikasi dengan benar dan 86 salah diklasifikasikan sebagai Cammeo. Secara keseluruhan, model mampu mengklasifikasikan mayoritas pengamatan dengan benar, yang menunjukkan bahwa fungsi diskriminan yang terbentuk cukup efektif dalam memisahkan kedua kelompok berdasarkan variabel yang digunakan.
Sebagai pembanding, dilakukan juga klasifikasi menggunakan Quadratic Discriminant Analysis, yang tidak mensyaratkan homogenitas matriks varians–kovarians. Hasil klasifikasi menunjukkan bahwa QDA mengklasifikasikan 612 butir Cammeo dan 1.800 butir Osmancik dengan benar. Jumlah salah klasifikasi pada kelompok Cammeo berkurang dibandingkan LDA, namun kesalahan klasifikasi pada Osmancik justru meningkat. Perbedaan ini menunjukkan bahwa QDA memberikan pola pemisahan yang berbeda karena mempertimbangkan kovarians spesifik kelompok. Hasil klasifikasi menunjukkan bahwa QDA mengklasifikasikan 612 butir Cammeo dan 1.800 butir Osmancik dengan benar. Jumlah salah klasifikasi pada kelompok Cammeo berkurang dibandingkan LDA, namun kesalahan klasifikasi pada Osmancik justru meningkat. Perbedaan ini menunjukkan bahwa QDA memberikan pola pemisahan yang berbeda karena mempertimbangkan kovarians spesifik kelompok.
Berdasarkan serangkaian analisis yang telah dilakukan, dapat disimpulkan bahwa data butiran beras varietas Cammeo dan Osmancik memiliki perbedaan multivariat yang signifikan, sebagaimana ditunjukkan oleh hasil MANOVA. Perbedaan ini memungkinkan terbentuknya satu fungsi diskriminan linear (LD1) yang menjadi dasar pemisahan dua varietas tersebut. Fungsi diskriminan yang diperoleh menunjukkan bahwa variabel Eccentricity, Minor Axis Length, dan Extent memberikan kontribusi paling besar dalam membedakan kedua kelompok, sedangkan variabel lainnya berkontribusi dalam skala yang lebih kecil.
Namun, proses analisis menunjukkan bahwa beberapa asumsi dasar Linear Discriminant Analysis (LDA) tidak terpenuhi. Uji normalitas univariat maupun multivariat menunjukkan bahwa data tidak berdistribusi normal, dan uji Box’s M mengindikasikan bahwa matriks varians–kovarians antar kelompok tidak homogen. Kondisi ini menjadi keterbatasan penting dalam interpretasi hasil, karena LDA secara teoritis bekerja optimal ketika asumsi-asumsi tersebut dipenuhi. Meski demikian, ukuran sampel yang sangat besar membantu menstabilkan estimasi dan memungkinkan analisis tetap dilakukan untuk tujuan praktikum. Hal ini sejalan dengan literatur yang menyatakan bahwa efek ketidaksamaan kovarians dapat diminimalkan dengan jumlah data yang memadai.
Hasil klasifikasi menunjukkan bahwa LDA mampu mengelompokkan sebagian besar pengamatan dengan akurasi yang lebih tinggi dibandingkan quadratic discriminant analysis (QDA). Namun, karena asumsi homogenitas kovarians tidak terpenuhi, QDA sebenarnya merupakan metode yang lebih sesuai secara teori.
Cınar, I., & Koklu, M. (2018). Classification of Rice Varieties Using Artificial Intelligence Methods. International Journal of Intelligent Systems and Applications in Engineering.
Hair, J. F., Black, W. C., Babin, B. J., & Anderson, R. E. (2018). Multivariate data analysis (8th ed.). Cengage Learning.
Rencher, A. C. (2002). Methods of multivariate analysis. Wiley-Interscience.
Rice (Cammeo and Osmancik) [Dataset]. (2019). UCI Machine Learning Repository. https://doi.org/10.24432/C5MW4Z.