1 Pendahuluan

1.1 Pengertian Analisis Diskriminan

Analisis diskriminan adalah salah satu metode statistika yang masuk ke dalam analisis multivariat yang bertujuan untuk mengelompokkan suatu pengamatan ke dalam suatu kelompok berdasarkan sekumpulan variabel yang mempengaruhinya (Johnson & Wichern, 2007). Pengelompokan dilakukan dengan membantuk sebuah fungsi diskriminan. Fungsi diskrimininan merupakan fungsi yang terdiri atas kombinasi liniear berbagai variabel prediktor. Pada nantinya akan terbentuk fungsi diskrimininan sebanyak jumlah kelas atau kategori dikurangi satu yang dapat memisahkan data. Bentuk umum dari fungsi diskriminan yaitu: \[ \hat D = b_0+ b_1 X_1+b_2 X_2+…+ b_𝑘X_𝑘 \] Keterangan:
- \(\hat D\) = Skor diskriminan
- \(k\) = Banyaknya variabel prediktor
- \(𝑏_0\) = Intersep atau koefisien persamaan fungsi diskriminan
- \(𝑏_𝑘\) = Bobot diskriminan untuk peubah prediktor ke-i, di mana i = 1,2, … ,p
- \(𝑋_𝑘\) = Variabel prediktor ke-i, di mana i = 1,2, … ,p dan k= 1,2, … ,n

1.2 tujuan Analisis Diskriminan

Tujuan dari analisis diskriminan yaitu
- Untuk mengetahui apakah ada perbedaan yang jelas diantara grup pada variabel dependen, jika terdapat perbedaan ingin diketahui variabel independent mana yang membuat perbedaan tersebut.
- Melakukan klasifikasi terhadap objek. Apakah objek tersebut masuk pada grup 1 atau 2.

2 Asumsi Analisis Diskriminan

3 Source Code

3.1 Input Data

> library(MVN)
> library(biotools) 
> library(candisc)
> library(MASS) 
> library(caret)
> library(readxl)
> datadiskriminan <- read_excel("C:/SEMESTER 5/ANMUL/datadiskriminan.xlsx", col_types = c("numeric", "numeric", "numeric", "numeric"))
> head(datadiskriminan)
# A tibble: 6 × 4
    IPM   AHH PPKRD   HLS
  <dbl> <dbl> <dbl> <dbl>
1     0  72.5  9184  12.7
2     0  73.2 10199  13.8
3     0  74.3 10042  12.5
4     1  74.5 11162  13.3
5     0  74.0 11001  12.6
6     1  73.0 11565  13.6

Pada analisis dikriminan diperlukan beberapa library yang dibutuhkan sehingga harus install packages dan mengaktifkan library seperti yang telah tertera. Kemudian memasukkan data menggunakan function readxl dengan memberi tambahan keterangan tipe data numeric tiap kolom.

3.2 Uji Asumsi Multivariat Normality

> datacek<- datadiskriminan
> hasildata<-mvn(datacek[,2:4], multivariateOutlierMethod = "adj", showNewData = TRUE)

> hasildata
$multivariateNormality
           Test       HZ   p value MVN
1 Henze-Zirkler 0.652255 0.4128909 YES

$univariateNormality
              Test  Variable Statistic   p value Normality
1 Anderson-Darling    AHH       1.2523    0.0025    NO    
2 Anderson-Darling   PPKRD      0.7518    0.0460    NO    
3 Anderson-Darling    HLS       0.2863    0.6051    YES   

$Descriptives
       n        Mean      Std.Dev    Median     Min      Max      25th
AHH   38    72.07816    1.9657993    72.835   67.29    74.54    70.775
PPKRD 38 11837.97368 2237.9152399 11564.000 8944.00 18345.00 10278.000
HLS   38    13.47868    0.8989037    13.410   11.91    15.76    12.840
            75th       Skew   Kurtosis
AHH      73.1825 -0.8722380 -0.1507616
PPKRD 12978.7500  0.9834200  0.6218928
HLS      13.9975  0.5238481 -0.1488922

$newData
# A tibble: 31 × 3
     AHH PPKRD   HLS
   <dbl> <dbl> <dbl>
 1  71.1 12320  13.1
 2  67.3 10851  13.3
 3  69.6 10263  13.2
 4  67.8 11254  12.6
 5  70.6 10726  12.8
 6  74.4 14808  15.0
 7  72.9 13051  13.0
 8  72.9 11579  13.6
 9  72.0 12349  13.1
10  71.9 11848  13.2
# … with 21 more rows

