BAB 1 Pendahuluan

A. Latar Belakang

Perubahan iklim merupakan salah satu tantangan global yang dihadapi saat ini, dengan emisi karbon dioksida (CO2) sebagai salah satu penyebab utamanya. Dalam laporan IPCC tahun 2001 [1], disebutkan bahwa suhu rata-rata permukaan global telah meningkat sekitar 0,6°C (sekitar 1,1°F) selama abad ke-20. Sektor agri-pangan berkontribusi sekitar 31% dari total emisi CO2 global tahunan, menjadikannya faktor krusial dalam upaya mitigasi perubahan iklim [2]. Sistem agri-pangan global bertanggung jawab atas emisi sekitar 16,5 miliar ton CO2e per tahun, yang mencakup emisi dari produksi pertanian, perubahan penggunaan lahan, serta proses pra- dan pasca-produksi seperti pembuatan pupuk dan pengolahan makanan [3].

Untuk memahami pola emisi dan dampaknya terhadap peningkatan suhu, diperlukan analisis data yang mendalam guna mengidentifikasi faktor-faktor utama yang berkontribusi terhadap emisi tersebut. Principal Component Analysis (PCA) dan Factor Analysis (FA) merupakan dua teknik analisis data multivariat yang banyak digunakan dalam eksplorasi serta reduksi dimensi data. PCA berfungsi untuk mengekstraksi komponen utama yang paling berpengaruh dalam variabel data [4], sedangkan FA digunakan untuk mengidentifikasi struktur laten yang mendasari hubungan antara variabel-variabel dalam dataset [5]. Dengan menggunakan kedua metode ini, pola tersembunyi dalam dataset emisi CO2 sektor agri-pangan dapat diungkap sehingga mempermudah interpretasi serta pengambilan keputusan berbasis data.

B. Rumusan Masalah

  1. Bagaimana pola emisi CO₂ dalam sektor agri-pangan dapat dianalisis secara mendalam?
  2. Faktor-faktor utama apa saja yang berkontribusi terhadap total emisi CO₂ sektor agri-pangan?
  3. Bagaimana metode Principal Component Analysis (PCA) dan Factor Analysis (FA) dapat digunakan untuk mengidentifikasi pola tersembunyi dalam data emisi CO₂ sektor agri-pangan?

C. Tujuan

  1. Mengevaluasi kelayakan data emisi CO₂ sektor agri-pangan untuk dilakukan PCA dan FA menggunakan uji Measure of Sampling Adequacy (KMO) dan uji Bartlett.
  2. Menganalisis pola utama dalam data emisi CO₂ sektor agri-pangan dan melakukan reduksi dimensi menggunakan PCA.
  3. Mengidentifikasi faktor-faktor yang memengaruhi emisi CO₂ sektor agri-pangan menggunakan FA.
  4. Mengurangi dimensi data emisi CO₂ untuk meningkatkan efisiensi analisis dan interpretasi.

BAB 2 Metodologi Penelitian

A. Data

Dataset yang digunakan dalam penelitian ini diperoleh dari https://www.kaggle.com/competitions/warmup-datavidia. Dataset emisi CO2 dari sektor agri-pangan merupakan kumpulan data yang dibentuk dengan menggabungkan dan memproses ulang berbagai sumber informasi yang berasal dari organisasi terkemuka, seperti Food and Agriculture Organization (FAO) dan Intergovernmental Panel on Climate Change (IPCC). Dataset ini mencakup data yang telah dibersihkan dan diproses untuk menghasilkan informasi yang lebih terstruktur dan dapat digunakan dalam analisis serta peramalan emisi karbon yang dihasilkan oleh sektor agri-pangan.

B. Variabel

Dataset ini memiliki beberapa variabel utama yang akan dianalisis menggunakan PCA dan FA, di antaranya:

  1. Emisi Savanna Api: Emisi dari kebakaran di ekosistem sabana.
  2. Emisi Kebakaran Hutan: Emisi dari kebakaran di area hutan.
  3. Emisi Residu Tanaman: Emisi dari pembakaran atau dekomposisi sisa tanaman setelah panen.
  4. Emisi Budidaya Padi: Emisi dari metana yang dilepaskan selama budidaya padi.
  5. Emisi Tanah Organik Yang Dikeringkan (CO₂): Emisi dari karbon dioksida yang dilepaskan saat mengeringkan tanah organik.
  6. Emisi Pembuatan Pestisida: Emisi dari produksi pestisida.
  7. Emisi Transportasi Makanan: Emisi dari transportasi produk makanan.
  8. Lahan Hutan: Lahan yang ditutupi oleh hutan.
  9. Konversi Hutan Bersih: Perubahan area hutan akibat deforestasi dan reboisasi.
  10. Emisi Konsumsi Rumah Tangga Makanan: Emisi dari konsumsi makanan di tingkat rumah tangga.
  11. Emisi Ritel Makanan: Emisi dari operasi ritel yang menjual makanan.
  12. Emisi Penggunaan Listrik Di Pertanian: Konsumsi listrik di lahan pertanian.
  13. Emisi Kemasan Makanan: Emisi dari produksi dan pembuangan bahan kemasan makanan.
  14. Emisi Sistem Agrifood Pembuangan Limbah: Emisi dari pembuangan limbah dalam sistem agri-pangan.
  15. Emisi Pengolahan Makanan: Emisi dari pengolahan produk makanan.
  16. Emisi Manufaktur Pupuk: Emisi dari produksi pupuk.
  17. Emisi IPPU: Emisi dari proses industri dan penggunaan produk.
  18. Emisi Kotoran Diterapkan Pada Tanah: Emisi dari penerapan pupuk kandang ke tanah pertanian.
  19. Emisi Pupuk Kandang Di Padang Rumput: Emisi dari pupuk kandang yang tertinggal di padang rumput atau lahan penggembalaan.
  20. Emisi Manajemen Pupuk: Emisi dari pengelolaan dan pengolahan pupuk kandang.
  21. Emisi Kebakaran Di Tanah Organik: Emisi dari kebakaran di tanah organik.
  22. Emisi Kebakaran Di Hutan Tropis Yang Lembab: Emisi dari kebakaran di hutan tropis lembap.
  23. Penggunaan Energi Di Pertanian: Konsumsi energi di lahan pertanian.
  24. Populasi Pedesaan: Jumlah penduduk yang tinggal di daerah pedesaan.
  25. Populasi Perkotaan: Jumlah penduduk yang tinggal di daerah perkotaan.
  26. Total Populasi - Pria: Total jumlah individu laki-laki dalam populasi.
  27. Total Populasi - Wanita: Total jumlah individu perempuan dalam populasi.
  28. Emisi Total: Total emisi gas rumah kaca dari berbagai sumber.

