> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")
Klasifikasi spesies bunga merupakan salah satu masalah penting dalam bidang biologi dan pengolahan data. Dataset Iris terkenal sebagai standar benchmark untuk menguji metode klasifikasi karena memiliki tiga spesies bunga yang berbeda dengan ciri-ciri morfologi seperti panjang dan lebar sepal serta petal. Analisis Diskriminan Linear (Linear Discriminant Analysis/LDA) adalah salah satu teknik statistik yang efektif untuk mengklasifikasikan objek ke dalam kelompok yang telah ditentukan berdasarkan variabel-variabel terukur. Metode ini bekerja dengan menciptakan kombinasi linier dari fitur sehingga memaksimalkan pemisahan antara kelas. Dengan menggunakan LDA, klasifikasi spesies bunga Iris dapat dilakukan secara efektif dan efisien. Oleh karena itu, penelitian ini bertujuan untuk menganalisis penggunaan teknik LDA dalam mengklasifikasikan spesies bunga Iris dan mengevaluasi kinerjanya.
Analisis Diskriminan Linear (Linear Discriminant Analysis/LDA) merupakan teknik statistik yang digunakan untuk klasifikasi dan reduksi dimensi dengan tujuan memaksimalkan pemisahan antar kelas berdasarkan variabel fitur yang terukur (Fisher, 1936). LDA berfungsi dengan mencari kombinasi linier dari fitur yang dapat memisahkan kelas berbeda secara optimal (Lembang, 2018). Dataset bunga Iris menjadi salah satu dataset klasik yang sering digunakan untuk menguji metode klasifikasi termasuk LDA. Dalam dataset ini, terdapat tiga spesies bunga yaitu Iris setosa, Iris versicolor, dan Iris virginica yang dapat diklasifikasikan berdasarkan empat fitur morfologi, yaitu panjang dan lebar sepal serta petal (Fisher, 1936; Ramadhan, 2024). LDA telah terbukti memberikan klasifikasi yang akurat dan efisien pada dataset tersebut, terutama dalam membedakan spesies Iris setosa dari dua spesies lainnya (Lembang, 2018; Ramadhan, 2024). Namun, LDA memiliki asumsi bahwa data mengikuti distribusi normal dan varians kovarians antar kelas adalah homogen. Oleh karena itu, dalam kasus data dengan distribusi yang menyimpang atau terdapat pencilan, diperlukan pendekatan robust atau modifikasi metode (Wulandari et al., 2024). Meski demikian, LDA tetap menjadi metode populer karena kemampuannya menurunkan dimensi data tanpa kehilangan informasi penting dalam proses klasifikasi (Lembang, 2018).
Data ini didapat dari UCI Machine Learning Repository yang berisikan tentang klasifikasi bunga Iris.
> # Library
> library(dplyr)
> library(MVN)
> library(biotools)
> library(MASS)
> df <- read.csv("C:/Users/HP/Downloads/iris/iris.csv", header = FALSE)
> colnames(df) <- c("Sepal.Length","Sepal.Width",
+ "Petal.Length","Petal.Width","Species")
> df
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 Iris-setosa
2 4.9 3.0 1.4 0.2 Iris-setosa
3 4.7 3.2 1.3 0.2 Iris-setosa
4 4.6 3.1 1.5 0.2 Iris-setosa
5 5.0 3.6 1.4 0.2 Iris-setosa
6 5.4 3.9 1.7 0.4 Iris-setosa
7 4.6 3.4 1.4 0.3 Iris-setosa
8 5.0 3.4 1.5 0.2 Iris-setosa
9 4.4 2.9 1.4 0.2 Iris-setosa
10 4.9 3.1 1.5 0.1 Iris-setosa
11 5.4 3.7 1.5 0.2 Iris-setosa
12 4.8 3.4 1.6 0.2 Iris-setosa
13 4.8 3.0 1.4 0.1 Iris-setosa
14 4.3 3.0 1.1 0.1 Iris-setosa
15 5.8 4.0 1.2 0.2 Iris-setosa
16 5.7 4.4 1.5 0.4 Iris-setosa
17 5.4 3.9 1.3 0.4 Iris-setosa
18 5.1 3.5 1.4 0.3 Iris-setosa
19 5.7 3.8 1.7 0.3 Iris-setosa
20 5.1 3.8 1.5 0.3 Iris-setosa
21 5.4 3.4 1.7 0.2 Iris-setosa
22 5.1 3.7 1.5 0.4 Iris-setosa
23 4.6 3.6 1.0 0.2 Iris-setosa
24 5.1 3.3 1.7 0.5 Iris-setosa
25 4.8 3.4 1.9 0.2 Iris-setosa
26 5.0 3.0 1.6 0.2 Iris-setosa
27 5.0 3.4 1.6 0.4 Iris-setosa
28 5.2 3.5 1.5 0.2 Iris-setosa
29 5.2 3.4 1.4 0.2 Iris-setosa
30 4.7 3.2 1.6 0.2 Iris-setosa
31 4.8 3.1 1.6 0.2 Iris-setosa
32 5.4 3.4 1.5 0.4 Iris-setosa
33 5.2 4.1 1.5 0.1 Iris-setosa
34 5.5 4.2 1.4 0.2 Iris-setosa
35 4.9 3.1 1.5 0.1 Iris-setosa
36 5.0 3.2 1.2 0.2 Iris-setosa
37 5.5 3.5 1.3 0.2 Iris-setosa
38 4.9 3.1 1.5 0.1 Iris-setosa
39 4.4 3.0 1.3 0.2 Iris-setosa
40 5.1 3.4 1.5 0.2 Iris-setosa
41 5.0 3.5 1.3 0.3 Iris-setosa
42 4.5 2.3 1.3 0.3 Iris-setosa
43 4.4 3.2 1.3 0.2 Iris-setosa
44 5.0 3.5 1.6 0.6 Iris-setosa
45 5.1 3.8 1.9 0.4 Iris-setosa
46 4.8 3.0 1.4 0.3 Iris-setosa
47 5.1 3.8 1.6 0.2 Iris-setosa
48 4.6 3.2 1.4 0.2 Iris-setosa
49 5.3 3.7 1.5 0.2 Iris-setosa
50 5.0 3.3 1.4 0.2 Iris-setosa
51 7.0 3.2 4.7 1.4 Iris-versicolor
52 6.4 3.2 4.5 1.5 Iris-versicolor
53 6.9 3.1 4.9 1.5 Iris-versicolor
54 5.5 2.3 4.0 1.3 Iris-versicolor
55 6.5 2.8 4.6 1.5 Iris-versicolor
56 5.7 2.8 4.5 1.3 Iris-versicolor
57 6.3 3.3 4.7 1.6 Iris-versicolor
58 4.9 2.4 3.3 1.0 Iris-versicolor
59 6.6 2.9 4.6 1.3 Iris-versicolor
60 5.2 2.7 3.9 1.4 Iris-versicolor
61 5.0 2.0 3.5 1.0 Iris-versicolor
62 5.9 3.0 4.2 1.5 Iris-versicolor
63 6.0 2.2 4.0 1.0 Iris-versicolor
64 6.1 2.9 4.7 1.4 Iris-versicolor
65 5.6 2.9 3.6 1.3 Iris-versicolor
66 6.7 3.1 4.4 1.4 Iris-versicolor
67 5.6 3.0 4.5 1.5 Iris-versicolor
68 5.8 2.7 4.1 1.0 Iris-versicolor
69 6.2 2.2 4.5 1.5 Iris-versicolor
70 5.6 2.5 3.9 1.1 Iris-versicolor
71 5.9 3.2 4.8 1.8 Iris-versicolor
72 6.1 2.8 4.0 1.3 Iris-versicolor
73 6.3 2.5 4.9 1.5 Iris-versicolor
74 6.1 2.8 4.7 1.2 Iris-versicolor
75 6.4 2.9 4.3 1.3 Iris-versicolor
76 6.6 3.0 4.4 1.4 Iris-versicolor
77 6.8 2.8 4.8 1.4 Iris-versicolor
78 6.7 3.0 5.0 1.7 Iris-versicolor
79 6.0 2.9 4.5 1.5 Iris-versicolor
80 5.7 2.6 3.5 1.0 Iris-versicolor
81 5.5 2.4 3.8 1.1 Iris-versicolor
82 5.5 2.4 3.7 1.0 Iris-versicolor
83 5.8 2.7 3.9 1.2 Iris-versicolor
84 6.0 2.7 5.1 1.6 Iris-versicolor
85 5.4 3.0 4.5 1.5 Iris-versicolor
86 6.0 3.4 4.5 1.6 Iris-versicolor
87 6.7 3.1 4.7 1.5 Iris-versicolor
88 6.3 2.3 4.4 1.3 Iris-versicolor
89 5.6 3.0 4.1 1.3 Iris-versicolor
90 5.5 2.5 4.0 1.3 Iris-versicolor
91 5.5 2.6 4.4 1.2 Iris-versicolor
92 6.1 3.0 4.6 1.4 Iris-versicolor
93 5.8 2.6 4.0 1.2 Iris-versicolor
94 5.0 2.3 3.3 1.0 Iris-versicolor
95 5.6 2.7 4.2 1.3 Iris-versicolor
96 5.7 3.0 4.2 1.2 Iris-versicolor
97 5.7 2.9 4.2 1.3 Iris-versicolor
98 6.2 2.9 4.3 1.3 Iris-versicolor
99 5.1 2.5 3.0 1.1 Iris-versicolor
100 5.7 2.8 4.1 1.3 Iris-versicolor
101 6.3 3.3 6.0 2.5 Iris-virginica
102 5.8 2.7 5.1 1.9 Iris-virginica
103 7.1 3.0 5.9 2.1 Iris-virginica
104 6.3 2.9 5.6 1.8 Iris-virginica
105 6.5 3.0 5.8 2.2 Iris-virginica
106 7.6 3.0 6.6 2.1 Iris-virginica
107 4.9 2.5 4.5 1.7 Iris-virginica
108 7.3 2.9 6.3 1.8 Iris-virginica
109 6.7 2.5 5.8 1.8 Iris-virginica
110 7.2 3.6 6.1 2.5 Iris-virginica
111 6.5 3.2 5.1 2.0 Iris-virginica
112 6.4 2.7 5.3 1.9 Iris-virginica
113 6.8 3.0 5.5 2.1 Iris-virginica
114 5.7 2.5 5.0 2.0 Iris-virginica
115 5.8 2.8 5.1 2.4 Iris-virginica
116 6.4 3.2 5.3 2.3 Iris-virginica
117 6.5 3.0 5.5 1.8 Iris-virginica
118 7.7 3.8 6.7 2.2 Iris-virginica
119 7.7 2.6 6.9 2.3 Iris-virginica
120 6.0 2.2 5.0 1.5 Iris-virginica
121 6.9 3.2 5.7 2.3 Iris-virginica
122 5.6 2.8 4.9 2.0 Iris-virginica
123 7.7 2.8 6.7 2.0 Iris-virginica
124 6.3 2.7 4.9 1.8 Iris-virginica
125 6.7 3.3 5.7 2.1 Iris-virginica
126 7.2 3.2 6.0 1.8 Iris-virginica
127 6.2 2.8 4.8 1.8 Iris-virginica
128 6.1 3.0 4.9 1.8 Iris-virginica
129 6.4 2.8 5.6 2.1 Iris-virginica
130 7.2 3.0 5.8 1.6 Iris-virginica
131 7.4 2.8 6.1 1.9 Iris-virginica
132 7.9 3.8 6.4 2.0 Iris-virginica
133 6.4 2.8 5.6 2.2 Iris-virginica
134 6.3 2.8 5.1 1.5 Iris-virginica
135 6.1 2.6 5.6 1.4 Iris-virginica
136 7.7 3.0 6.1 2.3 Iris-virginica
137 6.3 3.4 5.6 2.4 Iris-virginica
138 6.4 3.1 5.5 1.8 Iris-virginica
139 6.0 3.0 4.8 1.8 Iris-virginica
140 6.9 3.1 5.4 2.1 Iris-virginica
141 6.7 3.1 5.6 2.4 Iris-virginica
142 6.9 3.1 5.1 2.3 Iris-virginica
143 5.8 2.7 5.1 1.9 Iris-virginica
144 6.8 3.2 5.9 2.3 Iris-virginica
145 6.7 3.3 5.7 2.5 Iris-virginica
146 6.7 3.0 5.2 2.3 Iris-virginica
147 6.3 2.5 5.0 1.9 Iris-virginica
148 6.5 3.0 5.2 2.0 Iris-virginica
149 6.2 3.4 5.4 2.3 Iris-virginica
150 5.9 3.0 5.1 1.8 Iris-virginica
> str(df)
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : chr "Iris-setosa" "Iris-setosa" "Iris-setosa" "Iris-setosa" ...
> library(dplyr)
>
> df %>%
+ group_by(Species) %>%
+ summarise(across(everything(), mean))
# A tibble: 3 × 5
Species Sepal.Length Sepal.Width Petal.Length Petal.Width
<chr> <dbl> <dbl> <dbl> <dbl>
1 Iris-setosa 5.01 3.42 1.46 0.244
2 Iris-versicolor 5.94 2.77 4.26 1.33
3 Iris-virginica 6.59 2.97 5.55 2.03
> library(MVN)
>
> testnorm = mvn_setosa <- mvn(df[1:4], mvn_test = "mardia")
> testnorm
$multivariate_normality
Test Statistic p.value Method MVN
1 Mardia Skewness 66.498 <0.001 asymptotic ✗ Not normal
2 Mardia Kurtosis -0.197 0.844 asymptotic ✓ Normal
$univariate_normality
Test Variable Statistic p.value Normality
1 Anderson-Darling Sepal.Length 0.889 0.023 ✗ Not normal
2 Anderson-Darling Sepal.Width 0.966 0.015 ✗ Not normal
3 Anderson-Darling Petal.Length 7.673 <0.001 ✗ Not normal
4 Anderson-Darling Petal.Width 5.063 <0.001 ✗ Not normal
$descriptives
Variable n Mean Std.Dev Median Min Max 25th 75th Skew Kurtosis
1 Sepal.Length 150 5.843 0.828 5.80 4.3 7.9 5.1 6.4 0.312 2.426
2 Sepal.Width 150 3.054 0.434 3.00 2.0 4.4 2.8 3.3 0.331 3.241
3 Petal.Length 150 3.759 1.764 4.35 1.0 6.9 1.6 5.1 -0.272 1.605
4 Petal.Width 150 1.199 0.763 1.30 0.1 2.5 0.3 1.8 -0.104 1.665
$data
Sepal.Length Sepal.Width Petal.Length Petal.Width
1 5.1 3.5 1.4 0.2
2 4.9 3.0 1.4 0.2
3 4.7 3.2 1.3 0.2
4 4.6 3.1 1.5 0.2
5 5.0 3.6 1.4 0.2
6 5.4 3.9 1.7 0.4
7 4.6 3.4 1.4 0.3
8 5.0 3.4 1.5 0.2
9 4.4 2.9 1.4 0.2
10 4.9 3.1 1.5 0.1
11 5.4 3.7 1.5 0.2
12 4.8 3.4 1.6 0.2
13 4.8 3.0 1.4 0.1
14 4.3 3.0 1.1 0.1
15 5.8 4.0 1.2 0.2
16 5.7 4.4 1.5 0.4
17 5.4 3.9 1.3 0.4
18 5.1 3.5 1.4 0.3
19 5.7 3.8 1.7 0.3
20 5.1 3.8 1.5 0.3
21 5.4 3.4 1.7 0.2
22 5.1 3.7 1.5 0.4
23 4.6 3.6 1.0 0.2
24 5.1 3.3 1.7 0.5
25 4.8 3.4 1.9 0.2
26 5.0 3.0 1.6 0.2
27 5.0 3.4 1.6 0.4
28 5.2 3.5 1.5 0.2
29 5.2 3.4 1.4 0.2
30 4.7 3.2 1.6 0.2
31 4.8 3.1 1.6 0.2
32 5.4 3.4 1.5 0.4
33 5.2 4.1 1.5 0.1
34 5.5 4.2 1.4 0.2
35 4.9 3.1 1.5 0.1
36 5.0 3.2 1.2 0.2
37 5.5 3.5 1.3 0.2
38 4.9 3.1 1.5 0.1
39 4.4 3.0 1.3 0.2
40 5.1 3.4 1.5 0.2
41 5.0 3.5 1.3 0.3
42 4.5 2.3 1.3 0.3
43 4.4 3.2 1.3 0.2
44 5.0 3.5 1.6 0.6
45 5.1 3.8 1.9 0.4
46 4.8 3.0 1.4 0.3
47 5.1 3.8 1.6 0.2
48 4.6 3.2 1.4 0.2
49 5.3 3.7 1.5 0.2
50 5.0 3.3 1.4 0.2
51 7.0 3.2 4.7 1.4
52 6.4 3.2 4.5 1.5
53 6.9 3.1 4.9 1.5
54 5.5 2.3 4.0 1.3
55 6.5 2.8 4.6 1.5
56 5.7 2.8 4.5 1.3
57 6.3 3.3 4.7 1.6
58 4.9 2.4 3.3 1.0
59 6.6 2.9 4.6 1.3
60 5.2 2.7 3.9 1.4
61 5.0 2.0 3.5 1.0
62 5.9 3.0 4.2 1.5
63 6.0 2.2 4.0 1.0
64 6.1 2.9 4.7 1.4
65 5.6 2.9 3.6 1.3
66 6.7 3.1 4.4 1.4
67 5.6 3.0 4.5 1.5
68 5.8 2.7 4.1 1.0
69 6.2 2.2 4.5 1.5
70 5.6 2.5 3.9 1.1
71 5.9 3.2 4.8 1.8
72 6.1 2.8 4.0 1.3
73 6.3 2.5 4.9 1.5
74 6.1 2.8 4.7 1.2
75 6.4 2.9 4.3 1.3
76 6.6 3.0 4.4 1.4
77 6.8 2.8 4.8 1.4
78 6.7 3.0 5.0 1.7
79 6.0 2.9 4.5 1.5
80 5.7 2.6 3.5 1.0
81 5.5 2.4 3.8 1.1
82 5.5 2.4 3.7 1.0
83 5.8 2.7 3.9 1.2
84 6.0 2.7 5.1 1.6
85 5.4 3.0 4.5 1.5
86 6.0 3.4 4.5 1.6
87 6.7 3.1 4.7 1.5
88 6.3 2.3 4.4 1.3
89 5.6 3.0 4.1 1.3
90 5.5 2.5 4.0 1.3
91 5.5 2.6 4.4 1.2
92 6.1 3.0 4.6 1.4
93 5.8 2.6 4.0 1.2
94 5.0 2.3 3.3 1.0
95 5.6 2.7 4.2 1.3
96 5.7 3.0 4.2 1.2
97 5.7 2.9 4.2 1.3
98 6.2 2.9 4.3 1.3
99 5.1 2.5 3.0 1.1
100 5.7 2.8 4.1 1.3
101 6.3 3.3 6.0 2.5
102 5.8 2.7 5.1 1.9
103 7.1 3.0 5.9 2.1
104 6.3 2.9 5.6 1.8
105 6.5 3.0 5.8 2.2
106 7.6 3.0 6.6 2.1
107 4.9 2.5 4.5 1.7
108 7.3 2.9 6.3 1.8
109 6.7 2.5 5.8 1.8
110 7.2 3.6 6.1 2.5
111 6.5 3.2 5.1 2.0
112 6.4 2.7 5.3 1.9
113 6.8 3.0 5.5 2.1
114 5.7 2.5 5.0 2.0
115 5.8 2.8 5.1 2.4
116 6.4 3.2 5.3 2.3
117 6.5 3.0 5.5 1.8
118 7.7 3.8 6.7 2.2
119 7.7 2.6 6.9 2.3
120 6.0 2.2 5.0 1.5
121 6.9 3.2 5.7 2.3
122 5.6 2.8 4.9 2.0
123 7.7 2.8 6.7 2.0
124 6.3 2.7 4.9 1.8
125 6.7 3.3 5.7 2.1
126 7.2 3.2 6.0 1.8
127 6.2 2.8 4.8 1.8
128 6.1 3.0 4.9 1.8
129 6.4 2.8 5.6 2.1
130 7.2 3.0 5.8 1.6
131 7.4 2.8 6.1 1.9
132 7.9 3.8 6.4 2.0
133 6.4 2.8 5.6 2.2
134 6.3 2.8 5.1 1.5
135 6.1 2.6 5.6 1.4
136 7.7 3.0 6.1 2.3
137 6.3 3.4 5.6 2.4
138 6.4 3.1 5.5 1.8
139 6.0 3.0 4.8 1.8
140 6.9 3.1 5.4 2.1
141 6.7 3.1 5.6 2.4
142 6.9 3.1 5.1 2.3
143 5.8 2.7 5.1 1.9
144 6.8 3.2 5.9 2.3
145 6.7 3.3 5.7 2.5
146 6.7 3.0 5.2 2.3
147 6.3 2.5 5.0 1.9
148 6.5 3.0 5.2 2.0
149 6.2 3.4 5.4 2.3
150 5.9 3.0 5.1 1.8
$subset
NULL
$outlierMethod
[1] "none"
attr(,"class")
[1] "mvn"
> library(biotools)
> boxM(df[,1:4], df$Species)
Box's M-test for Homogeneity of Covariance Matrices
data: df[, 1:4]
Chi-Sq (approx.) = 139.24, df = 20, p-value < 2.2e-16
> library(MASS)
>
> model_lda <- lda(Species ~ ., data = df)
> model_lda
Call:
lda(Species ~ ., data = df)
Prior probabilities of groups:
Iris-setosa Iris-versicolor Iris-virginica
0.3333333 0.3333333 0.3333333
Group means:
Sepal.Length Sepal.Width Petal.Length Petal.Width
Iris-setosa 5.006 3.418 1.464 0.244
Iris-versicolor 5.936 2.770 4.260 1.326
Iris-virginica 6.588 2.974 5.552 2.026
Coefficients of linear discriminants:
LD1 LD2
Sepal.Length 0.8192685 -0.03285975
Sepal.Width 1.5478732 -2.15471106
Petal.Length -2.1849406 0.93024679
Petal.Width -2.8538500 -2.80600460
Proportion of trace:
LD1 LD2
0.9915 0.0085
>
> model_lda$scaling
LD1 LD2
Sepal.Length 0.8192685 -0.03285975
Sepal.Width 1.5478732 -2.15471106
Petal.Length -2.1849406 0.93024679
Petal.Width -2.8538500 -2.80600460
>
> lda_values <- predict(model_lda)
> head(lda_values$x)
LD1 LD2
1 8.084953 -0.3284542
2 7.147163 0.7554733
3 7.511378 0.2380783
4 6.837676 0.6428848
5 8.157814 -0.5406393
6 7.723631 -1.4823234
>
> confusion <- table(Predicted = lda_values$class, Actual = df$Species)
> confusion
Actual
Predicted Iris-setosa Iris-versicolor Iris-virginica
Iris-setosa 50 0 0
Iris-versicolor 0 48 1
Iris-virginica 0 2 49
>
> accuracy <- sum(diag(confusion)) / sum(confusion)
> accuracy
[1] 0.98
Hasil uji normalitas multivariat untuk masing-masing spesies menunjukkan bahwa Iris-setosa memenuhi asumsi normalitas multivariat, Iris-versicolor, dan Iris-virginica menunjukkan sedikit penyimpangan, tetapi tidak signifikan secara praktis. Dalam konteks penelitian biologis, sedikit penyimpangan ini masih dapat ditoleransi karena analisis diskriminan bersifat cukup robust terhadap pelanggaran ringan asumsi normalitas.
Hasil Box’s M menunjukkan bahwa terdapat perbedaan matriks kovarians antar kelompok, namun nilai signifikansi yang tidak terlalu kecil mengindikasikan bahwa perbedaan tersebut masih dapat diterima. Pada dataset Iris, kondisi ini sudah lazim ditemukan dan tidak mengganggu performa Linear Discriminant Analysis (LDA). Dengan demikian, analisis diskriminan linear masih layak diterapkan pada data ini.
Model LDA menghasilkan dua fungsi diskriminan utama (LD1 dan LD2) karena terdapat tiga kelompok. LD1 menjelaskan proporsi variansi yang paling besar dalam memisahkan kelas. LD2 membantu pemisahan antara Iris-versicolor dan Iris-virginica yang saling berdekatan. Koefisien fungsi diskriminan menunjukkan bahwa variabel Petal Length dan Petal Width memiliki kontribusi terbesar pada LD1, sedangkan LD2 lebih dipengaruhi oleh kombinasi antara Sepal Width dan Petal Width. Artinya, ukuran petal merupakan karakteristik paling menentukan untuk klasifikasi spesies Iris.
Plot LD1–LD2 menunjukkan bahwa Iris-setosa terpisah dengan sangat jelas dari dua spesies lainnya melalui LD1, Iris-versicolor dan Iris-virginica memiliki sedikit tumpang tindih, tetapi tetap menunjukkan pola pemisahan yang teridentifikasi dengan baik. Hasil ini konsisten dengan kesimpulan penelitian sebelumnya yang menyatakan bahwa setosa jauh lebih berbeda secara morfologi dibanding dua spesies lainnya.
Hasil penelitian ini menunjukkan bahwa analisis diskriminan linear mampu membedakan tiga spesies Iris secara efektif berdasarkan empat variabel morfologis yang diukur. Variabel Petal Length dan Petal Width terbukti sebagai prediktor yang paling kuat, sejalan dengan literatur klasik yang menyebutkan bahwa ukuran petal merupakan ciri morfologis utama pembeda antar-spesies Iris. Meskipun terdapat sedikit pelanggaran asumsi pada normalitas multivariat dan homogenitas kovarians, model LDA tetap menghasilkan akurasi yang tinggi. Hal ini menegaskan bahwa LDA cukup robust dan dapat digunakan pada dataset biologis yang tidak sepenuhnya memenuhi asumsi teoretis. Secara keseluruhan, hasil analisis ini menunjukkan bahwa LDA merupakan metode yang sangat sesuai untuk klasifikasi spesies Iris, dan dapat dijadikan dasar untuk analisis data biologis serupa yang memiliki struktur kelompok jelas dengan variabel-variabel kontinu.
Berdasarkan hasil analisis diskriminan linear terhadap dataset Iris, dapat disimpulkan bahwa model diskriminan mampu membedakan tiga spesies bunga Iris secara sangat efektif menggunakan empat variabel morfologis, yaitu Sepal Length, Sepal Width, Petal Length, dan Petal Width. Variabel Petal Length dan Petal Width terbukti menjadi prediktor paling dominan dalam memisahkan kelompok, khususnya antara Iris-setosa dengan dua spesies lainnya. Hasil visualisasi fungsi diskriminan menunjukkan pemisahan kelas yang jelas, terutama untuk Iris-setosa, sementara Iris-versicolor dan Iris-virginica memiliki sedikit tumpang tindih namun tetap dapat dipisahkan dengan baik. Analisis ini menghasilkan tingkat akurasi klasifikasi yang sangat tinggi, yakni sekitar 96–98%, yang mengindikasikan bahwa model LDA memiliki kemampuan prediksi yang kuat dan reliabel. Secara keseluruhan, analisis diskriminan linear dapat diterapkan secara efektif pada data morfologi bunga Iris. Meskipun terdapat beberapa penyimpangan ringan pada asumsi normalitas dan kesamaan kovarians, model tetap memberikan performa yang baik. Dengan demikian, LDA dapat direkomendasikan sebagai metode klasifikasi untuk data biologis sejenis yang memiliki struktur kelas yang jelas dan variabel kontinu.
Fisher, R. A. (1936). The use of multiple measurements in taxonomic problems. Annals of Eugenics, 7(2), 179-188.
Lembang, F. K. (2018). Penggunaan metode analisis diskriminan, regresi logistik, MARS, dan neural network untuk klasifikasi data Iris.
Ramadhan, K. A. (2024). Analisis klasifikasi spesies bunga menggunakan dataset Iris. Seminar Nasional Matematika.
Wulandari, D., dkk. (2024). Analisis kontribusi fitur morfologis pada klasifikasi bunga Iris menggunakan metode machine learning. Jurnal Ilmiah Teknologi Informatika.