Klasifikasi Ganas dan Jinak Kanker Payudara dengan Pendekatan Analisis Diskriminan

Almas Izdihar Al Ghifari

2024-11-30


1 PENDAHULUAN

1.1 Latar Belakang

Kanker payudara merupakan salah satu jenis kanker yang paling umum terjadi pada wanita di seluruh dunia. Menurut data dari World Health Organization (WHO), kanker payudara menyumbang sekitar 25% dari semua kasus kanker pada wanita. Diagnosis dini memiliki peran yang sangat penting dalam menentukan tingkat kelangsungan hidup pasien. Oleh karena itu, diperlukan pendekatan yang efektif dan akurat untuk membedakan tumor jinak dan ganas sebagai bagian dari langkah awal diagnosis.

Analisis diskriminan merupakan salah satu metode statistik yang sering digunakan dalam klasifikasi data, terutama dalam membedakan kelompok berdasarkan variabel independen. Dalam konteks ini, analisis diskriminan dapat membantu menentukan fungsi diskriminan yang optimal untuk mengklasifikasikan tumor berdasarkan karakteristik sel, seperti ukuran, bentuk, dan tekstur. Dataset Breast Cancer Wisconsin menyediakan data karakteristik seluler yang telah digunakan secara luas dalam berbagai penelitian untuk mengevaluasi metode prediksi.

Penelitian ini bertujuan untuk mengembangkan fungsi diskriminan yang mampu mengklasifikasikan tumor jinak dan ganas dengan akurasi tinggi. Selain itu, penelitian ini juga akan mengevaluasi signifikansi variabel independen dalam model serta mengukur kinerja model berdasarkan data yang tersedia. Hasil penelitian ini diharapkan dapat memberikan kontribusi pada pengembangan metode diagnosis berbasis data yang lebih efektif dan efisien.

1.2 Rumusan Masalah

Penelitian ini bertujuan untuk menjawab rumusan masalah berikut:

  1. Bagaimana bentuk fungsi diskriminan yang terbentuk dalam memisahkan kelompok tumor jinak dan ganas berdasarkan fitur karakteristik sel pada dataset Breast Cancer Wisconsin?
  2. Bagaimana hasil uji pembeda yang menunjukkan signifikansi variabel independen dalam membedakan antara tumor jinak dan ganas?
  3. Seberapa akurat model analisis diskriminan dalam menentukan kelompok hasil diagnosis kanker payudara (jinak atau ganas)?

1.3 Tujuan