BAB 3 Pembahasan

A. Summary

Load Library

library(ggplot2)
library(GGally)
library(corrplot)
library(reshape2)

Load Data

data <- read.csv('D:/GISELLA SERAFINA/MATKUL SEMESTER 4/ANALISIS MULTIVARIAT/PCA FA TUGAS/Prediksi Peningkatan Suhu.csv', header = TRUE)

Cek Nilai Null

total_na <- sum(is.na(data))
cat("Total missing values:", total_na, "\n")
## Total missing values: 0

Statistika Deskriptif

summary_stats <- data.frame(
  Variable = names(data),
  Mean = sapply(data, mean, na.rm = TRUE),
  SD = sapply(data, sd, na.rm = TRUE)
)
print(summary_stats)
##                                                                                Variable
## Emisi.Savanna.Api                                                     Emisi.Savanna.Api
## Emisi.Kebakaran.Hutan                                             Emisi.Kebakaran.Hutan
## Emisi.Residu.Tanaman                                               Emisi.Residu.Tanaman
## Emisi.Budidaya.Padi                                                 Emisi.Budidaya.Padi
## Emisi.Tanah.Organik.Yang.Dikeringkan..Co2.   Emisi.Tanah.Organik.Yang.Dikeringkan..Co2.
## Emisi.Pembuatan.Pestisida                                     Emisi.Pembuatan.Pestisida
## Emisi.Transportasi.Makanan                                   Emisi.Transportasi.Makanan
## Lahan.Hutan                                                                 Lahan.Hutan
## Konversi.Hutan.Bersih                                             Konversi.Hutan.Bersih
## Emisi.Konsumsi.Rumah.Tangga.Makanan                 Emisi.Konsumsi.Rumah.Tangga.Makanan
## Emisi.Ritel.Makanan                                                 Emisi.Ritel.Makanan
## Emisi.Penggunaan.Listrik.Di.Pertanian             Emisi.Penggunaan.Listrik.Di.Pertanian
## Emisi.Kemasan.Makanan                                             Emisi.Kemasan.Makanan
## Emisi.Sistem.Agrifood.Pembuangan.Limbah         Emisi.Sistem.Agrifood.Pembuangan.Limbah
## Emisi.Pengolahan.Makanan                                       Emisi.Pengolahan.Makanan
## Emisi.Manufaktur.Pupuk                                           Emisi.Manufaktur.Pupuk
## Emisi.IPPU                                                                   Emisi.IPPU
## Emisi.Kotoran.Diterapkan.Pada.Tanah                 Emisi.Kotoran.Diterapkan.Pada.Tanah
## Emisi.Pupuk.Kandang.Di.Padang.Rumput               Emisi.Pupuk.Kandang.Di.Padang.Rumput
## Emisi.Manajemen.Pupuk                                             Emisi.Manajemen.Pupuk
## Emisi.Kebakaran.Di.Tanah.Organik                       Emisi.Kebakaran.Di.Tanah.Organik
## Emisi.Kebakaran.Di.Hutan.Tropis.Yang.Lembab Emisi.Kebakaran.Di.Hutan.Tropis.Yang.Lembab
## Penggunaan.Energi.Di.Pertanian                           Penggunaan.Energi.Di.Pertanian
## Populasi.Pedesaan                                                     Populasi.Pedesaan
## Populasi.Perkotaan                                                   Populasi.Perkotaan
## Total.Populasi...Pria                                             Total.Populasi...Pria
## Total.Populasi...Wanita                                         Total.Populasi...Wanita
## Emisi.Total                                                                 Emisi.Total
##                                                      Mean           SD
## Emisi.Savanna.Api                               1229.6544     5460.129
## Emisi.Kebakaran.Hutan                            924.2752     3667.783
## Emisi.Residu.Tanaman                             949.2051     3129.971
## Emisi.Budidaya.Padi                             4241.1017    17599.628
## Emisi.Tanah.Organik.Yang.Dikeringkan..Co2.      3471.7916    15488.662
## Emisi.Pembuatan.Pestisida                        327.5223     1445.485
## Emisi.Transportasi.Makanan                      1823.1383     5306.418
## Lahan.Hutan                                   -18145.6541    78121.214
## Konversi.Hutan.Bersih                          18454.5224   104107.621
## Emisi.Konsumsi.Rumah.Tangga.Makanan             4290.2293    19960.469
## Emisi.Ritel.Makanan                             1726.5583     6882.577
## Emisi.Penggunaan.Listrik.Di.Pertanian           1524.6925     8356.446
## Emisi.Kemasan.Makanan                           1547.3576    10235.124
## Emisi.Sistem.Agrifood.Pembuangan.Limbah         5919.6140    21758.444
## Emisi.Pengolahan.Makanan                        3779.3598    19356.823
## Emisi.Manufaktur.Pupuk                          2900.8004    11016.457
## Emisi.IPPU                                     17309.1923    86069.091
## Emisi.Kotoran.Diterapkan.Pada.Tanah              913.2562     2991.496
## Emisi.Pupuk.Kandang.Di.Padang.Rumput            3431.7500     8926.859
## Emisi.Manajemen.Pupuk                           2252.8005     7453.820
## Emisi.Kebakaran.Di.Tanah.Organik                1254.3361    23189.668
## Emisi.Kebakaran.Di.Hutan.Tropis.Yang.Lembab      668.2839     3206.630
## Penggunaan.Energi.Di.Pertanian                  3015.8050    11493.960
## Populasi.Pedesaan                           17949028.8256 90736574.036
## Populasi.Perkotaan                          15738814.3484 59203131.674
## Total.Populasi...Pria                       17038810.1786 73982191.224
## Total.Populasi...Wanita                     16756698.5636 70561958.841
## Emisi.Total                                    60571.3691   208490.417

