Bab 1. Pendahuluan

A.Latar Belakang

Emisi gas buang dari turbin gas merupakan salah satu sebuah sumber utama pada pencemaran udara, khususnya pada senyawa, seperti karbon manoksida (CO) dan nitrogen oksida (NOx). Gas-gas ini dapat menyebabkan dampak negatif pada lingkungan dan kesehatan manusia, seperti gangguan pernapasan dan peningkatan efek rumah kaca [1]. Oleh karena itu, diperlukan adanya suatu pendekatan secara analitis yang efektif untuk dapat memahami faktor-faktor yang dapat mempengaruhi emisi ini agar dapat dikendalikan secara lebih baik.

Salah satu kasus yang berhubungan dengan permasalahan ini adalah mengenai pembangkit listrik berbasis turbin gas di wilayah barat laut Turki, yang di mana sedang menghadapi tantangan dalam mengelola emisi gas buangnya seiring dengan meningkatnya sebuah permintaan energi. Studi menujukan bahwa emisi CO dan NOx yang dihasilkan sangat dipengaruhi oleh faktor lingkungan, seperti suhu sekitar, tekanan atmosfer, serta tingkat kelembapan, yang di mana hal ini berdampak pada efisiensi pembakaran dalam turbin [2]. Selain itu, parameter operasional seperti suhu masuk turbin dan tekanan pelepasan kompesor juga berperan dalam fluktuasi emisi gas buang, sehingga memahami keterkaitan antar faktor ini menjadi krusial dalam upaya mitigasi pencemaran udara [3]. Sehingga studi terhadap pembangkit ini dapat menjadi hal penting untuk dapat mengidentifikasi variavel utama yang dapat dikendalikan guna dalam mengurangi pada dampak lingkungan yang ditimbulkan serta mendukung dalam kebijakan energi yang lebih berkelanjutan.

B.Rumusan Masalah

Berdasarkan penjelasan pada latar belakang, penelitian ini merumuskan beberapa pernyataan utama : 1.) Bagaimana penerapan PCA dan FA dalam mengidentifikasi variable-variabel yang di mana paling berpengaruh terhadap emisi CO dan NOx pada turbin gas? 2.) Faktor-faktor dalam varibael apa saja yang paling dominan dalam menentukan tingkat emisi dari turbin gas berdasarkan hasil analisis PCA dan FA?

C. Tujuan Penelitian

Penelitian ini bertujuan untuk : 1.) Menerapkan metode PCA dan FA untuk menganalisis data emisi CO dan NOx dari turbin gas. 2.) Mengidentifikasi variable dominan yang berkontribusi terhadap emisi CO dan NOx.

Bab 2. Metodologi Penelitian

