Load dan Eksplorasi Data

library(readxl)
library(knitr)
library(corrplot)
## corrplot 0.95 loaded
Concrete_Data <- read_excel("Concrete_Data.xls")

View(Concrete_Data)
str(Concrete_Data)
## tibble [1,030 Ă— 9] (S3: tbl_df/tbl/data.frame)
##  $ Cement (component 1)(kg in a m^3 mixture)            : num [1:1030] 540 540 332 332 199 ...
##  $ Blast Furnace Slag (component 2)(kg in a m^3 mixture): num [1:1030] 0 0 142 142 132 ...
##  $ Fly Ash (component 3)(kg in a m^3 mixture)           : num [1:1030] 0 0 0 0 0 0 0 0 0 0 ...
##  $ Water  (component 4)(kg in a m^3 mixture)            : num [1:1030] 162 162 228 228 192 228 228 228 228 228 ...
##  $ Superplasticizer (component 5)(kg in a m^3 mixture)  : num [1:1030] 2.5 2.5 0 0 0 0 0 0 0 0 ...
##  $ Coarse Aggregate  (component 6)(kg in a m^3 mixture) : num [1:1030] 1040 1055 932 932 978 ...
##  $ Fine Aggregate (component 7)(kg in a m^3 mixture)    : num [1:1030] 676 676 594 594 826 ...
##  $ Age (day)                                            : num [1:1030] 28 28 270 365 360 90 365 28 28 28 ...
##  $ Concrete compressive strength(MPa, megapascals)      : num [1:1030] 80 61.9 40.3 41.1 44.3 ...
summary(Concrete_Data)
##  Cement (component 1)(kg in a m^3 mixture)
##  Min.   :102.0                            
##  1st Qu.:192.4                            
##  Median :272.9                            
##  Mean   :281.2                            
##  3rd Qu.:350.0                            
##  Max.   :540.0                            
##  Blast Furnace Slag (component 2)(kg in a m^3 mixture)
##  Min.   :  0.0                                        
##  1st Qu.:  0.0                                        
##  Median : 22.0                                        
##  Mean   : 73.9                                        
##  3rd Qu.:142.9                                        
##  Max.   :359.4                                        
##  Fly Ash (component 3)(kg in a m^3 mixture)
##  Min.   :  0.00                            
##  1st Qu.:  0.00                            
##  Median :  0.00                            
##  Mean   : 54.19                            
##  3rd Qu.:118.27                            
##  Max.   :200.10                            
##  Water  (component 4)(kg in a m^3 mixture)
##  Min.   :121.8                            
##  1st Qu.:164.9                            
##  Median :185.0                            
##  Mean   :181.6                            
##  3rd Qu.:192.0                            
##  Max.   :247.0                            
##  Superplasticizer (component 5)(kg in a m^3 mixture)
##  Min.   : 0.000                                     
##  1st Qu.: 0.000                                     
##  Median : 6.350                                     
##  Mean   : 6.203                                     
##  3rd Qu.:10.160                                     
##  Max.   :32.200                                     
##  Coarse Aggregate  (component 6)(kg in a m^3 mixture)
##  Min.   : 801.0                                      
##  1st Qu.: 932.0                                      
##  Median : 968.0                                      
##  Mean   : 972.9                                      
##  3rd Qu.:1029.4                                      
##  Max.   :1145.0                                      
##  Fine Aggregate (component 7)(kg in a m^3 mixture)   Age (day)     
##  Min.   :594.0                                     Min.   :  1.00  
##  1st Qu.:731.0                                     1st Qu.:  7.00  
##  Median :779.5                                     Median : 28.00  
##  Mean   :773.6                                     Mean   : 45.66  
##  3rd Qu.:824.0                                     3rd Qu.: 56.00  
##  Max.   :992.6                                     Max.   :365.00  
##  Concrete compressive strength(MPa, megapascals)
##  Min.   : 2.332                                 
##  1st Qu.:23.707                                 
##  Median :34.443                                 
##  Mean   :35.818                                 
##  3rd Qu.:46.136                                 
##  Max.   :82.599

Pada tahap awal, data Concrete Compressive Strength diimpor ke dalam R menggunakan fungsi read_excel. Setelah data berhasil dimuat, dilakukan eksplorasi awal melalui fungsi str() dan summary() untuk mengetahui jumlah observasi, jumlah variabel, tipe data, serta gambaran umum nilai setiap variabel. Langkah ini penting untuk memastikan bahwa data telah terbaca dengan benar dan siap digunakan pada tahap analisis selanjutnya.