Korelasi Antar Variabel

cor_matrix <- cor(data, use = "complete.obs")

melted_cor_matrix <- melt(cor_matrix)

ggplot(data = melted_cor_matrix, aes(x = Var1, y = Var2, fill = value)) +
  geom_tile(color = "white", size = 0.3) +  
  geom_point(data = subset(melted_cor_matrix, value > 0.95), aes(x = Var1, y = Var2), 
             color = "black", size = 1.5) +  
  scale_fill_gradient2(low = "blue", high = "red", mid = "white", 
                       midpoint = 0, limit = c(-1,1), space = "Lab") +
  ggtitle("Heatmap Korelasi Variabel") +
  theme_minimal(base_size = 12) +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1, size = 8, face = "plain"),
    axis.text.y = element_text(size = 8, face = "plain"),
    plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
    legend.text = element_text(size = 10),
    legend.title = element_text(size = 12, face = "bold")
  ) +
  coord_fixed()  

Titik hitam pada heatmap diatas menandakan korelasi tinggi (>0.95) antar variabel.

Hapus Variabel dengan Korelasi Tinggi

library(caret)
cor_matrix <- cor(data, use = "complete.obs")
high_corr <- findCorrelation(cor_matrix, cutoff = 0.95)
data <- data[, -high_corr]

B. Asumsi

1. KMO Test

library(psych)
library(corpcor)
r <- cor.shrink(data)
## Estimating optimal shrinkage intensity lambda (correlation matrix): 0.0163
KMO(r)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = r)
## Overall MSA =  0.82
## MSA for each item = 
##                           Emisi.Savanna.Api 
##                                        0.65 
##                       Emisi.Kebakaran.Hutan 
##                                        0.61 
##                         Emisi.Budidaya.Padi 
##                                        0.91 
##  Emisi.Tanah.Organik.Yang.Dikeringkan..Co2. 
##                                        0.61 
##                   Emisi.Pembuatan.Pestisida 
##                                        0.95 
##                  Emisi.Transportasi.Makanan 
##                                        0.88 
##                                 Lahan.Hutan 
##                                        0.72 
##                       Konversi.Hutan.Bersih 
##                                        0.38 
##                         Emisi.Ritel.Makanan 
##                                        0.88 
##       Emisi.Penggunaan.Listrik.Di.Pertanian 
##                                        0.91 
##                       Emisi.Kemasan.Makanan 
##                                        0.76 
##        Emisi.Pupuk.Kandang.Di.Padang.Rumput 
##                                        0.89 
##                       Emisi.Manajemen.Pupuk 
##                                        0.94 
##            Emisi.Kebakaran.Di.Tanah.Organik 
##                                        0.50 
## Emisi.Kebakaran.Di.Hutan.Tropis.Yang.Lembab 
##                                        0.60 
##              Penggunaan.Energi.Di.Pertanian 
##                                        0.94 
##                           Populasi.Pedesaan 
##                                        0.86 
##                                 Emisi.Total 
##                                        0.73
kmo_values <- KMO(r)$MSAi  
kmo_df <- data.frame(Variable = names(kmo_values), KMO = kmo_values)

Variabel dengan KMO <0.5

low_kmo_df <- subset(kmo_df, KMO < 0.5)
print(low_kmo_df)
##                                                          Variable       KMO
## Konversi.Hutan.Bersih                       Konversi.Hutan.Bersih 0.3795242
## Emisi.Kebakaran.Di.Tanah.Organik Emisi.Kebakaran.Di.Tanah.Organik 0.4985072

Terdapat 2 variabel dengan KMO kurang dari 0.5. Hapus variabel secara bertahap mulai dari KMO terkecil (Konversi.Hutan.Bersih)

vars_to_remove <- c("Konversi.Hutan.Bersih")  
data <- data[, !(names(data) %in% vars_to_remove)]

Ulangi cek KMO setelah menghapus var tersebut

r <- cor.shrink(data)
## Estimating optimal shrinkage intensity lambda (correlation matrix): 0.0158
KMO(r)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = r)
## Overall MSA =  0.85
## MSA for each item = 
##                           Emisi.Savanna.Api 
##                                        0.55 
##                       Emisi.Kebakaran.Hutan 
##                                        0.58 
##                         Emisi.Budidaya.Padi 
##                                        0.91 
##  Emisi.Tanah.Organik.Yang.Dikeringkan..Co2. 
##                                        0.59 
##                   Emisi.Pembuatan.Pestisida 
##                                        0.94 
##                  Emisi.Transportasi.Makanan 
##                                        0.86 
##                                 Lahan.Hutan 
##                                        0.87 
##                         Emisi.Ritel.Makanan 
##                                        0.89 
##       Emisi.Penggunaan.Listrik.Di.Pertanian 
##                                        0.92 
##                       Emisi.Kemasan.Makanan 
##                                        0.82 
##        Emisi.Pupuk.Kandang.Di.Padang.Rumput 
##                                        0.78 
##                       Emisi.Manajemen.Pupuk 
##                                        0.93 
##            Emisi.Kebakaran.Di.Tanah.Organik 
##                                        0.62 
## Emisi.Kebakaran.Di.Hutan.Tropis.Yang.Lembab 
##                                        0.54 
##              Penggunaan.Energi.Di.Pertanian 
##                                        0.94 
##                           Populasi.Pedesaan 
##                                        0.85 
##                                 Emisi.Total 
##                                        0.82

Tidak ada variabel dengan KMO kurang dari 0.05 yang menandakan variabel diatas lolos uji KMO untuk analisis PCA dan FA.