A. Data (https://archive.ics.uci.edu/dataset/551/gas+turbine+co+and+nox+emission+data+set)

Penelitian ini menggunakan dataset “Gas Turbine CO and NOx Emission DataSet” yang diperoleh melalui website UCI Machine Learning Repository. Dataset ini berisikan 36.733 data dengan memiliki 11 variabel sensor yang dikumpulkan dari turbin gas. Data ini dikumpulkan dalam rentang waktu 01 Januari 2011 hingga 31 Desember 2015, di mana setiap tahunnya dibedakan secara pada file dataset csvnya. Akan tetapi, disini dataset yang digunakan adalah dataset pada tahun 2015.

B. Variabel

Dataset ini terdiri atas 11 variabel atau feture sensor, berikut variable atau feture-feture tersebut : 1. AT = Suhu udara luar di sekitar turbin gas (°C) 2. AP = Tekanan atmosfer di sekitar turbin gas (mbar) 3. AH = Tingkat kelembapan udara di sekitar turbin gas (%) 4. AFDP = Selisih tekanan antara sisi masuk dan keluar filter udara (mbar) 5. GTEP = Tekanan gas buang di dalam turbin gas (mbar) 6. TIT = Suhu udara yang masuk ke dalam turbin gas (°C) 7. TAT = Suhu udara setelah melewati turbin gas (°C) 8. CDP = Tekanan udara di sisi keluar kompresor (mbar) 9. TEY = Total energi yang dihasilkan oleh turbin gas (MWH) 10. CO = Konsentrasi gas karbon monoksida yang dihasilkan oleh turbin gas (mg/m3) 11. NOx = Konsentrasi gas nitrogen oksida yang dihasilkan oleh turbin gas (mg/m3)

Bab 3. Pembahasan

Import Data

data=read.csv("C:/FILE ALIF KULIAH/SEMESTER 4/Analisis Multivariat/dataset.csv")
head(data)
##        AT     AP     AH   AFDP   GTEP    TIT    TAT    TEY    CDP       CO
## 1 1.95320 1020.1 84.985 2.5304 20.116 1048.7 544.92 116.27 10.799 6.544112
## 2 1.21910 1020.1 87.523 2.3937 18.584 1045.5 548.50 109.18 10.347 6.468400
## 3 0.94915 1022.2 78.335 2.7789 22.264 1068.8 549.95 125.88 11.256 3.633500
## 4 1.00750 1021.7 76.942 2.8170 23.358 1075.2 549.63 132.21 11.702 3.197200
## 5 1.28580 1021.6 76.732 2.8377 23.483 1076.2 549.68 133.58 11.737 2.383300
## 6 1.83190 1021.7 76.411 2.8410 23.495 1076.4 549.92 133.58 11.829 2.081200
##        NOX
## 1 84.13462
## 2 84.13462
## 3 84.13462
## 4 84.13462
## 5 82.51500
## 6 81.19300

#Pre-processing

sum(is.na(data))
## [1] 0
p <- ncol(data)

Karena value dalam setiap variabelnya tidak ada yang mengandung missing value jadi dataset tersebut siap untuk digunakan dalam analisis data

A. Summary

- Statistika Deskriptif dan Plot2

Fungsi summary() digunakan untuk menghitung statitika deskriptif dengan argumen data yang ingin dihitung (Data). Statistika deskriptif yang dimaksud adalah seperti nilai mean, median, minimum, maksimum, kuartil 1, dan kuartil 2, dan lain sebagainya.

summary(data)
##        AT               AP               AH             AFDP      
##  Min.   :-6.235   Min.   : 996.7   Min.   :29.14   Min.   :2.369  
##  1st Qu.:11.073   1st Qu.:1009.7   1st Qu.:59.45   1st Qu.:3.117  
##  Median :17.456   Median :1014.0   Median :70.95   Median :3.538  
##  Mean   :17.225   Mean   :1014.5   Mean   :68.65   Mean   :3.599  
##  3rd Qu.:23.685   3rd Qu.:1018.3   3rd Qu.:79.65   3rd Qu.:4.195  
##  Max.   :37.103   Max.   :1031.2   Max.   :96.67   Max.   :5.239  
##       GTEP            TIT            TAT             TEY       
##  Min.   :17.70   Min.   :1026   Min.   :536.8   Min.   :100.0  
##  1st Qu.:23.15   1st Qu.:1070   1st Qu.:544.7   1st Qu.:126.3  
##  Median :25.33   Median :1080   Median :549.7   Median :131.6  
##  Mean   :26.13   Mean   :1079   Mean   :547.0   Mean   :134.0  
##  3rd Qu.:30.02   3rd Qu.:1100   3rd Qu.:550.0   3rd Qu.:147.2  
##  Max.   :40.33   Max.   :1100   Max.   :550.6   Max.   :178.5  
##       CDP               CO              NOX       
##  Min.   : 9.871   Min.   :0.2128   Min.   :33.36  
##  1st Qu.:11.466   1st Qu.:1.8082   1st Qu.:52.40  
##  Median :11.933   Median :2.5334   Median :56.84  
##  Mean   :12.097   Mean   :2.9437   Mean   :59.47  
##  3rd Qu.:13.148   3rd Qu.:3.7026   3rd Qu.:65.09  
##  Max.   :15.159   Max.   :6.5441   Max.   :84.13
# Fungsi untuk mencari modus
modus <- function(x) {
  uniqx <- unique(x)
  uniqx[which.max(tabulate(match(x, uniqx)))]
}

numeric_vars <- sapply(data, is.numeric)  
data_numeric <- data[, numeric_vars]  

# Menghitung statistik deskriptif 
statistik <- data.frame(
  Variabel = colnames(data_numeric),
  Mean = sapply(data_numeric, function(x) mean(x, na.rm=TRUE)),
  Median = sapply(data_numeric, function(x) median(x, na.rm=TRUE)),
  Modus = sapply(data_numeric, modus),
  Std_Deviasi = sapply(data_numeric, function(x) sd(x, na.rm=TRUE)),
  Varians = sapply(data_numeric, function(x) var(x, na.rm=TRUE)),
  Min = sapply(data_numeric, function(x) min(x, na.rm=TRUE)),
  Max = sapply(data_numeric, function(x) max(x, na.rm=TRUE)),
  IQR = sapply(data_numeric, function(x) IQR(x, na.rm=TRUE))
)
print(statistik)
##      Variabel        Mean    Median       Modus Std_Deviasi     Varians
## AT         AT   17.225259   17.4565   10.562000   8.0957833  65.5417078
## AP         AP 1014.488705 1014.0000 1031.237500   6.7236479  45.2074411
## AH         AH   68.648754   70.9520   64.955000  13.5371242 183.2537308
## AFDP     AFDP    3.598909    3.5385    4.331200   0.6102258   0.3723755
## GTEP     GTEP   26.130096   25.3310   23.495000   4.4735664  20.0127959
## TIT       TIT 1078.992402 1080.3000 1100.000000  19.7127437 388.5922638
## TAT       TAT  547.034239  549.7200  536.823750   4.3965531  19.3296788
## TEY       TEY  133.993247  131.6000  130.710000  16.1788381 261.7548033
## CDP       CDP   12.097025   11.9330   11.985000   1.1366005   1.2918608
## CO         CO    2.943662    2.5334    6.544112   1.5152896   2.2961026
## NOX       NOX   59.473682   56.8385   84.134625   9.7635379  95.3266715
##             Min         Max       IQR
## AT     -6.23480   37.103000 12.611500
## AP    996.73750 1031.237500  8.625000
## AH     29.13750   96.666000 20.206500
## AFDP    2.36880    5.239500  1.077525
## GTEP   17.69800   40.325125  6.871250
## TIT  1026.40000 1100.400000 29.400000
## TAT   536.82375  550.590000  5.282500
## TEY   100.02000  178.517500 20.905000
## CDP     9.87080   15.159000  1.682250
## CO      0.21280    6.544112  1.894375
## NOX    33.35763   84.134625 12.694250
library(ggplot2)
library(reshape2)

data_long <- melt(data_numeric)
## No id variables; using all as measure variables
ggplot(data_long, aes(x = value)) +
  geom_histogram(bins = 10, fill="lightblue", color="black") +
  facet_wrap(~variable, scales = "free") +  # Memisahkan setiap variabel dalam grid
  theme_minimal() +
  labs(title = "Histogram Semua Variabel")

Bentuk visualisasi plot disini adalah menggunakan bentuk histogram, yang di mana untuk menampilkan distribusi data dari setiap variable numeriknya dalam dataset. Visualisasi histogram ini berfungsi untuk menggambarkan bagaimana data tersebar dalam suatu rentang nilai, dengan sumbu X itu mewakili nilai variable dan sumbu Y menunjukkan jumlah kemunculan (Frekuensi) dari nilai pada setiap variable tersebut.

B. Asumsi

  1. Check KMO
library(psych)
## Warning: package 'psych' was built under R version 4.4.3
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
r <- cor(data)
hasil_kmo<-KMO(r)
nilai_kmo<-hasil_kmo$MSAi
nilai_kmo
##        AT        AP        AH      AFDP      GTEP       TIT       TAT       TEY 
## 0.4134174 0.3335812 0.3887295 0.9411373 0.9698032 0.7503231 0.6413450 0.7236827 
##       CDP        CO       NOX 
## 0.8141777 0.9409271 0.6852416

Overal KMO = 0.75 menunjukan data cukup baik untuk dapat dianalisis faktor. Untuk variabel dengan nilai MSA < 0.5, seperti AT, AP, dan AH dapat dihilangkan.

# Pilih hanya variabel dengan MSA >= 0.5
selected_vars <- names(nilai_kmo[nilai_kmo >= 0.5])

# Filter data hanya dengan variabel yang memiliki MSA >= 0.5
data_filtered <- data[, selected_vars]

# Hitung ulang KMO setelah menghapus variabel 
r_filtered <- cor(data_filtered)
kmo_filtered <- KMO(r_filtered)
print(kmo_filtered)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = r_filtered)
## Overall MSA =  0.82
## MSA for each item = 
## AFDP GTEP  TIT  TAT  TEY  CDP   CO  NOX 
## 0.85 0.97 0.79 0.58 0.82 0.77 0.93 0.80