Pemisahan Variabel Respon

concrete_x <- Concrete_Data[, -ncol(Concrete_Data)]

str(concrete_x)
## tibble [1,030 Ă— 8] (S3: tbl_df/tbl/data.frame)
##  $ Cement (component 1)(kg in a m^3 mixture)            : num [1:1030] 540 540 332 332 199 ...
##  $ Blast Furnace Slag (component 2)(kg in a m^3 mixture): num [1:1030] 0 0 142 142 132 ...
##  $ Fly Ash (component 3)(kg in a m^3 mixture)           : num [1:1030] 0 0 0 0 0 0 0 0 0 0 ...
##  $ Water  (component 4)(kg in a m^3 mixture)            : num [1:1030] 162 162 228 228 192 228 228 228 228 228 ...
##  $ Superplasticizer (component 5)(kg in a m^3 mixture)  : num [1:1030] 2.5 2.5 0 0 0 0 0 0 0 0 ...
##  $ Coarse Aggregate  (component 6)(kg in a m^3 mixture) : num [1:1030] 1040 1055 932 932 978 ...
##  $ Fine Aggregate (component 7)(kg in a m^3 mixture)    : num [1:1030] 676 676 594 594 826 ...
##  $ Age (day)                                            : num [1:1030] 28 28 270 365 360 90 365 28 28 28 ...

Selanjutnya, data dipisahkan antara variabel fitur dan variabel target. Pada analisis ini, hanya variabel fitur yang digunakan, sehingga kolom terakhir yang merupakan nilai kuat tekan beton tidak disertakan. Pemisahan ini dilakukan agar analisis korelasi, kovarian, dan eigen hanya berfokus pada hubungan antar variabel input.

Correlation Matrix