2. Bartlett Test

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

Nilai bartlett kurang dari 0.05 yang menandakan lolos uji bartlett untuk analisis PCA dan FA.

C. PCA

PCA Manual

Standarisasi Data

data_scaled <- scale(data)

Matriks Kovarians & Eigenvalues

r <- cov(data_scaled)
pc <- eigen(r)
pc$values
##  [1] 8.76722752 2.43148163 1.65344886 1.32033946 0.69647129 0.47018518
##  [7] 0.40243288 0.36008258 0.25076081 0.19275530 0.15270724 0.10362664
## [13] 0.06141531 0.04973428 0.03564526 0.03106273 0.02062303
pc$vectors
##              [,1]        [,2]         [,3]         [,4]          [,5]
##  [1,] -0.02797358 -0.39852693 -0.251016699  0.165496164  7.608985e-01
##  [2,] -0.04733591 -0.58488069 -0.173613480  0.000739823 -3.052523e-01
##  [3,] -0.27754526  0.02978558 -0.006877263 -0.438229219  9.120765e-03
##  [4,] -0.09296760 -0.19564881  0.639523965 -0.019988650  1.260058e-01
##  [5,] -0.30040247  0.06151261 -0.021921217  0.215060573 -2.814871e-02
##  [6,] -0.26243343  0.01171890  0.127991234  0.435752965 -1.729953e-02
##  [7,]  0.25697257  0.05923872 -0.149878714 -0.244079669  3.497397e-02
##  [8,] -0.27754853  0.06966391  0.061056688  0.370234025 -1.391744e-01
##  [9,] -0.28488348  0.08717181 -0.143251380 -0.293837365  7.279585e-05
## [10,] -0.29152061  0.08999806 -0.075016112  0.003464391 -9.867875e-02
## [11,] -0.27094104 -0.07836664 -0.147071967 -0.030016686  3.465568e-01
## [12,] -0.32566056  0.06623897 -0.031025094 -0.006549926 -1.961842e-02
## [13,] -0.03638427 -0.24105429  0.601702797 -0.265531228  9.516860e-02
## [14,] -0.02700804 -0.58190530 -0.163427628 -0.024952623 -3.803790e-01
## [15,] -0.30551020  0.06545001 -0.012114020  0.063021396 -7.080069e-02
## [16,] -0.28062618  0.05538234 -0.126770991 -0.423297597  3.497615e-02
## [17,] -0.29895470 -0.13169076  0.032301085 -0.076209858 -2.027881e-03
##               [,6]        [,7]         [,8]         [,9]        [,10]
##  [1,]  0.239579992 -0.26334290 -0.103843060  0.119069009 -0.001457862
##  [2,] -0.083370358 -0.11517330  0.007439246  0.031100284  0.037741848
##  [3,] -0.021548971 -0.17278895  0.002633774 -0.035855933 -0.037021814
##  [4,] -0.140026090 -0.35933392 -0.063595792 -0.518370678 -0.181323697
##  [5,]  0.138257565  0.15269463  0.092189985 -0.101869745  0.384116689
##  [6,] -0.093952920 -0.10299042  0.454545724  0.046591587 -0.012641329
##  [7,]  0.519561791 -0.08035278  0.571713619 -0.398496627  0.164059048
##  [8,]  0.204190037 -0.16874938  0.267604679  0.213078229 -0.262677629
##  [9,] -0.100088799 -0.24281972  0.230743828  0.270348574 -0.254528958
## [10,]  0.508999139  0.09311945 -0.410788307  0.005226691 -0.306870617
## [11,] -0.400982621  0.53288461  0.182329053 -0.169199940  0.009068796
## [12,] -0.026706694 -0.14894880 -0.004436914 -0.030206181  0.304259295
## [13,]  0.265342092  0.28395905  0.121103784  0.508219084  0.254116189
## [14,]  0.007671659  0.03630910  0.059014261 -0.056282393  0.031435110
## [15,]  0.091625752 -0.13408164 -0.303725338 -0.169814493  0.537394939
## [16,] -0.117165257 -0.18047981  0.074584805  0.061944022  0.052012414
## [17,]  0.229809395  0.42809673  0.017784244 -0.318318000 -0.334711584
##              [,11]        [,12]        [,13]         [,14]         [,15]
##  [1,]  0.014189257  0.053924907  0.026086695 -0.1027825247  0.0005438393
##  [2,]  0.019102822 -0.103899909  0.072387633  0.6410258305  0.2458428514
##  [3,]  0.094067523  0.691257229  0.063208902  0.0487896704  0.1742951334
##  [4,]  0.139913014 -0.170802826 -0.077909352  0.0027190247  0.0092925361
##  [5,]  0.719913815 -0.072004680  0.120677488 -0.1320044089  0.3004065073
##  [6,] -0.216486756  0.190224134  0.586510241  0.0597088912 -0.2189523485
##  [7,] -0.082185971 -0.089859934 -0.059967130  0.1412219060 -0.0232429150
##  [8,] -0.081599067  0.141299112 -0.644941352  0.0002973941  0.2295698490
##  [9,]  0.009106466 -0.600287470  0.154608753 -0.1916674301  0.1553493406
## [10,]  0.096704888 -0.091338822  0.142046290  0.2548994803 -0.2372896879
## [11,] -0.079086207 -0.071903392 -0.254928516  0.1945314657 -0.0019559293
## [12,]  0.079504480 -0.096437698 -0.270811820  0.1767492528 -0.6829420296
## [13,] -0.066524117 -0.042616690 -0.010354672  0.0442622564 -0.0217363693
## [14,]  0.030455877  0.069586470 -0.094793531 -0.5652276172 -0.2612989582
## [15,] -0.567209728 -0.120272239  0.001487625 -0.1219006459  0.3010787521
## [16,]  0.012272037  0.074749103 -0.009007562 -0.0412073431 -0.0773071170
## [17,] -0.207877821  0.002674948  0.119693661 -0.1625042275  0.0737646729
##             [,16]        [,17]
##  [1,] -0.06695265  0.021929384
##  [2,] -0.12505250  0.079367283
##  [3,] -0.08535186 -0.407673579
##  [4,]  0.13581237 -0.009682154
##  [5,] -0.01893769  0.059550361
##  [6,]  0.13213124  0.006570460
##  [7,]  0.11829531 -0.072929554
##  [8,]  0.03948845  0.070171899
##  [9,] -0.08772430 -0.302305574
## [10,]  0.43447383 -0.113685860
## [11,]  0.34337756 -0.197335420
## [12,] -0.41921478 -0.097010657
## [13,]  0.03609236 -0.017571599
## [14,]  0.24204534 -0.136090410
## [15,]  0.09402471 -0.080329159
## [16,]  0.26885364  0.759950578
## [17,] -0.53819614  0.240049426
eigenvalues <- pc$values
eigenvectors <- pc$vectors