Terdapat perubahan setelah dihilangkan variabel dengan nilai msa<50, yakni Overal KMO = 0.82 menunjukan data sangat baik untuk dapat dianalisis faktor dan tidak ada variabel Untuk variabel dengan nilai MSA < 0.5.

B. Bartlett Test

bartlett.test(data)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  data
## Bartlett's K-squared = 111742, df = 10, p-value < 2.2e-16

Karena p-value < 0.05, maka H0 ditolak Variabel dalam dataset memiliki korelasi yang cukup untuk dilakukan analisis faktor atau PCA.

C. PCA

-scale data

scale_data = scale(data)
r = cov(scale_data)

-Menghitung eigenvalue dan eigenvector

pc <- eigen(r)
pc$values
##  [1] 6.180709208 2.056867953 1.011018425 0.719464153 0.579635328 0.199201823
##  [7] 0.135952624 0.078390996 0.033296536 0.004090129 0.001372825
pc$vectors
##              [,1]        [,2]         [,3]        [,4]        [,5]        [,6]
##  [1,] -0.16712137  0.56902909 -0.142023980 -0.14086791 -0.31171722  0.55445830
##  [2,]  0.04375958 -0.47927717 -0.106535448 -0.82501474  0.07748179  0.21525539
##  [3,]  0.12414841 -0.21567077  0.871116733  0.13888429 -0.06520992  0.33639068
##  [4,] -0.38762668  0.01684916  0.043215474 -0.03356058 -0.12261201  0.40280063
##  [5,] -0.36967463 -0.14866696 -0.114242867  0.19109487  0.05996088 -0.11373293
##  [6,] -0.38734886 -0.02162098  0.028957245  0.03074139  0.29939216  0.16046210
##  [7,]  0.22412429  0.40603929  0.105782508 -0.14326936  0.71997032  0.11611505
##  [8,] -0.37889121 -0.20067285  0.024183625  0.08701328  0.15558242 -0.04179515
##  [9,] -0.38888110 -0.16350016 -0.001165083  0.05837936  0.03725775  0.03531159
## [10,]  0.33829921 -0.19255388 -0.189670384  0.13948042 -0.36545451  0.18065316
## [11,]  0.24150506 -0.32891549 -0.382264954  0.43665674  0.32680827  0.53201390
##               [,7]        [,8]        [,9]        [,10]        [,11]
##  [1,]  0.022698428  0.26032519 -0.33310124  0.108783214  0.112229611
##  [2,] -0.009809514  0.14913256 -0.03625923  0.006679375  0.018573439
##  [3,] -0.016907092  0.18519367 -0.08595001  0.021404920  0.010046992
##  [4,] -0.007874530 -0.32455834  0.75011993 -0.023784657  0.023237539
##  [5,] -0.357561135  0.77143081  0.22761842 -0.018948032  0.003872550
##  [6,] -0.176386242 -0.19121772 -0.33888667 -0.718464936 -0.183340445
##  [7,] -0.386042865 -0.01819149  0.14512550  0.225327562 -0.012265253
##  [8,] -0.118656717 -0.23234067 -0.25671040  0.291019140  0.750605758
##  [9,] -0.066863315 -0.17163521 -0.24481765  0.577172016 -0.623700301
## [10,] -0.758886579 -0.21630899 -0.06224409 -0.015106565 -0.007313452
## [11,]  0.310790239  0.09013547 -0.01534750  0.041550351  0.013225330