Langkah selanjutnya mengetahui ada atau tidaknya outlier pada data sehingga mengecek dengan function mvn dari data pada kolom 2,3,4 dan memberi keterangan untuk membuat new data tanpa outilier yang disimpan dengan nama hasildata.

> databaru <- hasildata$newData

Lalu untuk mendapat data tanpa outlier maka mengambil dari hasil data yaitu newData lalu disimpan dengan nama databaru.

> hasil<- mvn(databaru, mvnTest = 'royston',  alpha = 0.05)
> hasil
$multivariateNormality
     Test        H    p value MVN
1 Royston 7.079969 0.06626739 YES

$univariateNormality
              Test  Variable Statistic   p value Normality
1 Anderson-Darling    AHH       0.7993    0.0341    NO    
2 Anderson-Darling   PPKRD      0.4389    0.2752    YES   
3 Anderson-Darling    HLS       0.1899    0.8915    YES   

$Descriptives
       n        Mean      Std.Dev   Median     Min      Max     25th      75th
AHH   31    71.76097    2.0203058    71.99   67.29    74.47    70.58    72.980
PPKRD 31 12140.77419 2352.2335586 11848.00 8944.00 18345.00 10513.00 13239.000
HLS   31    13.55839    0.9528977    13.51   11.91    15.76    12.90    14.035
            Skew    Kurtosis
AHH   -0.6623426 -0.57480082
PPKRD  0.7447039  0.08051521
HLS    0.3722732 -0.47073063

Kemudian menguji asumsi multivariat normality menggunakan uji royston dengan tingkat kepercayaan 95% dengan functionmvn()dan disimpan dengan nama hasil

3.3 Uji Asumsi Homogenitas Matriks Ragam-Peragam

> uji_bart <- function(x){
+   method <- "Bartlett's test of sphericity"
+   data.name <- deparse(substitute(x))
+   x <- subset(x, complete.cases(x))
+   n <- nrow(x)
+   p <- ncol(x)
+   chisq <- (1-n+(2*p+5)/6)*log(det(cor(x)))
+   df <- p*(p-1)/2
+   p.value <- pchisq(chisq, df, lower.tail=FALSE)
+   names(chisq) <- "Khi-squared"
+   names(df) <- "df"
+   return(structure(list(statistic=chisq, parameter=df, p.value=p.value,
+                         method=method, data.name=data.name), class="htest"))}

Membuat function untuk uji barlet yang berisikan nilai chisquare dan p-value yang disimpan dengan nama uji_bart.

> library(biotools)
> dataakhir<-datadiskriminan[c(8:38),1:4]
> attach(dataakhir)
> uji_bart(dataakhir)

    Bartlett's test of sphericity

data:  dataakhir
Khi-squared = 72.679, df = 6, p-value = 1.152e-13

Mengaktifkan library biotools. Lalu mendefinisikan data baru yang diambil dari datadiskriminan tanpa outlier yaitu dari baris 8 hingga 38 dari semua kolom yang disimpan dengan nama dataakhir. Kemudian uji barlet menggunakan function uji_bart dari data akhir.

4 Pengujian Perbedaan Rata-rata Variabel Dependen

> library(candisc)
> X<-as.matrix(dataakhir[2:4])

Mengaktifkan librarycandisc. Lalu mendefinisikan matriks dari kolom 2,3,4 yang disimpan dengan nama X.Dengan kata lain X merupakan variabel independen.

> X.manova<-manova(X~dataakhir$IPM, data=dataakhir)

Melakukan uji manova variabel dpenden terhadap variabel independen dengan function manova dan disimpan dengan nama X.manova

> X.wilks<-summary(X.manova, test="Wilks")
> X.wilks
              Df  Wilks approx F num Df den Df    Pr(>F)    
dataakhir$IPM  1 0.3346   17.898      3     27 1.347e-06 ***
Residuals     29                                            
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Melakukan uji perbedaan rata-rata dengan uji wilks lambda dengan function summary() dan disimpan dengan nama X.wilks.

> cc<-candisc(X.manova)
> cc

Canonical Discriminant Analysis for dataakhir$IPM:

  CanRsq Eigenvalue Difference Percent Cumulative
1 0.6654     1.9887                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.3346   17.898     3    27 1.347e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Kontribusi variabel independen terhadap variabel dependen menggunakan function candisc() dan disimpan dengan nama c.

4.1 Membuat Fungsi Diskriminan

> library(MASS)
> library(caret)
> modellda<-lda(IPM~., data = dataakhir)
> modellda
Call:
lda(IPM ~ ., data = dataakhir)

Prior probabilities of groups:
       0        1 
0.483871 0.516129 

Group means:
       AHH    PPKRD      HLS