Proporsi Varians dan Kumulatif

library(dplyr)
sumvar <- sum(eigenvalues)
propvar <- (eigenvalues / sumvar) * 100
cumvar <- data.frame(PC = paste0("PC", 1:length(eigenvalues)),
                     Value = eigenvalues,
                     PropVar = propvar)
cumvar <- cumvar %>% mutate(CumVar = cumsum(PropVar))
print(cumvar)
##      PC      Value    PropVar    CumVar
## 1   PC1 8.76722752 51.5719266  51.57193
## 2   PC2 2.43148163 14.3028331  65.87476
## 3   PC3 1.65344886  9.7261697  75.60093
## 4   PC4 1.32033946  7.7667027  83.36763
## 5   PC5 0.69647129  4.0968899  87.46452
## 6   PC6 0.47018518  2.7657951  90.23032
## 7   PC7 0.40243288  2.3672523  92.59757
## 8   PC8 0.36008258  2.1181328  94.71570
## 9   PC9 0.25076081  1.4750636  96.19077
## 10 PC10 0.19275530  1.1338547  97.32462
## 11 PC11 0.15270724  0.8982779  98.22290
## 12 PC12 0.10362664  0.6095685  98.83247
## 13 PC13 0.06141531  0.3612665  99.19373
## 14 PC14 0.04973428  0.2925546  99.48629
## 15 PC15 0.03564526  0.2096780  99.69597
## 16 PC16 0.03106273  0.1827219  99.87869
## 17 PC17 0.02062303  0.1213120 100.00000

Berdasarkan nilai summary di atas, empat komponen utama pertama (PC1 hingga PC4) dipilih untuk digunakan dalam analisis lebih lanjut. Pemilihan ini didasarkan pada nilai varians kumulatif (CumVar) yang mencapai 83.36763% (>80%), yang berarti sebagian besar informasi dalam data masih dapat dipertahankan dengan hanya menggunakan empat komponen utama.

Skor PCA

scores <- as.matrix(data_scaled) %*% eigenvectors
head(scores)
##           [,1]      [,2]        [,3]       [,4]        [,5]       [,6]
## [1,] 0.7156959 0.3884869 -0.04541921 -0.1316273 -0.05147952 0.02578138
## [2,] 0.7107533 0.3883991 -0.04732906 -0.1340982 -0.04886853 0.02237399
## [3,] 0.7081131 0.3890084 -0.04843242 -0.1379302 -0.04889884 0.02200242
## [4,] 0.7073682 0.3891955 -0.04984289 -0.1442377 -0.04808347 0.02002192
## [5,] 0.7018965 0.3894650 -0.05173922 -0.1483515 -0.04617272 0.01721002
## [6,] 0.6957475 0.3893114 -0.05420396 -0.1505389 -0.04267963 0.01257470
##            [,7]       [,8]       [,9]     [,10]      [,11]       [,12]
## [1,] 0.06018130 -0.1329183 0.02628039 0.1322656 -0.1067856 -0.04407515
## [2,] 0.06282722 -0.1310615 0.02525599 0.1332208 -0.1072749 -0.04445851
## [3,] 0.06091900 -0.1308753 0.02591113 0.1335870 -0.1068488 -0.04351222
## [4,] 0.05961766 -0.1320373 0.02528649 0.1358910 -0.1061298 -0.04362289
## [5,] 0.06031164 -0.1301036 0.02492273 0.1364694 -0.1063829 -0.04252063
## [6,] 0.06410552 -0.1273259 0.02372114 0.1377661 -0.1072258 -0.04434108
##            [,13]       [,14]      [,15]      [,16]      [,17]
## [1,] -0.03884122 -0.03519590 0.07486913 0.07278189 0.04284565
## [2,] -0.04253024 -0.03352122 0.07245186 0.07549115 0.04638247
## [3,] -0.04450239 -0.03383118 0.07186818 0.07699000 0.05280429
## [4,] -0.04009387 -0.03437225 0.06931087 0.07870195 0.05978712
## [5,] -0.04280548 -0.03341155 0.06772448 0.08169915 0.06534291
## [6,] -0.04733235 -0.03124937 0.06426067 0.08553045 0.07008799

Semakin tinggi nilai skor PC pada suatu observasi, semakin besar kontribusi observasi tersebut dalam dimensi tersebut. Sebagai contoh, pada observasi 1, nilai skor paling tinggi (0.7156959) ada di PC1 yang menandakan observasi 1 lebih dipengaruhi oleh pola yang ditangkap oleh PC1.

PCA dengan prcomp