-Menghitung proporsi varians dan kumulatif

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
sumvar <- sum(pc$values)
propvar <- sapply(pc$values, function(x) x/sumvar)*100
cumvar <- data.frame(cbind(pc$values, propvar)) %>% mutate(cum = cumsum(propvar))
colnames(cumvar)[1] <- "value"
rownames(cumvar) <- paste0("PC",c(1:p))
print(cumvar)
##            value     propvar       cum
## PC1  6.180709208 56.18826553  56.18827
## PC2  2.056867953 18.69879958  74.88707
## PC3  1.011018425  9.19107659  84.07814
## PC4  0.719464153  6.54058321  90.61872
## PC5  0.579635328  5.26941207  95.88814
## PC6  0.199201823  1.81092566  97.69906
## PC7  0.135952624  1.23593294  98.93500
## PC8  0.078390996  0.71264542  99.64764
## PC9  0.033296536  0.30269578  99.95034
## PC10 0.004090129  0.03718299  99.98752
## PC11 0.001372825  0.01248023 100.00000

Berdasarkan data diatas menunjukan bahwa PC1 hingga PC3 telah memiliki eigen value>1 dan ketiga PC tersebut telah menjelaskan 84.08% varians, yang di mana sebagian besar informasi dalam data telah tercapture.

-hasilPCA