cor_matrix <- cor(concrete_x)
cor_matrix
##                                                       Cement (component 1)(kg in a m^3 mixture)
## Cement (component 1)(kg in a m^3 mixture)                                            1.00000000
## Blast Furnace Slag (component 2)(kg in a m^3 mixture)                               -0.27519344
## Fly Ash (component 3)(kg in a m^3 mixture)                                          -0.39747544
## Water  (component 4)(kg in a m^3 mixture)                                           -0.08154361
## Superplasticizer (component 5)(kg in a m^3 mixture)                                  0.09277137
## Coarse Aggregate  (component 6)(kg in a m^3 mixture)                                -0.10935604
## Fine Aggregate (component 7)(kg in a m^3 mixture)                                   -0.22272017
## Age (day)                                                                            0.08194726
##                                                       Blast Furnace Slag (component 2)(kg in a m^3 mixture)
## Cement (component 1)(kg in a m^3 mixture)                                                       -0.27519344
## Blast Furnace Slag (component 2)(kg in a m^3 mixture)                                            1.00000000
## Fly Ash (component 3)(kg in a m^3 mixture)                                                      -0.32356947
## Water  (component 4)(kg in a m^3 mixture)                                                        0.10728594
## Superplasticizer (component 5)(kg in a m^3 mixture)                                              0.04337574
## Coarse Aggregate  (component 6)(kg in a m^3 mixture)                                            -0.28399823
## Fine Aggregate (component 7)(kg in a m^3 mixture)                                               -0.28159326
## Age (day)                                                                                       -0.04424580
##                                                       Fly Ash (component 3)(kg in a m^3 mixture)
## Cement (component 1)(kg in a m^3 mixture)                                           -0.397475440
## Blast Furnace Slag (component 2)(kg in a m^3 mixture)                               -0.323569468
## Fly Ash (component 3)(kg in a m^3 mixture)                                           1.000000000
## Water  (component 4)(kg in a m^3 mixture)                                           -0.257043997
## Superplasticizer (component 5)(kg in a m^3 mixture)                                  0.377339559
## Coarse Aggregate  (component 6)(kg in a m^3 mixture)                                -0.009976788
## Fine Aggregate (component 7)(kg in a m^3 mixture)                                    0.079076351
## Age (day)                                                                           -0.154370165
##                                                       Water  (component 4)(kg in a m^3 mixture)
## Cement (component 1)(kg in a m^3 mixture)                                           -0.08154361
## Blast Furnace Slag (component 2)(kg in a m^3 mixture)                                0.10728594
## Fly Ash (component 3)(kg in a m^3 mixture)                                          -0.25704400
## Water  (component 4)(kg in a m^3 mixture)                                            1.00000000
## Superplasticizer (component 5)(kg in a m^3 mixture)                                 -0.65746444
## Coarse Aggregate  (component 6)(kg in a m^3 mixture)                                -0.18231167
## Fine Aggregate (component 7)(kg in a m^3 mixture)                                   -0.45063498
## Age (day)                                                                            0.27760443
##                                                       Superplasticizer (component 5)(kg in a m^3 mixture)
## Cement (component 1)(kg in a m^3 mixture)                                                      0.09277137
## Blast Furnace Slag (component 2)(kg in a m^3 mixture)                                          0.04337574
## Fly Ash (component 3)(kg in a m^3 mixture)                                                     0.37733956
## Water  (component 4)(kg in a m^3 mixture)                                                     -0.65746444
## Superplasticizer (component 5)(kg in a m^3 mixture)                                            1.00000000
## Coarse Aggregate  (component 6)(kg in a m^3 mixture)                                          -0.26630276
## Fine Aggregate (component 7)(kg in a m^3 mixture)                                              0.22250149
## Age (day)                                                                                     -0.19271652
##                                                       Coarse Aggregate  (component 6)(kg in a m^3 mixture)
## Cement (component 1)(kg in a m^3 mixture)                                                     -0.109356039
## Blast Furnace Slag (component 2)(kg in a m^3 mixture)                                         -0.283998230
## Fly Ash (component 3)(kg in a m^3 mixture)                                                    -0.009976788
## Water  (component 4)(kg in a m^3 mixture)                                                     -0.182311668
## Superplasticizer (component 5)(kg in a m^3 mixture)                                           -0.266302755
## Coarse Aggregate  (component 6)(kg in a m^3 mixture)                                           1.000000000
## Fine Aggregate (component 7)(kg in a m^3 mixture)                                             -0.178505755
## Age (day)                                                                                     -0.003015507
##                                                       Fine Aggregate (component 7)(kg in a m^3 mixture)
## Cement (component 1)(kg in a m^3 mixture)                                                   -0.22272017
## Blast Furnace Slag (component 2)(kg in a m^3 mixture)                                       -0.28159326
## Fly Ash (component 3)(kg in a m^3 mixture)                                                   0.07907635
## Water  (component 4)(kg in a m^3 mixture)                                                   -0.45063498
## Superplasticizer (component 5)(kg in a m^3 mixture)                                          0.22250149
## Coarse Aggregate  (component 6)(kg in a m^3 mixture)                                        -0.17850575
## Fine Aggregate (component 7)(kg in a m^3 mixture)                                            1.00000000
## Age (day)                                                                                   -0.15609405
##                                                          Age (day)
## Cement (component 1)(kg in a m^3 mixture)              0.081947264
## Blast Furnace Slag (component 2)(kg in a m^3 mixture) -0.044245801
## Fly Ash (component 3)(kg in a m^3 mixture)            -0.154370165
## Water  (component 4)(kg in a m^3 mixture)              0.277604429
## Superplasticizer (component 5)(kg in a m^3 mixture)   -0.192716518
## Coarse Aggregate  (component 6)(kg in a m^3 mixture)  -0.003015507
## Fine Aggregate (component 7)(kg in a m^3 mixture)     -0.156094049
## Age (day)                                              1.000000000

Matriks korelasi digunakan untuk melihat hubungan linear antar variabel pada dataset. Nilai korelasi berkisar antara -1 hingga 1, di mana nilai mendekati 1 menunjukkan hubungan positif yang kuat, nilai mendekati -1 menunjukkan hubungan negatif yang kuat, dan nilai mendekati 0 menandakan hubungan yang lemah. Dari matriks ini dapat diketahui variabel mana yang memiliki keterkaitan lebih erat satu sama lain.

colnames(concrete_x) <- c(
  "Cement",
  "Slag",
  "FlyAsh",
  "Water",
  "Superplasticizer",
  "CoarseAgg",
  "FineAgg",
  "Age"
)

Kode tersebut digunakan untuk mengganti nama kolom pada data concrete_x agar lebih sederhana dan mudah dibaca. Penamaan variabel yang ringkas memudahkan proses analisis serta interpretasi hasil, terutama pada matriks korelasi, kovarian, dan visualisasi yang dihasilkan.

Visualisasi Correlation Matrix

cov_matrix <- cov(concrete_x)
cor_matrix <- cor(concrete_x)

corrplot(
  cor_matrix,
  method = "color",
  type = "upper",
  tl.col = "black",
  tl.srt = 45
)