pca_result <- prcomp(data_scaled)
summary(pca_result)
## Importance of components:
##                           PC1    PC2     PC3     PC4     PC5     PC6     PC7
## Standard deviation     2.9610 1.5593 1.28587 1.14906 0.83455 0.68570 0.63438
## Proportion of Variance 0.5157 0.1430 0.09726 0.07767 0.04097 0.02766 0.02367
## Cumulative Proportion  0.5157 0.6587 0.75601 0.83368 0.87465 0.90230 0.92598
##                            PC8     PC9    PC10    PC11   PC12    PC13    PC14
## Standard deviation     0.60007 0.50076 0.43904 0.39078 0.3219 0.24782 0.22301
## Proportion of Variance 0.02118 0.01475 0.01134 0.00898 0.0061 0.00361 0.00293
## Cumulative Proportion  0.94716 0.96191 0.97325 0.98223 0.9883 0.99194 0.99486
##                          PC15    PC16    PC17
## Standard deviation     0.1888 0.17625 0.14361
## Proportion of Variance 0.0021 0.00183 0.00121
## Cumulative Proportion  0.9970 0.99879 1.00000

Berdasarkan nilai summary di atas, empat komponen utama pertama (PC1 hingga PC4) dipilih untuk digunakan dalam analisis lebih lanjut. Pemilihan ini didasarkan pada nilai varians kumulatif (Cumulative Proportion) yang mencapai 0.83368 (>0.80), yang berarti sebagian besar informasi dalam data masih dapat dipertahankan dengan hanya menggunakan empat komponen utama.

Visualisasi PCA

Scree Plot

library(factoextra)
fviz_eig(pca_result, addlabels = TRUE, barfill = "skyblue", 
         barcolor = "darkblue", linecolor = "red")

Pada scree plot diatas, terdapat elbow point di sekitar PC4, di mana setelahnya varians yang dijelaskan oleh setiap komponen menurun drastis. Oleh karena itu, jumlah komponen utama yang dapat dipilih untuk mempertahankan informasi yang signifikan adalah empat komponen.

Biplot

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

Biplot diatas menunjukkan hubungan antara variabel dalam dataset yang dibentuk oleh PC1 (Dim1) dan PC2 (Dim2).

  1. Variabel dominan pada Dim1 Variabel seperti Emisi Manajemen Pupuk, Emisi Budidaya Padi, dan Emisi Pembuatan Pestisida memiliki pengaruh besar terhadap PC1. Hal ini menunjukkan bahwa sebagian besar varians dalam dataset dipengaruhi oleh faktor-faktor terkait emisi dari aktivitas pertanian.

  2. Variabel dominan pada Dim2 Emisi Kebakaran Hutan, Emisi Kebakaran Di Hutan Tropis Yang Lembab, dan Emisi Savanna Api memiliki kontribusi lebih besar terhadap PC2. Hal ini menunjukkan bahwa PC2 lebih banyak menjelaskan variabilitas yang berkaitan dengan emisi dari kebakaran hutan.

Correlation Circle

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 diatas menunjukkan sejauh mana masing-masing variabel berkontribusi terhadap dua komponen utama, yaitu PC1 (51.6%) dan PC2 (14.3%).

Pada grafik, arah dan panjang panah menunjukkan kontribusi variabel terhadap komponen utama. Variabel dengan panah yang lebih panjang memiliki kontribusi yang lebih besar, sedangkan variabel yang lebih dekat dengan sumbu Dim1 atau Dim2 menunjukkan hubungan yang lebih kuat dengan komponen tersebut. Selain itu, skala warna pada grafik menunjukkan kontribusi relatif variabel, dengan warna merah/oranye menunjukkan kontribusi tinggi dan warna biru menunjukkan kontribusi rendah.

  1. Variabel berkontribusi tinggi Dim1: Emisi Manajemen Pupuk, Emisi Pembuatan Pestisida, Penggunaan Energi Di Pertanian.
  2. Variabel berkontribusi tinggi Dim2: Emisi Kebakaran Hutan, Emisi Kebakaran di Hutan Tropis yang Lembab.

Contribution Plot untuk PC1 - PC4

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

Variabel yang berada di atas garis batas signifikansi memiliki pengaruh besar terhadap PC. Variabel yang paling berkontribusi terhadap PC1 adalah Emisi Manajemen Pupuk, diikuti oleh Penggunaan Energi di Pertanian dan Emisi Pembuatan Pestisida, yang semuanya memiliki kontribusi sekitar 9% atau lebih.

Karena variabel yang berkontribusi tinggi terkait dengan pertanian (pupuk, energi, pestisida, dan emisi terkait makanan), PC1 kemungkinan besar mewakili dimensi terkait emisi dari pertanian.

plot(contrib_v_PC2)

Variabel yang paling berkontribusi terhadap PC2 adalah Emisi Kebakaran Hutan dan Emisi Kebakaran Di Hutan Tropis Yang Lembab, yang memiliki kontribusi sekitar 33% atau lebih.

Karena variabel yang berkontribusi tinggi terkait dengan kebakaran hutan dan emisi dari ekosistem alami, PC2 kemungkinan besar mewakili dimensi terkait emisi dari kebakaran hutan dan lahan.

plot(contrib_v_PC3)

Variabel yang paling berkontribusi terhadap PC3 adalah Emisi Tanah Organik Yang Dikeringkan (CO₂) dan Emisi Kebakaran di Tanah Organik, yang memiliki kontribusi sekitar 40% atau lebih.

Karena variabel yang berkontribusi tinggi terkait dengan emisi dari tanah organik dan kebakaran, PC3 kemungkinan besar mewakili emisi dari tanah.

plot(contrib_v_PC4)

Variabel yang paling berkontribusi terhadap PC4 adalah Emisi Budidaya Padi dan Emisi Transportasi Makanan, yang memiliki kontribusi sekitar 20% atau lebih.

Karena variabel yang berkontribusi tinggi terkait dengan aktivitas produksi dan distribusi pangan, PC4 kemungkinan besar mewakili emisi dari pangan

D. FA

Hitung eigenvalues dan eigenvectors

r <- cor(data_scaled)  
pc <- eigen(r)

Tampilkan eigenvalues dan persentase kumulatif variansi