scores <- as.matrix(scale_data) %*% pc$vectors
head(scores)
##          [,1]      [,2]         [,3]      [,4]       [,5]       [,6]       [,7]
## [1,] 4.437767 -2.607110 -0.228573117 0.8406762 -0.3540855 0.46329856 0.06793309
## [2,] 5.238792 -2.155287  0.057845950 0.6315970  0.1418030 0.48855315 0.01771319
## [3,] 2.906048 -2.158528 -0.180647672 0.2850055  1.6580134 0.34476471 0.63428102
## [4,] 2.233894 -2.255698 -0.223309440 0.4128864  1.8892397 0.28460713 0.66565910
## [5,] 1.919163 -2.089765 -0.071874223 0.2841036  2.0556791 0.12745539 0.98720627
## [6,] 1.779190 -1.962066 -0.008220605 0.1696534  2.1108134 0.06472699 1.06893164
##              [,8]       [,9]        [,10]        [,11]
## [1,] -0.145095000 -0.2999631 -0.019872803 -0.036296103
## [2,] -0.128345496 -0.1457108 -0.070104539 -0.111884956
## [3,]  0.009148129 -0.1238602 -0.101418120 -0.029879619
## [4,] -0.007463215 -0.3113915 -0.014418759 -0.036676287
## [5,]  0.073306643 -0.2980026 -0.002693276  0.004294556
## [6,]  0.103102386 -0.3151509  0.053171773 -0.041307534

-prcomp

PCA.mod <- prcomp(scale_data)
summary(PCA.mod)       
## Importance of components:
##                           PC1    PC2     PC3     PC4     PC5     PC6     PC7
## Standard deviation     2.4861 1.4342 1.00549 0.84821 0.76134 0.44632 0.36872
## Proportion of Variance 0.5619 0.1870 0.09191 0.06541 0.05269 0.01811 0.01236
## Cumulative Proportion  0.5619 0.7489 0.84078 0.90619 0.95888 0.97699 0.98935
##                            PC8     PC9    PC10    PC11
## Standard deviation     0.27998 0.18247 0.06395 0.03705
## Proportion of Variance 0.00713 0.00303 0.00037 0.00012
## Cumulative Proportion  0.99648 0.99950 0.99988 1.00000
PCA.mod$rotation     
##              PC1         PC2          PC3         PC4         PC5         PC6
## AT    0.16712137 -0.56902909 -0.142023980  0.14086791  0.31171722  0.55445830
## AP   -0.04375958  0.47927717 -0.106535448  0.82501474 -0.07748179  0.21525539
## AH   -0.12414841  0.21567077  0.871116733 -0.13888429  0.06520992  0.33639068
## AFDP  0.38762668 -0.01684916  0.043215474  0.03356058  0.12261201  0.40280063
## GTEP  0.36967463  0.14866696 -0.114242867 -0.19109487 -0.05996088 -0.11373293
## TIT   0.38734886  0.02162098  0.028957245 -0.03074139 -0.29939216  0.16046210
## TAT  -0.22412429 -0.40603929  0.105782508  0.14326936 -0.71997032  0.11611505
## TEY   0.37889121  0.20067285  0.024183625 -0.08701328 -0.15558242 -0.04179515
## CDP   0.38888110  0.16350016 -0.001165083 -0.05837936 -0.03725775  0.03531159
## CO   -0.33829921  0.19255388 -0.189670384 -0.13948042  0.36545451  0.18065316
## NOX  -0.24150506  0.32891549 -0.382264954 -0.43665674 -0.32680827  0.53201390
##               PC7         PC8         PC9         PC10         PC11
## AT    0.022698428 -0.26032519  0.33310124  0.108783214 -0.112229611
## AP   -0.009809514 -0.14913256  0.03625923  0.006679375 -0.018573439
## AH   -0.016907092 -0.18519367  0.08595001  0.021404920 -0.010046992
## AFDP -0.007874530  0.32455834 -0.75011993 -0.023784657 -0.023237539
## GTEP -0.357561135 -0.77143081 -0.22761842 -0.018948032 -0.003872550
## TIT  -0.176386242  0.19121772  0.33888667 -0.718464936  0.183340445
## TAT  -0.386042865  0.01819149 -0.14512550  0.225327562  0.012265253
## TEY  -0.118656717  0.23234067  0.25671040  0.291019140 -0.750605758
## CDP  -0.066863315  0.17163521  0.24481765  0.577172016  0.623700301
## CO   -0.758886579  0.21630899  0.06224409 -0.015106565  0.007313452
## NOX   0.310790239 -0.09013547  0.01534750  0.041550351 -0.013225330
head(PCA.mod$x)        
##            PC1      PC2          PC3        PC4        PC5        PC6
## [1,] -4.437767 2.607110 -0.228573117 -0.8406762  0.3540855 0.46329856
## [2,] -5.238792 2.155287  0.057845950 -0.6315970 -0.1418030 0.48855315
## [3,] -2.906048 2.158528 -0.180647672 -0.2850055 -1.6580134 0.34476471
## [4,] -2.233894 2.255698 -0.223309440 -0.4128864 -1.8892397 0.28460713
## [5,] -1.919163 2.089765 -0.071874223 -0.2841036 -2.0556791 0.12745539
## [6,] -1.779190 1.962066 -0.008220605 -0.1696534 -2.1108134 0.06472699
##             PC7          PC8       PC9         PC10         PC11
## [1,] 0.06793309  0.145095000 0.2999631 -0.019872803  0.036296103
## [2,] 0.01771319  0.128345496 0.1457108 -0.070104539  0.111884956
## [3,] 0.63428102 -0.009148129 0.1238602 -0.101418120  0.029879619
## [4,] 0.66565910  0.007463215 0.3113915 -0.014418759  0.036676287
## [5,] 0.98720627 -0.073306643 0.2980026 -0.002693276 -0.004294556
## [6,] 1.06893164 -0.103102386 0.3151509  0.053171773  0.041307534