0 70.29133 10361.80 12.86533
1 73.13875 13808.56 14.20813

Coefficients of linear discriminants:
               LD1
AHH   0.3383448710
PPKRD 0.0002704442
HLS   0.6209241436

Mengaktifkan library MASS dan library caret. Lalu Membuat fungsi diskriminan menggunakan function lda() dan disimpan dengan nama modellda.

4.2 Membuat Tabel Klasifikasi Dan Menguji Ketepatan Model

> pred_LDA1<- predict(modellda, dataakhir)
> pred_LDA1
$class
 [1] 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1
Levels: 0 1

$posterior
              0           1
1  9.957630e-01 0.004237039
2  9.743170e-01 0.025682998
3  7.484231e-01 0.251576889
4  9.951167e-01 0.004883342
5  9.785366e-01 0.021463392
6  9.969942e-01 0.003005781
7  9.654744e-01 0.034525647
8  9.948380e-04 0.999005162
9  2.845476e-01 0.715452378
10 3.054324e-01 0.694567584
11 5.780382e-01 0.421961761
12 6.328086e-01 0.367191380
13 1.137202e-01 0.886279845
14 6.202263e-01 0.379773747
15 8.814300e-01 0.118570049
16 9.487211e-01 0.051278938
17 1.678114e-01 0.832188570
18 5.127421e-02 0.948725792
19 9.977081e-01 0.002291897
20 9.993094e-01 0.000690629
21 9.955669e-01 0.004433074
22 8.478359e-01 0.152164107
23 1.997910e-03 0.998002090
24 3.665743e-03 0.996334257
25 9.483247e-05 0.999905168
26 5.761097e-01 0.423890257
27 1.501097e-01 0.849890325
28 1.467600e-02 0.985324003
29 2.137520e-03 0.997862480
30 8.100418e-05 0.999918996
31 3.133822e-02 0.968661783

$x
          LD1
1  -2.0680230
2  -1.3998253
3  -0.4671126
4  -2.0157705
5  -1.4671683
6  -2.1942671
7  -1.2880801
8   2.4647911
9   0.2701484
10  0.2333433
11 -0.1829798
12 -0.2670879
13  0.6846364
14 -0.2473849
15 -0.8026599
16 -1.1367311
17  0.5190013
18  1.0014312
19 -2.2938786
20 -2.7339620
21 -2.0513796
22 -0.6970247
23  2.2089481
24  1.9859630
25  3.3263073
26 -0.1800847
27  0.5675563
28  1.4736429
29  2.1841493
30  3.3840594
31  1.1894421
> table(actual=dataakhir$IPM, predicted=pred_LDA1$class)
      predicted
actual  0  1
     0 15  0
     1  2 14

Membuat tabel prediksi dan aktual yang digunakan untuk menguji ketepatan model. Menggunakan function predict() dan disimpan dengan nama pred_LDA1 lalu membuat taabel dengan function table.

5 Hasil Dan Pembahasan

5.1 Input Data

Data diambil dari website BPS Jawa Timur sebanyak 38 Kabupaten/Kota. Variabel Independen terdiri dari variabel Angka Harapan Hidup (AHH), Pengeluaran Per Kapita Disesuaikan (PPKRD), dan Harapan Lama Sekolah (HLS). Ketiga variabel independen tersebut memiliki tipe data kontinu. Sedangkan Variabel dependen yaitu Indeks Pembangunan Manusia (IPM) yang memiliki tipe data Kategori. Dengan 0 sebagai nilai IPM yang dibawah rata-rata IPM Provinsi Jawa Timur dan 1 sebagai nilai IPM yang diatas rata-rata IPM Provinsi Jawa Timur.

5.2 cek Outlier

> hasildata<-mvn(datacek[,2:4], multivariateOutlierMethod = "adj", showNewData = TRUE)

Plot diatas yaitu Q-Q Plot analisis multivariat untuk mendetekteksi adanya outlier dari data dengan bantuan function mvn sehingga harus memanggil packages MVN dengan data yang digunakan adalah kolom ke 2 hingga kolom ke 4 dari variabel datakrisminan. Berdasarkan gambar di atas, dapat diketahui bahwa pada data yang digunakan masih terdapat data outlier dengan total outliers sebanyak 7 data yaitu data ke-1,2,3,4,5,6,dan 7.Kemudian dilakukan penanganan dengan cara membuang baris yang mengandung outlier. Sehingga akan disimpan menjadi data baru

5.3 Uji Asumsi Multivariat Normality

> hasil$multivariateNormality
     Test        H    p value MVN
1 Royston 7.079969 0.06626739 YES