pc$values
##  [1] 8.76722752 2.43148163 1.65344886 1.32033946 0.69647129 0.47018518
##  [7] 0.40243288 0.36008258 0.25076081 0.19275530 0.15270724 0.10362664
## [13] 0.06141531 0.04973428 0.03564526 0.03106273 0.02062303
eigen_cumsum <- cumsum(pc$values) / sum(pc$values)
eigen_cumsum
##  [1] 0.5157193 0.6587476 0.7560093 0.8336763 0.8746452 0.9023032 0.9259757
##  [8] 0.9471570 0.9619077 0.9732462 0.9822290 0.9883247 0.9919373 0.9948629
## [15] 0.9969597 0.9987869 1.0000000

Dari hasil kumulatif variansi menunjukkan bahwa pengambilan 4 faktor sudah mewakili 83% data.

Tentukan jumlah faktor yang mencakup setidaknya 80% variansi

num_factors <- which(eigen_cumsum >= 0.8)[1]
num_factors
## [1] 4

Maka dari rekomendasi ini, disarankan untuk mengambil 4 faktor karena sudah mewakili 0.8/ sekitar 80% data.

Menghitung loading matrix untuk faktor yang dipilih

L <- matrix(nrow = nrow(pc$vectors), ncol =4)

for (i in 1:4) { 
  L[,i] <- sqrt(pc$values[i]) * pc$vectors[,i]
}

Menghitung faktor loading menggunakan for loop. Karena PC yang diambil adalah urut(PC 1,PC 2,PC 3, PC 4), maka langsung di definisikan menggunakan (for (i in 1:4)).

Menampilkan loading matrix

L
##              [,1]        [,2]         [,3]          [,4]
##  [1,] -0.08282839 -0.62143136 -0.322773594  0.1901650633
##  [2,] -0.14015928 -0.91201667 -0.223243501  0.0008501012
##  [3,] -0.82179777  0.04644528 -0.008843233 -0.5035517757
##  [4,] -0.27527246 -0.30507927  0.822341498 -0.0229681628
##  [5,] -0.88947681  0.09591789 -0.028187726  0.2471175556
##  [6,] -0.77705237  0.01827353  0.164579451  0.5007064104
##  [7,]  0.76088305  0.09237217 -0.192723797 -0.2804622449
##  [8,] -0.82180744  0.10862839  0.078510659  0.4254212011
##  [9,] -0.84352587  0.13592883 -0.184201939 -0.3376368359
## [10,] -0.86317807  0.14033585 -0.096460594  0.0039807936
## [11,] -0.80224300 -0.12219873 -0.189114699 -0.0344909802
## [12,] -0.96426477  0.10328781 -0.039894083 -0.0075262592
## [13,] -0.10773203 -0.37588099  0.773708580 -0.3051113784
## [14,] -0.07996948 -0.90737709 -0.210145871 -0.0286720674
## [15,] -0.90460056  0.10205756 -0.015576994  0.0724153810
## [16,] -0.83092021  0.08635884 -0.163010383 -0.4863944425
## [17,] -0.88519007 -0.20534815  0.041534835 -0.0875697183

Menampilkan faktor loading untuk 4 faktor terpilih.

Analisis Faktor Tanpa Rotasi

fa_no_rotation <- fa(r = r, 
                     covar = FALSE,  
                     nfactors = 4, 
                     rotate = "none") 

Mengambil factor loadings tanpa rotasi

load_no_rotation_matrix <- as.matrix(fa_no_rotation$loadings)

Visualisasi faktor loadings tanpa rotasi

print(load_no_rotation_matrix)
## 
## Loadings:
##                                             MR1    MR2    MR3    MR4   
## Emisi.Savanna.Api                                   0.453 -0.159 -0.144
## Emisi.Kebakaran.Hutan                        0.141  0.954 -0.222       
## Emisi.Budidaya.Padi                          0.824        -0.112  0.481
## Emisi.Tanah.Organik.Yang.Dikeringkan..Co2.   0.272  0.284  0.786  0.227
## Emisi.Pembuatan.Pestisida                    0.883               -0.250
## Emisi.Transportasi.Makanan                   0.770         0.262 -0.426
## Lahan.Hutan                                 -0.735        -0.210  0.177
## Emisi.Ritel.Makanan                          0.815 -0.102  0.160 -0.388
## Emisi.Penggunaan.Listrik.Di.Pertanian        0.837 -0.123 -0.242  0.254
## Emisi.Kemasan.Makanan                        0.846 -0.125              
## Emisi.Pupuk.Kandang.Di.Padang.Rumput         0.776  0.103 -0.149       
## Emisi.Manajemen.Pupuk                        0.968                     
## Emisi.Kebakaran.Di.Tanah.Organik             0.103  0.321  0.583  0.379
## Emisi.Kebakaran.Di.Hutan.Tropis.Yang.Lembab         0.904 -0.202       
## Penggunaan.Energi.Di.Pertanian               0.894                     
## Populasi.Pedesaan                            0.839        -0.276  0.449
## Emisi.Total                                  0.874  0.200              
## 
##                  MR1   MR2   MR3   MR4
## SS loadings    8.597 2.248 1.391 1.161
## Proportion Var 0.506 0.132 0.082 0.068
## Cumulative Var 0.506 0.638 0.720 0.788
plot(load_no_rotation_matrix[,1:2], type="n") # set up plot
text(load_no_rotation_matrix[,1:2], labels=colnames(data), cex=.7)

Dalam visualisasi ini, dapat disimpulkan bahwa persebaran data tidak terlihat dengan jelas karena banyak variabel variabel yang menumpuk di dalam 1 posisi yang sama. Maka dari itu, perlu dilakukan rotasi untuk mendapatkan hasil yang lebih baik.

Diagram faktor tanpa rotasi

fa.diagram(fa_no_rotation)

MR1 terlalu banyak berhubungan dengan banyak variabel, sementara MR4 tidak memiliki hubungan dengan variabel mana pun, sehingga perlu dilakukan rotasi.

Analisis Faktor Dengan Rotasi

fa_rotated <- fa(r = r, 
                 covar = FALSE,  
                 nfactors = 4, 
                 rotate = "varimax")

Mengambil factor loadings setelah rotasi

load_rotated_matrix <- as.matrix(fa_rotated$loadings)