Berdasarkan hasil PCA.mod$rotation menunjukan bahwa PC1 memiliki loading besar yang terdapat pada AFDP, GTEP, TIT,TEY,dan CDP, sehingga diinterpretasikan sebagai faktor terkait efisiensi turbin gas. Untuk pada PC2 didominasi oleh AP, AT, dan TAT sehingga hal ini mungkin terkait dengan tekanan ari suhu dalam sistem. Pada PC3 lebih dipengaruhi oleh AH, yang di mana dapat dikaitkan dengan pola pembakaran atau aliran udara.

-menampilkan visualisasi pca_result

library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.4.3
pca_result <- PCA(scale_data, 
                  scale.unit = TRUE, 
                  graph = FALSE, 
                  ncp=p)     
#Visualisasi
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# membuat scree plot
fviz_eig(pca_result, 
         addlabels = TRUE, 
         ncp = p, 
         barfill = "skyblue", 
         barcolor = "darkblue", 
         linecolor = "red")

Elbow point tampak berada pada PC3, sehingga hal ini tiga komponen utama tersebut cukup untuk dianalisis lebih lanjut. Keadaan setelah PC3 didapatkan kontribusi yang semakin kecil, menunjukan bahwa dimensi tambahan kurang signifikan.

-Hasil Visualisasi PCA-Biplot

#Biplot
fviz_pca_biplot(pca_result, 
                geom.ind = "point", 
                addEllipses = TRUE, 
                repel = TRUE
                )

Biplot di atas menggambarkan mengenai hubungan antara variabel dan distribusi data secara dalam dua dimensi utama hasil Principal Component Analysis (PCA). Dimensi pertama (Dim1) menjelaskan sebesar 56.2% varians, sedangkan Dimensi kedua (Dim2) mencakup sebesar 18.7% varians, sehingga secara keseluruhan kedua komponen ini dapat menangkap sebagian besar informasi pada dataset. Panjang vektor ini menunjukkan kontribusi pada masing-masing variabel terhadap komponen utama, di mana variabel seperti AFDP, TIT, CDP, TEY, dan GTEP memiliki pengaruh besar terhadap Dim1 yang berkaitan dengan efisiensi turbin gas. Sementara itu, variabel seperti AP, AT, dan NOX lebih terkait dengan Dim2 yang merepresentasikan faktor lingkungan seperti tekanan dan emisi

contrib_circle <- fviz_pca_var(pca_result, col.var = "contrib",
                               gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), 
                               repel = TRUE) + 
  ggtitle("Kontribusi Variabel")
plot(contrib_circle)

Biplot di atas menggambarkan mengenai hubungan antara variabel dan distribusi data secara dalam dua dimensi utama hasil Principal Component Analysis (PCA). Dimensi pertama (Dim1) menjelaskan sebesar 56.2% varians, sedangkan Dimensi kedua (Dim2) mencakup sebesar 18.7% varians, sehingga secara keseluruhan kedua komponen ini dapat menangkap sebagian besar informasi pada dataset. Panjang vektor ini menunjukkan kontribusi pada masing-masing variabel terhadap komponen utama, di mana variabel seperti AFDP, TIT, CDP, TEY, dan GTEP memiliki pengaruh besar terhadap Dim1 yang berkaitan dengan efisiensi turbin gas. Sementara itu, variabel seperti AP, AT, dan NOX lebih terkait dengan Dim2 yang merepresentasikan faktor lingkungan seperti tekanan dan emisi. Warna tersebut menunjukan besar kontribusi yang diberikan.

-contribution

contrib_v_PC1 <- fviz_contrib(pca_result, choice = "var", axes = 1, top = 5) + ggtitle("PC1")
contrib_v_PC2 <- fviz_contrib(pca_result, choice = "var", axes = 2, top = 5) + ggtitle("PC2")
contrib_v_PC3 <- fviz_contrib(pca_result, choice = "var", axes = 3, top = 5) + ggtitle("PC3")
plot(contrib_v_PC1)