Data yang telah dibuang outliernya di uji dengan menggunakan uji Royston dengan tingkat kepercayaan 95%. Dengan function MVN didapatkan output tersebut. Hipotesis :

Ho : Variabel prediktor berdistribusi normal multivariat H1 : Variabel prediktor tidak berdistribusi normal multivariat Berdasarkan Uji Royston dengan p-value 0,066 > 0,05, maka terima Ho. Dapat disimpulkan bahwa data telah berdistribusi normal multivariat

5.4 Uji Asumsi Homogenitas Matriks Ragam Peragam

> uji_bart(dataakhir)

    Bartlett's test of sphericity

data:  dataakhir
Khi-squared = 72.679, df = 6, p-value = 1.152e-13

Berdasarkan Uji Barlettt dapat diketahui p-value 1.152e-13 < 0,05 maka terima Ho. Dapat disimpulkan bahwa variable respon memiliki matriks ragam peragam yang sama.

5.5 Uji Vektor Nilai Rata-Rata Kedua Kelompok(Wilks Lambda)

> X.wilks
              Df  Wilks approx F num Df den Df    Pr(>F)    
dataakhir$IPM  1 0.3346   17.898      3     27 1.347e-06 ***
Residuals     29                                            
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hipotesis : Ho : $𝜇_1 \(=\)𝜇_2 $(tidak terdapat perbedaan rata-rata indeks pembangunan manusia kategori tinggi dan rendah) H1 : \(𝜇_1\) \(\ne\) \(𝜇_2\) (terdapat perbedaan rata-rata indeks pembangunan manusia kategori tinggi dan rendah) Berdasarkan Uji Wilks lambda dapat diketahui p-value 1,347 e -06 <0,05, maka tolak Ho. Dapat disimpulkan bahwa terdapat perbedaan rata-rata indeks pembangunan manusia kategori tinggi dan rendah.

5.6 Pengujian Kontribusi Variabel Prediktor Terhadap Respon

> cc

Canonical Discriminant Analysis for dataakhir$IPM:

  CanRsq Eigenvalue Difference Percent Cumulative
1 0.6654     1.9887                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.3346   17.898     3    27 1.347e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil dari pengujian yang didapat menunjukkan bahwa nilai Canonical Correlation sebesar 0.6654, artinya variabel motivasi angka harapan hidup, pengeluaran per kapita riil disesuaikan, dan harapan alam sekolah dapat indeks pembangunan manusia (Kategori IPM tinggi atau rendah) sebesar 66.54%, sedangkan 33,46% lainnya dipengaruhi oleh variabel lain di luar penelitian.

5.7 Fungsi Diskriminan

> modellda<-lda(IPM~., data = dataakhir)
> modellda
Call:
lda(IPM ~ ., data = dataakhir)

Prior probabilities of groups:
       0        1 
0.483871 0.516129 

Group means:
       AHH    PPKRD      HLS
0 70.29133 10361.80 12.86533
1 73.13875 13808.56 14.20813

Coefficients of linear discriminants:
               LD1
AHH   0.3383448710
PPKRD 0.0002704442
HLS   0.6209241436

Dalam menentukan fungsi diskriminan, dilakukan dengan bantuan function lda dari output Coefficients of linear discriminants tersebut didapatkan semua variabel membentuk fungsi diskriminan yaitu X1, X2, dan X3 . Sehingga, fungsi diskriminan baku yang terbentuk. \[ \hat D = 0,338 𝑋_1+0,0002 𝑋_2 +0,62𝑋_3\] Berdasarkan model yang dihasilkan dapat diketahui bahwa semua variabel prediktor bertanda positif semua. Dapat disimpulkan bahwa angka harapan hidup, pengeluaran perkapita riil disesuaikan dan harapan lama sekolah dapat berpengaruh secara positif terhadap indeks pembangunan manusia.

5.8 Membuat Tabel Klasifikasi Dan Menguji Ketepatan Model

> table(actual=dataakhir$IPM, predicted=pred_LDA1$class)
      predicted
actual  0  1
     0 15  0
     1  2 14

Dapat diketahui bahwa indeks pembangunan manusia yang rendah tetap berada pada kategori rendah sebanyak 15 Kabupaten/Kota sedangkan pada indeks pembangunan manusia kategori tinggi dari data awal 16, berada tetap di kategori tinggi sebanyak 14 dan 2 yang lain berada pada kategori rendah. \[𝐻𝑖𝑡 𝑅𝑎𝑡𝑖𝑜=(15+14)/(15+2+0+14)=0,9354\] Dapat disimpulkan tingkat akurasi yang diklasifikasikan oleh model sebesar 93,54%