Penelitian ini bertujuan untuk:

  1. Menyusun fungsi diskriminan yang dapat memisahkan secara optimal antara kelompok tumor jinak dan ganas berdasarkan variabel independen pada dataset Breast Cancer Wisconsin.
  2. Mengidentifikasi variabel independen yang memiliki kemampuan pembeda signifikan antara kelompok tumor jinak dan ganas melalui pengujian statistik.
  3. Mengevaluasi tingkat akurasi model analisis diskriminan dalam mengklasifikasikan hasil diagnosis kanker payudara dengan membandingkan prediksi model terhadap data aktual.`

2 Tinjauan Pustaka

2.1 Analisis Diskriminan

Analisis diskriminan adalah teknik multivariat untuk memisahkan objek-objek dalam kelompok yang berbeda dan mengelompokkan objek baru ke dalam kelompok-kelompok tersebut. Dalam analisis diskriminan, terdapat satu variabel dependen yang berupa kategorik dan beberapa variabel independen yang berupa metrik. Teknik ini bertujuan untuk menemukan kombinasi linear dari variabel independen yang mampu memaksimalkan perbedaan antar kelompok, sehingga memungkinkan prediksi yang akurat terhadap kategori suatu objek berdasarkan karakteristik yang dimilikinya.

Analisis diskriminan banyak digunakan dalam berbagai bidang, termasuk penelitian medis, pemasaran, dan ilmu sosial, untuk mengklasifikasikan objek atau individu ke dalam kategori yang telah ditentukan sebelumnya. Dalam konteks medis, misalnya, analisis ini dapat digunakan untuk mengidentifikasi apakah tumor bersifat ganas atau jinak, naik atau turunnya penjualann saham harian, dan sebagainya.

2.2 Asumsi Analisis Diskriminan

Asumsi pada analisis diskriminan adalah variabel independen berdistribusi normal (multivariate normality), matriks ragam peragam antar kelompok adalah sama, dan tidak adanya multikolinieritas antar variabel independen. Untuk menguji normalitas multivariat variabel independen dapat menggunakan uji mardia, hz, royston, dh, dan energy. Untuk menguji kesamaan matriks ragam peragam dapat menggunakan uji BoxM. Sedangkan untuk menguji perbedaan rata-rata

2.3 Data

Data yang digunakan berasal dari dataset website kaggle tentang Breast Cancer Wisconsin (Diagnostic) Data Set. Variabel dependen (Y) merupakan kolom ‘diagnosis’ dengan M (malignant) merupakan ganas dan B (benign) merupakan jinak. Variabel prediktor (x) yang digunakan yaitu radius_mean, texture_mean, perimeter_mean, dan area_mean. Berikut merupakan cuplikan data yang digunakan.

> include_graphics("cuplikan data.png")

3 SOURCE CODE

3.1 Library

> library(MVN)
> library(biotools) 
> library(candisc)
> library(MASS) 
> library(caret)
> library(biotools)
> library(readxl)
> library(DFA.CANCOR)

3.2 Impor Data

> #INPUT DATA
> datadiskriminan <-read_excel("Dataset.xlsx")
> datadiskriminan <- data.frame(datadiskriminan)
> head(datadiskriminan)
  diagnosis radius_mean texture_mean perimeter_mean area_mean
1         1       14.58        21.53          97.41     644.8
2         1       11.84        18.70          77.93     440.6
3         1       14.25        21.72          93.63     633.0
4         0       13.03        18.42          82.61     523.8
5         1       10.95        21.35          71.90     371.1
6         1       13.28        20.28          87.32     545.2

3.3 Cek Outlier dan Uji Normalitas Multivariat

> #Cek outlier
> datacek<- datadiskriminan
> hasildata<-mvn(datacek[,2:5], multivariateOutlierMethod = "adj", showNewData = TRUE, 
+                showOutliers = TRUE,multivariatePlot = 'qq')

> #Uji normalitas dataset tanpa outlier
> databaru <- hasildata$newData
> hasil<- mvn(databaru, mvnTest = 'royston',  alpha = 0.05)
> hasil
$multivariateNormality
     Test        H   p value MVN
1 Royston 2.195064 0.2664741 YES

$univariateNormality
              Test       Variable Statistic   p value Normality
1 Anderson-Darling  radius_mean      0.3298    0.5073    YES   
2 Anderson-Darling  texture_mean     0.4224    0.3096    YES   
3 Anderson-Darling perimeter_mean    0.4058    0.3393    YES   
4 Anderson-Darling   area_mean       0.4037    0.3433    YES   

$Descriptives
                n     Mean   Std.Dev  Median    Min    Max     25th     75th
radius_mean    50  12.7416  1.203261  12.820  10.17  14.78  11.8625  13.5900
texture_mean   50  18.7350  3.477945  18.725  10.82  24.98  16.4150  21.4325
perimeter_mean 50  82.2856  8.223520  82.610  64.55  97.40  75.9150  87.6500
area_mean      50 503.9780 94.395949 504.400 311.90 668.30 437.8500 569.1000
                       Skew   Kurtosis
radius_mean    -0.104164333 -0.8760738
texture_mean   -0.412355110 -0.3080847
perimeter_mean -0.008710878 -0.9010832
area_mean       0.013621388 -0.9412421
> hasildata$multivariateOutliers
   Observation Mahalanobis Distance Outlier
19          19               36.331    TRUE
14          14               33.974    TRUE
37          37               25.224    TRUE
34          34               21.692    TRUE
51          51               14.293    TRUE
1            1               12.067    TRUE
> dataakhir<-datadiskriminan[c(2:13,15:18,20:33,35:36,38:50,52:56),1:5]

Berdasarkan uji normalitas multivariat, diperoleh p-value

3.4 Uji Asumsi Homogenitas Ragam Peragam

> 
> #Uji Asumsi Homogenitas Ragam Peragam
> data <- as.data.frame(dataakhir[,2:5])
> boxM_data <- boxM(data, dataakhir$diagnosis)
> boxM_data

    Box's M-test for Homogeneity of Covariance Matrices

data:  data
Chi-Sq (approx.) = 8.1984, df = 10, p-value = 0.6095

3.5 Uji Perbedaan Rata-Rata Variabel Dependen

> #Pengujian perbedaan Rata-rata variabel dependen
> X<-as.matrix(dataakhir[2:5])
> X.manova<-manova(X~dataakhir$diagnosis, data=dataakhir)
> X.wilks<-summary(X.manova, test="Wilks")
> X.wilks
                    Df   Wilks approx F num Df den Df    Pr(>F)    
dataakhir$diagnosis  1 0.35175   20.733      4     45 9.618e-10 ***
Residuals           48                                             
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.6 Korelasi Kanonik

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

Canonical Discriminant Analysis for dataakhir$diagnosis:

   CanRsq Eigenvalue Difference Percent Cumulative
1 0.64825     1.8429                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.35175   20.733     4    45 9.618e-10 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3.7 Analisis Diskriminan

> #Membuat fungsi diskriminan
> modellda<-lda(diagnosis~., data = dataakhir)
> modellda
Call:
lda(diagnosis ~ ., data = dataakhir)

Prior probabilities of groups:
  0   1 
0.7 0.3 

Group means:
  radius_mean texture_mean perimeter_mean area_mean
0    12.43486     17.78886       79.83657  478.8114
1    13.45733     20.94267       88.00000  562.7000

Coefficients of linear discriminants:
                        LD1
radius_mean    -11.76913342
texture_mean     0.17978828
perimeter_mean   1.24040873
area_mean        0.05058114
> 
> # Variabel pembeda terkuat
> pembedaterkuat <- DFA(dataakhir, 'diagnosis', c('radius_mean','texture_mean','perimeter_mean','area_mean'))

    Function    eigenvalue    proportion of variance    canonical r
           1         1.843                         1          0.805
               Wilk's Lambda    F-approx.    df1    df2    p
1 through 1            0.352       20.733      4     45    0
               Pillai-Bartlett Trace    F-approx.    df1    df2    p
1 through 1                    0.648       20.733      4     45    0
               Hotelling-Lawley Trace    F-approx.    df1    df2    p
1 through 1                     1.843       20.733      4     45    0
               Roy's Largest Root    lambda     F-approx.     df1    df2    p
1 through 1                 1.843      0.648        88.459      1     48    0
                  Function 1
radius_mean           11.769
texture_mean          -0.180
perimeter_mean        -1.240
area_mean             -0.051
                  Function 1
radius_mean           -0.315
texture_mean          -0.341
perimeter_mean        -0.381
area_mean             -0.332
                  Function 1
radius_mean           13.020
texture_mean          -0.568
perimeter_mean        -9.060
area_mean             -4.352
                  Function 1
radius_mean           13.155
texture_mean          -0.573
perimeter_mean        -9.154
area_mean             -4.397
     Function 1
0         0.871
1        -2.032
     Function 1
0         1.048
1         0.872
     Function 1
0         0.522
1        -1.218
     Function 1
0         0.628
1         0.522
              Eta-squared    Wilks_Lambda         F    df    df_res    p
Function 1          0.648           0.352    88.459     1        48    0
              Bayes_Factor_alt_vs_null    Bayes_Factor_null_vs_alt
Function 1                  2684930713                           0
                  Eta-squared    Wilks_Lambda         F    df    df_res
radius_mean             0.155           0.845     8.787     1        48
texture_mean            0.176           0.824    10.267     1        48
perimeter_mean          0.211           0.789    12.849     1        48
area_mean               0.169           0.831     9.778     1        48
                        p    Bayes_Factor_alt_vs_null
radius_mean       0.00471                       8.773
texture_mean      0.00241                      14.990
perimeter_mean    0.00079                      37.339
area_mean         0.00300                      12.572
                  Bayes_Factor_null_vs_alt
radius_mean                          0.114
texture_mean                         0.067
perimeter_mean                       0.027
area_mean                            0.080
    Group1   N1   Mean1    SD1   Group2   N2   Mean2    SD2       t      df   p
1        1   15   -2.03   0.87        0   35    0.87   1.05   10.13   31.71   0
    p adj.
1        0
    Group1   Group2      d      g      r   BESD   Bayes_Factor_alt_vs_null
1        1        0   3.93   3.86   0.87   93.7                35214516447
    Bayes_Factor_null_vs_alt
1                          0
    Group1   N1   Mean1    SD1   Group2   N2   Mean2    SD2       t      df
1        1   15   13.46   1.07        0   35   12.43   1.14   -3.04   28.25
        p   p adj.
1   0.005    0.005
    Group1   Group2      d      g     r    BESD   Bayes_Factor_alt_vs_null
1        1        0   1.25   1.23   0.5   74.85                      10.22
    Bayes_Factor_null_vs_alt
1                        0.1
    Group1   N1   Mean1   SD1   Group2   N2   Mean2   SD2       t      df
1        1   15   20.94   2.9        0   35   17.79   3.3   -3.38   30.09
          p    p adj.
1   0.00203   0.00203
    Group1   Group2      d      g      r    BESD   Bayes_Factor_alt_vs_null
1        1        0   1.34   1.32   0.52   76.22                       22.9
    Bayes_Factor_null_vs_alt
1                       0.04
    Group1   N1   Mean1    SD1   Group2   N2   Mean2    SD2       t      df
1        1   15      88   6.89        0   35   79.84   7.57   -3.72   29.04
          p    p adj.
1   0.00084   0.00084
    Group1   Group2      d      g      r    BESD   Bayes_Factor_alt_vs_null
1        1        0   1.51   1.48   0.57   78.43                       55.9
    Bayes_Factor_null_vs_alt
1                       0.02
    Group1   N1   Mean1     SD1   Group2   N2    Mean2     SD2       t      df
1        1   15   562.7   83.84        0   35   478.81   88.17   -3.19   27.84
          p    p adj.
1   0.00349   0.00349
    Group1   Group2      d     g      r    BESD   Bayes_Factor_alt_vs_null
1        1        0   1.32   1.3   0.52   75.88                      14.48
    Bayes_Factor_null_vs_alt
1                       0.07
    Group1    Group2         t    t1-critical    t1 decision
         1         0    -3.045          2.588    significant
    Confidence Level
               0.987
    Group1    Group2         t    t1-critical    t1 decision
         1         0    -3.379          2.588    significant
    Confidence Level
               0.987
    Group1    Group2         t    t1-critical    t1 decision
         1         0    -3.725          2.588    significant
    Confidence Level
               0.987
    Group1    Group2         t    t1-critical    t1 decision
         1         0    -3.192          2.588    significant
    Confidence Level
               0.987
    Group1    Group2         t    t2-critical    t2 decision
         1         0    -3.045          2.474    significant
    Group1    Group2         t    t2-critical    t2 decision
         1         0    -3.379          2.474    significant
    Group1    Group2         t    t2-critical    t2 decision
         1         0    -3.725          2.474    significant
    Group1    Group2         t    t2-critical    t2 decision
         1         0    -3.192          2.474    significant
      0      1
    0.7    0.3
                         0           1
radius_mean       1375.226    1341.066
texture_mean         4.521       5.043
perimeter_mean      -3.300       0.300
area_mean          -17.299     -17.153
        0            1    
-4318.286    -4264.737    
        Predicted
Original     0     1
       0    32     3
       1     1    14
Number of cases in table: 50 
Number of factors: 2 
Test for independence of all factors:
    Chisq = 33.62, df = 1, p-value = 6.708e-09
                      kappa            z             p
Cohen's kappa         0.817         5.08             0
Fleiss's kappa        0.816         5.77             0
       0       1
    0.91    0.87
    Classif. prob.     0     1
              0.00    35    15
              0.10    34    15
              0.20    34    15
              0.30    33    15
              0.40    33    15
              0.50    32    14
              0.60    32    14
              0.70    32    12
              0.75    32    11
              0.80    31    11
              0.85    30    11
              0.90    30    10
              0.95    28    10
              1.00     0     0
    Classif. prob.       0       1
              0.00    1.00    1.00
              0.10    0.97    1.00
              0.20    0.97    1.00
              0.30    0.94    1.00
              0.40    0.94    1.00
              0.50    0.91    0.93
              0.60    0.91    0.93
              0.70    0.91    0.80
              0.75    0.91    0.73
              0.80    0.89    0.73
              0.85    0.86    0.73
              0.90    0.86    0.67
              0.95    0.80    0.67
              1.00    0.00    0.00
        Cross-Validated
Original     0     1
       0    32     3
       1     1    14
Number of cases in table: 50 
Number of factors: 2 
Test for independence of all factors:
    Chisq = 33.62, df = 1, p-value = 6.708e-09
                      kappa            z             p
Cohen's kappa         0.817        5.076             0
Fleiss's kappa        0.816        5.771             0
> pembedaterkuat
$evals
 Function eigenvalue proportion of variance canonical r
        1   1.842895                      1   0.8051372

$mv_Wilks
            Wilk's Lambda F-approx. df1 df2            p
1 through 1     0.3517541  20.73257   4  45 9.618427e-10

$mv_Pillai
            Pillai-Bartlett Trace F-approx. df1 df2            p
1 through 1             0.6482459  20.73257   4  45 9.618427e-10

$mv_Hotelling
            Hotelling-Lawley Trace F-approx. df1 df2            p
1 through 1               1.842895  20.73257   4  45 9.618427e-10

$mv_Roy
            Roy's Largest Root   lambda  F-approx.  df1 df2            p
1 through 1           1.842895 0.6482459   88.45895   1  48 1.812726e-12

$coefs_raw
                Function 1
radius_mean    11.76913342
texture_mean   -0.17978828
perimeter_mean -1.24040873
area_mean      -0.05058114

$coefs_structure
               Function 1
radius_mean    -0.3151681
texture_mean   -0.3406823
perimeter_mean -0.3811257
area_mean      -0.3324734

$coefs_standardized
               Function 1
radius_mean    13.0197236
texture_mean   -0.5675363
perimeter_mean -9.0597353
area_mean      -4.3519196

$coefs_standardizedSPSS
               Function 1
radius_mean    13.1546467
texture_mean   -0.5734177
perimeter_mean -9.1536211
area_mean      -4.3970184

$centroids
  Function 1
0   0.870758
1  -2.031769

$centroidsSDs
  Function 1
0  1.0482390
1  0.8718056

$centroidsZ
  Function 1
0  0.5217885
1 -1.2175065

$centroidsSDsZ
  Function 1
0  0.6281413
1  0.5224162

$dfa_scores
   group  Function.1
2      1 -1.99630245
3      1 -3.38187959
4      0  2.04584346
5      1 -1.95221637
6      1 -2.27104085
7      1 -0.79098341
8      1 -1.07608075
9      0  0.63045300
10     0 -0.45330956
11     0  1.16487335
12     0  1.46519967
13     0  2.16876429
15     0  1.52042548
16     1 -1.53517971
17     0  1.94923869
18     0  2.14249727
20     1 -1.89262616
21     1 -4.00522395
22     0  1.66065727
23     0  2.06603656
24     1 -1.16911953
25     0  0.83160521
26     0  0.91048794
27     0  0.28633473
28     0  0.09382260
29     0  1.51414463
30     1 -2.16612067
31     0 -0.01827191
32     0 -1.23734771
33     0 -2.10905729
35     0  1.47517623
36     0  0.47803364
38     0  1.80237610
39     0  2.10200406
40     1 -2.56540800
41     1 -2.03452280
42     0  1.64315984
43     0  0.34412115
44     1 -2.52803081
45     0  0.56125061
46     0  1.49260391
47     0  0.64972863
48     0 -0.31670504
49     0 -1.01190421
50     0  0.39185323
52     0  1.93985434
53     0  0.31177038
54     0  0.58103276
55     0  1.39977791
56     1 -1.11179617

$anovaDFoutput
           Eta-squared Wilks_Lambda        F df df_res            p
Function 1   0.6482459    0.3517541 88.45895  1     48 1.812726e-12
           Bayes_Factor_alt_vs_null Bayes_Factor_null_vs_alt
Function 1               2684930713             3.724491e-10

$anovaDVoutput
               Eta-squared Wilks_Lambda         F df df_res            p
radius_mean      0.1547318    0.8452682  8.786710  1     48 0.0047129222
texture_mean     0.1762052    0.8237948 10.266936  1     48 0.0024080468
perimeter_mean   0.2111655    0.7888345 12.849264  1     48 0.0007877376
area_mean        0.1692357    0.8307643  9.778124  1     48 0.0029977180
               Bayes_Factor_alt_vs_null Bayes_Factor_null_vs_alt
radius_mean                     8.77251               0.11399246
texture_mean                   14.98958               0.06671302
perimeter_mean                 37.33855               0.02678197
area_mean                      12.57182               0.07954299

$radius_mean
$radius_mean$MFWER1.sigtest
  Group1 Group2         t t1-critical t1 decision Confidence Level
1      1      0 -3.044722    2.587796 significant        0.9872585

$radius_mean$MFWER2.sigtest
  Group1 Group2         t t2-critical t2 decision
1      1      0 -3.044722     2.47392 significant


$texture_mean
$texture_mean$MFWER1.sigtest
  Group1 Group2         t t1-critical t1 decision Confidence Level
1      1      0 -3.379053    2.587796 significant        0.9872585

$texture_mean$MFWER2.sigtest
  Group1 Group2         t t2-critical t2 decision
1      1      0 -3.379053     2.47392 significant


$perimeter_mean
$perimeter_mean$MFWER1.sigtest
  Group1 Group2         t t1-critical t1 decision Confidence Level
1      1      0 -3.724794    2.587796 significant        0.9872585

$perimeter_mean$MFWER2.sigtest
  Group1 Group2         t t2-critical t2 decision
1      1      0 -3.724794     2.47392 significant


$area_mean
$area_mean$MFWER1.sigtest
  Group1 Group2         t t1-critical t1 decision Confidence Level
1      1      0 -3.191943    2.587796 significant        0.9872585

$area_mean$MFWER2.sigtest
  Group1 Group2         t t2-critical t2 decision
1      1      0 -3.191943     2.47392 significant


$classes_PRED
 [1] 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0
[39] 1 0 0 0 0 1 0 0 0 0 0 1
Levels: 0 1

$classes_CV
 [1] 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0
[39] 1 0 0 0 0 1 0 0 0 0 0 1
Levels: 0 1

$posteriors
    posterior_0  posterior_1 Group
1  0.0368948326 0.9631051674     1
2  0.0006861240 0.9993138760     1
3  0.9997904515 0.0002095485     0
4  0.0417211710 0.9582788290     1
5  0.0169644271 0.9830355729     1
6  0.5588212849 0.4411787151     1
7  0.3563772297 0.6436227703     1
8  0.9874094333 0.0125905667     0
9  0.7714447450 0.2285552550     0
10 0.9973040534 0.0026959466     0
11 0.9988706821 0.0011293179     0
12 0.9998533224 0.0001466776     0
13 0.9990377811 0.0009622189     0
14 0.1274528701 0.8725471299     1
15 0.9997226486 0.0002773514     0
16 0.9998417041 0.0001582959     0
17 0.0492113311 0.9507886689     1
18 0.0001124331 0.9998875669     1
19 0.9993593154 0.0006406846     0
20 0.9998023780 0.0001976220     0
21 0.2970948420 0.7029051580     1
22 0.9929383273 0.0070616727     0
23 0.9943752930 0.0056247070     0
24 0.9665384614 0.0334615386     0
25 0.9429213549 0.0570786451     0
26 0.9990200960 0.0009799040     0
27 0.0228655454 0.9771344546     1
28 0.9226704162 0.0773295838     0
29 0.2574614750 0.7425385250     0
30 0.0268737186 0.9731262814     0
31 0.9989028797 0.0010971203     0
32 0.9805398716 0.0194601284     0
33 0.9995752883 0.0004247117     0
34 0.9998219652 0.0001780348     0
35 0.0072899986 0.9927100014     1
36 0.0331491649 0.9668508351     1
37 0.9993259592 0.0006740408     0
38 0.9715584699 0.0284415301     0
39 0.0081185910 0.9918814090     1
40 0.9846515774 0.0153484226     0
41 0.9989569401 0.0010430599     0
42 0.9880863459 0.0119136541     0
43 0.8338254488 0.1661745512     0
44 0.4001479104 0.5998520896     0
45 0.9751466349 0.0248533651     0
46 0.9997149923 0.0002850077     0
47 0.9688456697 0.0311543303     0
48 0.9854956105 0.0145043895     0
49 0.9986348475 0.0013651525     0
50 0.3329688192 0.6670311808     1

$grp_post_stats
$grp_post_stats$groupNs

 0  1 
35 15 

$grp_post_stats$grpMNprobs
         0         1
 0.9125276 0.8740181

$grp_post_stats$grp_prob_Ns
 Classif. prob.  0  1
           0.00 35 15
           0.10 34 15
           0.20 34 15
           0.30 33 15
           0.40 33 15
           0.50 32 14
           0.60 32 14
           0.70 32 12
           0.75 32 11
           0.80 31 11
           0.85 30 11
           0.90 30 10
           0.95 28 10
           1.00  0  0

$grp_post_stats$grp_prob_proports
 Classif. prob.         0         1
           0.00 1.0000000 1.0000000
           0.10 0.9714286 1.0000000
           0.20 0.9714286 1.0000000
           0.30 0.9428571 1.0000000
           0.40 0.9428571 1.0000000
           0.50 0.9142857 0.9333333
           0.60 0.9142857 0.9333333
           0.70 0.9142857 0.8000000
           0.75 0.9142857 0.7333333
           0.80 0.8857143 0.7333333
           0.85 0.8571429 0.7333333
           0.90 0.8571429 0.6666667
           0.95 0.8000000 0.6666667
           1.00 0.0000000 0.0000000


$freqs_ORIG_PRED
        Predicted
Original  0  1
       0 32  3
       1  1 14

$chi_square_ORIG_PRED
Number of cases in table: 50 
Number of factors: 2 
Test for independence of all factors:
    Chisq = 33.62, df = 1, p-value = 6.708e-09

$PressQ_ORIG_PRED
[1] 35.28

$kappas_ORIG_PRED
                   kappa         z          p
Cohen's kappa      0.817     5.076          0
Fleiss's kappa     0.816     5.771          0

$PropOrigCorrect
[1] 0.92

$freqs_ORIG_CV
        Cross-Validated
Original  0  1
       0 32  3
       1  1 14

$chi_square_ORIG_CV
Number of cases in table: 50 
Number of factors: 2 
Test for independence of all factors:
    Chisq = 33.62, df = 1, p-value = 6.708e-09

$PressQ_ORIG_CV
[1] 35.28

$kappas_ORIG_CV
                   kappa         z          p
Cohen's kappa      0.817     5.076          0
Fleiss's kappa     0.816     5.771          0

$PropCrossValCorrect
[1] 0.92
> 
> # Membuat tabel klasifikasi dan menguji ketepatan model
> pred_LDA1<- predict(modellda, dataakhir)
> conf <- table(actual=dataakhir$diagnosis, predicted=pred_LDA1$class)
> hitrasio <- sum(diag(prop.table(conf)))
> hitrasio
[1] 0.92

4 HASIL DAN PEMBAHASAN

4.1 Uji Normalitas Multivariat Variabel Independen

\[ \begin{array}{} \\ H_0 : \text{Data memenuhi asumsi normalitas multivariat} \\ H_1 : \text{Data tidak memenuhi asumsi normalitas multivariat} \end{array} \]

> hasil$multivariateNormality
     Test        H   p value MVN
1 Royston 2.195064 0.2664741 YES

Berdasarkan uji normalitas multivariat, diperoleh p-value 0.2664 yang lebih dari alpha (0.05), maka diambil keputusan terima H0. Dengan taraf nyata 5%, dapat disimpulkan bahwa variabel independen memenuhi asumsi normalitas multivariat.

4.2 Uji Homogenitas Ragam Peragam

\[ \begin{array}{} \\ H_0 : \text{Kelompok hasil diagnosis memiliki matriks ragam peragam yang sama} \\ H_1 : \text{Kelompok hasil diagnosis tidak memiliki matriks ragam peragam yang sama} \end{array} \]

> boxM_data

    Box's M-test for Homogeneity of Covariance Matrices

data:  data
Chi-Sq (approx.) = 8.1984, df = 10, p-value = 0.6095

Berdasarkan output tersebut, dapat diketahui p-value sebesar 0.6095, yang lebih besar daripada alpha (0.05) maka diambil keputusan terima H0. Maka dengan taraf nyata 5%, dapat disimpulkan bahwa kelompok hasil diagnosis kanker payudara kategori M (malignant) dan B (benign) memiliki matriks ragam peragam yang sama.

4.3 Uji Perbedaan Rata-Rata Variabel Dependen

\[ \begin{array}{} \\ H_0 : \text{Tidak terdapat perbedaan rata-rata antar kategori pada variabel dependen} \\ H_1 : \text{Terdapat perbedaan rata-rata antar kategori pada variabel dependen} \end{array} \]

> X.wilks
                    Df   Wilks approx F num Df den Df    Pr(>F)    
dataakhir$diagnosis  1 0.35175   20.733      4     45 9.618e-10 ***
Residuals           48                                             
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan output tersebut, dapat diketahui p-value sebesar 9.618e-10, yang lebih kecil daripada alpha (0.05) maka diambil keputusan tolak H0. Maka dengan taraf nyata 5%, dapat disimpulkan bahwa terdapat perbedaan rata-rata antara kategori M (malignant) dan B (benign) pada diagnosis kanker payudara.

4.4 Korelasi Kanonik

> cc$canrsq
[1] 0.6482459

Berdasarkan output tersebut, dapat diketahui nilai koefisien korelasi kanonik sebesar 0.64825 atau 64.825%. Nilai koefisien ini berarti bahwa variabel diskriminan (diagnosis) dapat dijelaskan oleh variabel independen sebesar 0.64825 atau 64.825%.

4.5 Fungsi Diskriminan

> modellda$scaling
                        LD1
radius_mean    -11.76913342
texture_mean     0.17978828
perimeter_mean   1.24040873
area_mean        0.05058114

Berdasarkan output tersebut, dapat dibentuk fungsi diskriminan sebagai berikut: \[ Y=-11.7691X_1+0.1798X_2+1,2404X_3+0,0506X_4 \] \[ \begin{array}{l} \text{Di mana:}\\ \text{Variabel } X_1 \text{ adalah variabel radius_mean} \\ \text{Variabel } X_2 \text{ adalah variabel texture_mean} \\ \text{Variabel } X_3 \text{ merupakan variabel perimeter_mean} \\ \text{Variabel } X_4 \text{ merupakan variabel area_mean} \end{array} \]

4.6 Uji Pembeda Terkuat

> pembedaterkuat$coefs_standardized
               Function 1
radius_mean    13.0197236
texture_mean   -0.5675363
perimeter_mean -9.0597353
area_mean      -4.3519196

Berdasarkan output tersebut, dapat diketahui hasil uji pembeda terkuat menunjukkan bahwa:

  • Variabel radius_mean memiliki nilai koefisien tertinggi, yang menunjukkan bahwa variabel radius_mean paling berpengaruh dalam mengelompokkan hasil diagnosis ganas atau jinaknya kanker payudara.
  • Varibel texture_mean memiliki nilai koefisien terkecil, yang menunjukkan bahwa variabel texture_mean memberikan pengaruh yang terkecil dibanding variabel lainnya dalam mengelompokkan hasil diagnosis ganas atau jinaknya kanker payudara.
  • Variabel perimeter_mean memiliki nilai koefisien besar, yang menunjukkan bawa variabel perimeter_mean memberikan pengaruh besar dalam mengelompokkan hasil diagnosis kanker payudara.
  • Variabel area_mean memiliki nilai koefisien cukup besar, yang menunjukkan bahwa variabel area_mean memberikan pengaruh yang cukup besar dalam mengelompokkan hasil diagnosis kanker payudara.

4.7 Uji Ketepatan Model

> conf
      predicted
actual  0  1
     0 32  3
     1  1 14
> hitrasio
[1] 0.92

Berdasaran outtput tersebut, dapat diketahui ketepatan model yang diperoleh adalah 0.92, yang artinya model dapat mengelompokkan data diagnosis ganas dan jinak kanker payudara dengan benar sebesar 92%.

5 KESIMPULAN

Berdasarkan hasil penelitian, analisis diskriminan mampu menghasilkan model yang efektif untuk memisahkan kelompok tumor jinak dan ganas pada dataset Breast Cancer Wisconsin. Variabel radius_mean menunjukkan kontribusi terbesar dalam klasifikasi, diikuti oleh perimeter_mean dan area_mean, sedangkan texture_mean memiliki pengaruh paling kecil. Fungsi diskriminan yang terbentuk menunjukkan bahwa karakteristik ukuran dan bentuk sel kanker, khususnya radius rata-rata, memiliki peran penting dalam membedakan jenis tumor. Hal ini menggarisbawahi pentingnya variabel tersebut dalam pengembangan metode diagnosis kanker payudara berbasis data.

Model yang dihasilkan memiliki akurasi sebesar 92%, yang menunjukkan tingkat keandalan yang sangat baik dalam mengelompokkan data diagnosis tumor jinak dan ganas. Akurasi ini membuktikan bahwa analisis diskriminan dapat digunakan sebagai pendekatan yang efektif untuk mendukung diagnosis dini kanker payudara. Meski demikian, validasi model pada dataset lain diperlukan untuk memastikan generalisasi hasil. Dengan akurasi yang tinggi, pendekatan ini diharapkan dapat memberikan kontribusi pada pengembangan teknologi diagnostik berbasis data yang lebih efisien dan akurat.

6 DAFTAR PUSTAKA

Johnson, R. A., dan D. W Winchern. 2002. Applied Multivariate Statistical Analysis. New Jersey: Prentice Hall.

Nur’eni, Surni’a, dan Handayani L. (2019). Analisis Diskriminan Linear Robust pada Berat Bayi Lahir di RSUD Luwuk. Statistika, 19(1), 19-24.

Ainurrochmah, A., Hayati, M. N., dan Satriya, A. M. A. (2019). Perbandingan Klasifikasi Analisis Diskriminan Fisher dan Metode Naive Bayes. Jurnal Aplikasi Statistika dan Komputasi Statistik, 11(2), 37-39.

UCI Machine Learning Repository. (n.d.). Breast Cancer Wisconsin (Diagnostic) Data Set. Retrieved November 30, 2024, from https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data