plot(contrib_v_PC2)

plot(contrib_v_PC3)

Pada PC1, variabel yang memiliki kontribusi terbesar adalah CDP, AFDP, TIT, TEY, dan GTEP, masing-masing mempunyai kontribusi yang hampir setara, sekitar 15%. Hal ini menunjukkan apabila PC1 merepresentasikan variabilitas yang berkaitan dengan efisiensi turbin gas, terutama dalam hal tekanan dan suhu operasi, serta faktor yang terkait pada daya output.

Sementara itu, pada PC2, variabel dengan kontribusi terbesar adalah AT, AP, dan TAT, dengan AT sebagai faktor dominan dengan kontribusi di atas 30%. Hal ini mengindikasikan bahwa PC2 berkaitan dengan faktor tekanan dan suhu lingkungan, yang di mana dapat memengaruhi kinerja turbin gas dalam kondisi operasional yang secara berbeda.

Pada PC3, variabel yang memiliki kontribusi terbesar adalah AH, dengan kontribusi yang sangat dominan di atas 70%, diikuti oleh NOX dengan kontribusi sekitar 15%, di mana hal ini menunjukkan bahwa PC3 terutama berkaitan dengan faktor kelembaban udara (AH), yang dapat memengaruhi pada pola pembakaran dan emisi gas buang seperti NOx. Variabel lain seperti CO, AT, dan GTEP memiliki kontribusi yang di mana lebih kecil, hal ini menunjukkan bahwa pengaruhnya terhadap komponen utama ini tidak signifikan.

D. FA

-Hitung matriks kovarians

varcov <- cov(scale_data)
pc <- eigen(varcov)
pc$values
##  [1] 6.180709208 2.056867953 1.011018425 0.719464153 0.579635328 0.199201823
##  [7] 0.135952624 0.078390996 0.033296536 0.004090129 0.001372825
pc$vectors
##              [,1]        [,2]         [,3]        [,4]        [,5]        [,6]
##  [1,] -0.16712137  0.56902909 -0.142023980 -0.14086791 -0.31171722  0.55445830
##  [2,]  0.04375958 -0.47927717 -0.106535448 -0.82501474  0.07748179  0.21525539
##  [3,]  0.12414841 -0.21567077  0.871116733  0.13888429 -0.06520992  0.33639068
##  [4,] -0.38762668  0.01684916  0.043215474 -0.03356058 -0.12261201  0.40280063
##  [5,] -0.36967463 -0.14866696 -0.114242867  0.19109487  0.05996088 -0.11373293
##  [6,] -0.38734886 -0.02162098  0.028957245  0.03074139  0.29939216  0.16046210
##  [7,]  0.22412429  0.40603929  0.105782508 -0.14326936  0.71997032  0.11611505
##  [8,] -0.37889121 -0.20067285  0.024183625  0.08701328  0.15558242 -0.04179515
##  [9,] -0.38888110 -0.16350016 -0.001165083  0.05837936  0.03725775  0.03531159
## [10,]  0.33829921 -0.19255388 -0.189670384  0.13948042 -0.36545451  0.18065316
## [11,]  0.24150506 -0.32891549 -0.382264954  0.43665674  0.32680827  0.53201390
##               [,7]        [,8]        [,9]        [,10]        [,11]
##  [1,]  0.022698428  0.26032519 -0.33310124  0.108783214  0.112229611
##  [2,] -0.009809514  0.14913256 -0.03625923  0.006679375  0.018573439
##  [3,] -0.016907092  0.18519367 -0.08595001  0.021404920  0.010046992
##  [4,] -0.007874530 -0.32455834  0.75011993 -0.023784657  0.023237539
##  [5,] -0.357561135  0.77143081  0.22761842 -0.018948032  0.003872550
##  [6,] -0.176386242 -0.19121772 -0.33888667 -0.718464936 -0.183340445
##  [7,] -0.386042865 -0.01819149  0.14512550  0.225327562 -0.012265253
##  [8,] -0.118656717 -0.23234067 -0.25671040  0.291019140  0.750605758
##  [9,] -0.066863315 -0.17163521 -0.24481765  0.577172016 -0.623700301
## [10,] -0.758886579 -0.21630899 -0.06224409 -0.015106565 -0.007313452
## [11,]  0.310790239  0.09013547 -0.01534750  0.041550351  0.013225330

-Menghitung Factorloading atau eigenvector loading