Visualisasi matriks korelasi digunakan untuk memperjelas hubungan antar variabel dalam bentuk warna. Warna yang semakin pekat menunjukkan hubungan korelasi yang semakin kuat, baik positif maupun negatif, sedangkan warna yang lebih pucat menandakan hubungan yang lemah. Dengan visualisasi ini, keterkaitan antar komposisi bahan beton dapat diamati dengan lebih mudah dibandingkan hanya melihat nilai korelasi dalam bentuk angka.

Variance–Covariance Matrix

cov_matrix <- cov(concrete_x)
cov_matrix
##                       Cement        Slag     FlyAsh      Water Superplasticizer
## Cement           10921.74265 -2481.35943 -2658.3508 -181.98979         57.91462
## Slag             -2481.35943  7444.08373 -1786.6076  197.67855         22.35531
## FlyAsh           -2658.35075 -1786.60759  4095.5481 -351.29712        144.25026
## Water             -181.98979   197.67855  -351.2971  456.06024        -83.87096
## Superplasticizer    57.91462    22.35531   144.2503  -83.87096         35.68260
## CoarseAgg         -888.60851 -1905.21057   -49.6442 -302.72431       -123.68745
## FineAgg          -1866.15111 -1947.91126   405.7364 -771.57347        106.56203
## Age                540.99182  -241.15038  -624.0647  374.49650        -72.72060
##                    CoarseAgg    FineAgg        Age
## Cement            -888.60851 -1866.1511  540.99182
## Slag             -1905.21057 -1947.9113 -241.15038
## FlyAsh             -49.64420   405.7364 -624.06475
## Water             -302.72431  -771.5735  374.49650
## Superplasticizer  -123.68745   106.5620  -72.72060
## CoarseAgg         6045.65623 -1112.7952  -14.81127
## FineAgg          -1112.79516  6428.0992 -790.56558
## Age                -14.81127  -790.5656 3990.43773

Matriks kovarian menggambarkan bagaimana dua variabel berubah secara bersamaan. Nilai kovarian yang besar menunjukkan bahwa dua variabel memiliki variasi yang besar secara bersama-sama. Matriks ini menjadi dasar dalam perhitungan eigen value dan eigen vector yang digunakan untuk memahami struktur variansi data secara keseluruhan.

Eigen Value dan Eigen Vector

eigen_result <- eigen(cov_matrix)

# Eigen Value
eigen_result$values
## [1] 12840.97152  9809.73610  7284.34193  4243.67465  3979.16746  1176.42112
## [7]    71.66399    11.33366
# Eigen Vector
eigen_result$vectors
##              [,1]         [,2]        [,3]         [,4]        [,5]       [,6]
## [1,]  0.905642491 -0.032638607  0.15480715 -0.008242651  0.15137736 -0.3065154
## [2,] -0.262539831 -0.786053324  0.07291600 -0.199058277  0.10670802 -0.4534540
## [3,] -0.238615941  0.303014979 -0.05149092  0.687223886  0.17758357 -0.5123562
## [4,]  0.005566835 -0.076263559 -0.04145565  0.075552203 -0.09842420  0.4824817
## [5,] -0.001306160  0.005093971  0.02406543  0.020513644  0.02293166 -0.1044518
## [6,] -0.009104736  0.274574303 -0.76069849 -0.480046914  0.07636126 -0.2707187
## [7,] -0.210131322  0.450692923  0.61077597 -0.485145472 -0.13283562 -0.2571290
## [8,]  0.098367597 -0.069853972 -0.11857274  0.126850611 -0.94893247 -0.2341287
##               [,7]         [,8]
## [1,] -0.1943806101 -0.007910220
## [2,] -0.2261845864 -0.009246849
## [3,] -0.2867754410  0.005607725
## [4,] -0.8246302637 -0.253446680
## [5,]  0.2332324978 -0.965991173
## [6,] -0.1859495571 -0.041496031
## [7,] -0.2445950510 -0.026831816
## [8,]  0.0003334611  0.002108410

Eigen value menunjukkan besarnya variansi yang dijelaskan oleh masing-masing komponen utama, sedangkan eigen vector menunjukkan kontribusi setiap variabel terhadap komponen utama tersebut. Komponen dengan eigen value terbesar memiliki peran paling dominan dalam menjelaskan keragaman data.

Scree Plot Eigen Value

plot(eigen_result$values,
     type = "b",
     xlab = "Komponen Utama",
     ylab = "Eigen Value",
     main = "Scree Plot Eigen Value")