Menampilkan hasil loading dengan rotasi

print(load_rotated_matrix)
## 
## Loadings:
##                                             MR1    MR4    MR2    MR3   
## Emisi.Savanna.Api                                          0.501       
## Emisi.Kebakaran.Hutan                                      0.985  0.104
## Emisi.Budidaya.Padi                          0.275  0.903         0.183
## Emisi.Tanah.Organik.Yang.Dikeringkan..Co2.   0.232                0.878
## Emisi.Pembuatan.Pestisida                    0.816  0.428              
## Emisi.Transportasi.Makanan                   0.899  0.146         0.117
## Lahan.Hutan                                 -0.695 -0.293 -0.101 -0.207
## Emisi.Ritel.Makanan                          0.889  0.245              
## Emisi.Penggunaan.Listrik.Di.Pertanian        0.402  0.822              
## Emisi.Kemasan.Makanan                        0.633  0.581              
## Emisi.Pupuk.Kandang.Di.Padang.Rumput         0.529  0.561  0.203       
## Emisi.Manajemen.Pupuk                        0.715  0.661              
## Emisi.Kebakaran.Di.Tanah.Organik                                  0.764
## Emisi.Kebakaran.Di.Hutan.Tropis.Yang.Lembab                0.922  0.112
## Penggunaan.Energi.Di.Pertanian               0.712  0.554              
## Populasi.Pedesaan                            0.269  0.957              
## Emisi.Total                                  0.589  0.601  0.237  0.212
## 
##                  MR1   MR4   MR2   MR3
## SS loadings    5.164 4.525 2.188 1.521
## Proportion Var 0.304 0.266 0.129 0.089
## Cumulative Var 0.304 0.570 0.699 0.788
factor_names <- c("Emisi Pangan", 
                  "Emisi Pertanian", 
                  "Emisi Kebakaran", 
                  "Emisi Tanah")

Mengubah nama faktor dalam objek hasil analisis

colnames(fa_rotated$loadings) <- factor_names

Visualisasi faktor setelah rotasi

plot(load_rotated_matrix[,1:2], type ="n")  # Set up plot
text(load_rotated_matrix[,1:2], labels=colnames(data), cex=.7)

Dari visualisasi ini, dapat dilihat bahwa ada beberapa variabel yang tidak berada di 1 posisi yang sama, pola persebaran data terlihat agak sedikit jelas daripada yang tanpa menggunakan rotasi.

Diagram faktor setelah rotasi

fa.diagram(fa_rotated, main = "Factor Analysis", labels = factor_names)

Analisis faktor setelah rotasi mengidentifikasi empat faktor utama yang membentuk hubungan antar variabel dengan faktor loading yang tinggi. Selain itu, terdapat hubungan negatif antara luas lahan hutan dengan faktor pertama, menunjukkan bahwa peningkatan emisi dari produksi makanan berkorelasi dengan berkurangnya luas hutan.

  1. Faktor 1 (Emisi Pangan) memiliki variabel “Emisi Transportasi Makanan”,“Emisi Ritel Makanan”,“Emisi Pembuatan Pestisida”,“Emisi Manajemen Pupuk”,“Penggunaan Energi Di Pertanian”,“Lahan Hutan”, dan “Emisi kemasan makanan”. Namun, pada variabel lahan hutan, memiliki nilai negatif dan garis merah putus putus yang berarti faktor ini memiliki hubungan terbalik dengan luas hutan.

  2. Faktor 2 (Emisi Pertanian) memiliki variabel “Populasi Pedesaan”,“Emisi Budidaya Padi”,“Emisi Penggunaan Listrik Di Pertanian”,“Emisi total”, dan “Emisi Pupuk Kandang Di Padang Rumput”

  3. Faktor 3 (Emisi Kebakaran) memiliki variabel “Emisi Kebakaran Di Hutan Tropis Yang Lembab”,“Emisi Kebakaran Hutan”, dan “Emisi Savanna Api”

  4. Faktor 4 (Emisi Tanah) memiliki variabel “Emisi Tanah Organik Yang Dikeringkan Co2”, dan “Emisi Kebakaran Di Tanah Organik”

BAB 4 Kesimpulan

Hasil analisis Principal Component Analysis (PCA) dan Factor Analysis (FA) menunjukkan bahwa tidak semua variabel dalam dataset memiliki kontribusi yang signifikan terhadap pola utama dalam data.

PCA berhasil mereduksi dimensi data menjadi empat komponen utama yang sudah cukup menjelaskan variansi data sebesar 83%. Dengan reduksi dimensi ini, PCA membantu menyederhanakan kompleksitas data tanpa kehilangan terlalu banyak informasi, memungkinkan analisis yang lebih efisien.

FA berhasil mengidentifikasi beberapa faktor utama yang mewakili pola tersembunyi dalam data emisi CO₂ sektor agri-pangan. Dengan reduksi dimensi ini, FA membantu menyederhanakan kompleksitas data dan mengungkap struktur laten yang mendasari hubungan antar variabel.

Daftar Pustaka

[1] IPCC, Climate Change 2001: The Scientific Basis. Contribution of Working Group I to the Third Assessment Report of the Intergovernmental Panel on Climate Change. Cambridge, United Kingdom & New York, USA: Cambridge University Press, 2001.

[2] FAO, “The share of agri-food systems in total greenhouse gas emissions,” 2021.

[3] F. N. Tubiello et al., “Pre- and post-production processes increasingly dominate greenhouse gas emissions from agri-food systems,” Apr. 14, 2022, Copernicus Publications. doi: 10.5194/essd-14-1795-2022.

[4] G. Enzellina and D. Suhaedi, “Penggunaan Metode Principal Component Analysis dalam Menentukan Faktor Dominan,” Jurnal Riset Matematika, pp. 101–110, Dec. 2022, doi: 10.29313/jrm.v2i2.1192.

[5] Purwanto, “ANALISIS FAKTOR: KONSEP, PROSEDUR UJI DAN INTERPRETASI,” Dec. 2004.