L1 = sqrt(pc$values[1])*pc$vectors[,1]
L2 = sqrt(pc$values[2])*pc$vectors[,2]
L3 = sqrt(pc$values[3])*pc$vectors[,3]
L = cbind(L1,L2,L3)
L
##               L1          L2           L3
##  [1,] -0.4154810  0.81608928 -0.142804276
##  [2,]  0.1087908 -0.68736900 -0.107120767
##  [3,]  0.3086458 -0.30931037  0.875902753
##  [4,] -0.9636799  0.02416470  0.043452905
##  [5,] -0.9190493 -0.21321495 -0.114870531
##  [6,] -0.9629893 -0.03100835  0.029116339
##  [7,]  0.5571961  0.58233282  0.106363689
##  [8,] -0.9419627 -0.28780069  0.024316493
##  [9,] -0.9667986 -0.23448841 -0.001171485
## [10,]  0.8410467 -0.27615663 -0.190712456
## [11,]  0.6004065 -0.47172352 -0.384365163
library(psych)
fa <- fa(r = scale_data, 
         covar = TRUE,
         nfactors = 3, 
         rotate = "varimax") 
## Warning in log(det(m.inv.r)): NaNs produced
## Warning in fa.stats(r = r, f = f, phi = phi, n.obs = n.obs, np.obs = np.obs, :
## The estimated weights for the factor scores are probably incorrect.  Try a
## different factor score estimation method.
#summary(fa) 

load <- fa$loadings

plot(load[,c(1,3)],type="n") # set up plot
text(load[,c(1,3)],labels=names(data),cex=.7)

fa.diagram(load)

Penjelasan Visualisasi tersebut (Plot Faktor MR1 dengan MR3) Gambar pertama menunjukkan plot faktor berdasarkan analisis faktor, dengan MR1 pada sumbu horizontal dan MR3 pada sumbu vertikalnya. Variabel TEY, CDP, GTEP, TIT, AFDP terletak di sisi kanan, menandakan bahwa kontribusi besar terhadap faktor MR1. Sementara itu, CO, TAT, dan NOX itu lebih tersebar di sisi kiri, yang di mana hal ini menunjukkan hubungan yang lebih lemah terhadap MR1. Variabel AH memiliki kontribusi besar pada MR3 dengan nilai yang negatif, yang menunjukkan perbedaan pola dibandingkan variabel lain.

Penjelasan pada visualisasi ini (Diagram Faktor) merupakan diagram faktor kedua yang menggambarkan hubungan antara variabel dengan faktor utama (MR1, MR2, MR3). MR1 memiliki loading tinggi pada variabel TEY, CDP, GTEP, TIT, dan AFDP, yang berkaitan dengan performa pada turbin gas. MR2 lebih dikaitkan dengan variabel CO dan TAT, yang mungkin menunjukkan hubungan dengan emisi gas buang. MR3 memiliki loading negatif pada AH, yang menunjukkan bahwa faktor ini lebih terkait dengan pola aliran udara atau pembakaran. Hubungan antar faktor ditunjukkan dengan garis solid untuk korelasi kuat dan terdapat garis putus-putus untuk meunjukan hasil korelasi lebih lemah.

Bab 4. Kesimpulan

Sehingga kesimpulannya adalah bahwa penerapan dengan teknik Principal Componet Analysis(PCA) dan Factor Analysis (FA) pada dataset tersebut untuk mengidentifikasi struktur data yang sifatnya mendasari serta menentukan variabel dominan yang dapat berkontribusi terhadap emisi CO dan NOx pada turbin gas. Metode PCA ini digunakan untuk mereduksi dimensi suatu data dengan cara mempertahankaninformasi dengan sebanyak mungkin, sementara pada FA digunakan untuk membantu dalam pengelompokkan variabel di mana berdasarkan atas korelasi laten yang mendasari hubungan antar variabelnya, dan ternyata penerapan antar kedua teknik ini tentunya efektif dan berhasil pada datasetnya.

Daftar Pustaka

[1] E. A. Saputro, S. A. Susanto, dan A. Cholik, “Study Pustaka Penurunan Parameter NOx dan CO Pada Emisi Gas Buang B30,” Atmosphere, vol. 2, no. 1, pp. 31–35, April 2021.

[2] Akbar Ramadhan Firman Al Abrari dan Listiyono, “Analisa Pengaruh Katalis Terhadap Gas Buang Pada Kendaraan Roda 2,” Venus: Jurnal Publikasi Rumpun Ilmu Teknik, vol. 2, no. 4, pp. 1–13, Agustus 2024.

[3] D. D. Sumbaga dan S. Shofiah, “Pengaruh Blower Terhadap Hasil Uji Kadar Emisi Gas Buang (CO, HC, NOx, Asap) Berbasis Mikrokontroler,” JT: Jurnal Teknik, vol. 12, no. 2, pp. 17–23, September 2023.