Scree plot digunakan untuk memvisualisasikan distribusi eigen value dari setiap komponen utama. Penurunan nilai eigen yang tajam pada komponen awal menunjukkan bahwa sebagian besar informasi data dapat dijelaskan oleh beberapa komponen pertama.

Proporsi Variansi

proporsi_var <- eigen_result$values / sum(eigen_result$values)

barplot(proporsi_var,
        main = "Proporsi Variansi Tiap Komponen Utama",
        xlab = "Komponen Utama",
        ylab = "Proporsi Variansi")

Proporsi variansi menunjukkan persentase kontribusi masing-masing komponen utama terhadap total variansi data. Komponen dengan proporsi terbesar menunjukkan peran yang paling signifikan dalam merepresentasikan informasi dari data awal.

Tabel Eigen Value dan Proporsi Variansi

eigen_table <- data.frame(
  Komponen = paste("PC", 1:length(eigen_result$values)),
  Eigen_Value = eigen_result$values,
  Proporsi_Variansi = proporsi_var
)

kable(eigen_table, caption = "Eigen Value dan Proporsi Variansi")
Eigen Value dan Proporsi Variansi
Komponen Eigen_Value Proporsi_Variansi
PC 1 12840.97152 0.3257699
PC 2 9809.73610 0.2488687
PC 3 7284.34193 0.1848006
PC 4 4243.67465 0.1076602
PC 5 3979.16746 0.1009497
PC 6 1176.42112 0.0298453
PC 7 71.66399 0.0018181
PC 8 11.33366 0.0002875

Grafik proporsi variansi dan tabel eigen digunakan untuk melihat kontribusi relatif masing-masing komponen utama terhadap total variansi data. Dari hasil ini dapat diketahui berapa banyak komponen yang sudah cukup untuk merepresentasikan data secara efektif.

KESIMPULAN

Berdasarkan hasil analisis multivariat yang telah dilakukan pada dataset Concrete Compressive Strength, dapat disimpulkan bahwa variabel-variabel penyusun beton memiliki karakteristik dan hubungan yang beragam satu sama lain. Tahap eksplorasi awal menunjukkan bahwa data terdiri dari beberapa variabel numerik yang merepresentasikan komposisi material beton serta umur beton, sehingga data layak untuk dianalisis menggunakan pendekatan korelasi, kovarian, dan analisis eigen.

Matriks korelasi menunjukkan adanya hubungan yang berbeda-beda antar variabel, baik hubungan yang cukup kuat maupun hubungan yang relatif lemah. Visualisasi korelasi dalam bentuk heatmap mempermudah dalam mengamati pola hubungan tersebut, sehingga keterkaitan antar komponen beton dapat dipahami secara lebih intuitif. Dari hasil ini terlihat bahwa tidak semua variabel saling berkorelasi kuat, yang menandakan bahwa masing-masing variabel memiliki kontribusi yang berbeda terhadap karakteristik beton.

Matriks varians–kovarians memberikan gambaran mengenai variasi dan perubahan bersama antar variabel. Variabel dengan nilai kovarian yang besar menunjukkan tingkat variasi yang lebih tinggi, sehingga memiliki pengaruh yang lebih besar dalam struktur data. Matriks ini menjadi dasar dalam perhitungan eigen value dan eigen vector untuk memahami distribusi variansi data secara lebih mendalam.

Hasil perhitungan eigen value menunjukkan bahwa sebagian besar variansi data dapat dijelaskan oleh beberapa komponen utama pertama. Hal ini diperkuat oleh scree plot dan grafik proporsi variansi, yang menunjukkan penurunan nilai eigen secara signifikan pada komponen awal. Temuan ini mengindikasikan bahwa dimensi data dapat direduksi tanpa kehilangan informasi yang terlalu besar, sehingga analisis lanjutan dapat dilakukan dengan lebih efisien.

Eigen vector menunjukkan kontribusi masing-masing variabel terhadap setiap komponen utama. Dari hasil tersebut dapat dipahami bahwa tidak semua variabel memiliki pengaruh yang sama dalam pembentukan komponen utama, melainkan terdapat variabel tertentu yang lebih dominan dalam menjelaskan keragaman data.

Secara keseluruhan, analisis multivariat pada dataset ini berhasil memberikan gambaran mengenai hubungan antar variabel, struktur variansi data, serta potensi reduksi dimensi melalui komponen utama. Hasil ini dapat menjadi dasar untuk analisis lanjutan, seperti pemodelan atau prediksi, dengan pemahaman yang lebih baik terhadap karakteristik data yang digunakan.