1 1. Background

Pada era globalisasi seperti sekarang ini yang disertai perkembangan teknologi di segala bidang khususnya di bidang bisnis, menuntut suatu perusahaan untuk selalu meningkatkan produktivitas dan efisiensi dalam menjalankan aktivitas usaha. Tuntutan dalam dunia usaha tersebut bersifat mutlak bagi perusahaan yang tetap ingin eksis dan beroperasi di lingkungan bisnis yang tidak menentu seperti sekarang ini. Perkembangan teknologi menjadi salah satu faktor meningkatnya produksi emisi. Terutama pemanfaatan teknologi pada kegiatan industri. Gas rumah kaca (GRK) adalah gas yang menyebabkan atmosfer menghangat dengan cara menyerap dan memancarkan energi radiasi. Gas rumah kaca menyerap radiasi yang dipancarkan oleh Bumi, sehingga mencegah panas tersebut keluar ke luar angkasa. Karbon dioksida (CO2) adalah gas rumah kaca yang paling terkenal, tetapi ada gas rumah kaca lainnya termasuk metana, dinitrogen oksida dan lainnya. Emisi gas rumah kaca yang dihasilkan manusia dari bahan bakar fosil, industri, dan pertanian adalah penyebab utama perubahan iklim global. Emisi gas rumah kaca mengukur jumlah total semua gas rumah kaca yang dikeluarkan. Hal ini sering diukur dalam karbon dioksida ekuivalen (CO2eq) yang memperhitungkan jumlah pemanasan yang dihasilkan oleh setiap molekul gas yang berbeda. Bukan hanya industri industri yang disebutkan diatas industri makanan juga menjadi salah satu penyebab perubahan iklim global. Emisi dari sistem pangan berdasarkan siklus hidupnya mulai dari penggunaan lahan, produksi di pertanian hingga limbah konsumen sekarang ini belum terlalu memperhatikan pencapaian emisi dari analisa tahapan proses pangan sehingga diperlukan model prediksi klasifikasi untuk melihat hasil prediksi tahapan proses industri pangan berdasarkan tingkat emisinya.

2 2. Problem Statement

Berbagai metode riset digunakan untuk menganalisis keberlanjutan sistem pangan seperti penilaian siklus hidup (lingkungan) (LCA), Metode klastering multivariat juga merupakan pendekatan umum untuk mengevalusi keberlanjutan sistem produksi pangan dalam hal efisiensi energi dan emisi GRK. Analisis klaster pangan memungkinkan analisa mengkategorikan dan mengelompokkan produksi emisi yang dikeluarkan dari life cycle sistem produksi pangan sehingga dapat mengetahui titik kritis dalam suatu sistem life cycle .

3 3. Project Idea

Project ini melibatkan pembangunan model machine learning khususnya menggunakan model prediksi klasifikasi untuk memprediksi kondisi emisi pada life cycle setiap produksi pangan. Model ini akan dilatih menggunakan dataset yang berisi berbagai pada masing masing variabel. Dengan informasi yang telah diperoleh, diharapkan dapat membantu sebuah bisnis untuk melakukan peluang perbaikan pada tahapan life cyclen food system, serta secara khusus dapat memberikan saran kepada pemerintah untuk memantain pada tahapan life cycle mana yang perlu diberikan perhatian khusus sehingga hasil prediksi yang diperoleh dapat menjadikan target atau baseline pengukuran emisi pada industri pangan dari tahapan penyiapan lahan hingga limbah konsumen agar dapat mempersiapkan strategy penurunan emisinya.

4 4. Problem Scope

Pada project ini akan digunakan sebuah dataset dari situ our world data dengan judul Global emissions from food by life-cycle stage, Total GHGs. Dataset ini mengandung informasi sebagai berikut: - Entity : Gas GRK yang ada di alam seperti CO2, CH4, N2O dan total GHGs lain - Code : Kode Negara - Year : Tahun GHG tersebut - End.of.Life.food.emissions: Emisi Green House Gas dari Agriculture - Food.consumption.emissions: Emisi Green House Gas dari Penggunaan Lahan dan Kehutanan - Food.retail.emissions :Emisi Green House Gas dari Limbah - Food.packaging.emissions : Emisi Green House Gas dari Gedung - Food.transport.emissions :Emisi Green House Gas dari Industri - Food.processing.emissions: Emisi Green House Gas dari Manufacturingh and Construction - Agricultural.production.emissions : Emisi Green House Gas dari Transportasi - Land.use.change.emissions : Emisi Green House Gas dari pembakaran lainnya

Dataset komprehensif ini memberikan informasi beragam mengenai emisi dari berbagai tahapan life cycle industri pangan.

5 5. Output

Output dari project ini berupa : 1. Dashboard visualisasi yang membantu memahami tren GHG emission yang ada pada food life cycle. 2. Dashboard yang menampilkan hasil clustering dan PCA berdasarkan tingkatannya. 3. Project ini akan memberikan insight mengenai faktor faktor signifikan yang mempengaruhi berdasarkan fitur fitur yang diambil dari model. 4. Prediksi dari hasil emisi untuk menentukan target yang ingin dicapai dari sektor pangan dari setiap tahapan life cycle

6 6. Bussines Impact

Impact yang dirasakan Analisis Clastering dan Prediksi pada industri makanan ini adalah melihat peluang untuk meningkatkan kinerja lingkungan dari suatu life cycle food system

7 7. Exploratory Data Analysis

7.1 7.1 Import

Melakukan import library

# Data wrangling & Preparation
library(dplyr)     # data wrangling
library(lubridate) # date manipulation
library(tidyr)     # Tools to help to create tidy data
library(padr)      # complete data frame
library(zoo)       # **missing value** imputation


# Data Visualization
library(ggplot2) # untuk visualisasi
library(ggfortify)
library(GGally)

# Time Series & Model Evaluation
library(forecast)  # time series library
library(TTR)       # for Simple moving average function
library(tseries)   # adf.test
library(fpp)       # data for forecasting: principles and practice
library(MLmetrics) # calculate error

#PCA
library(factoextra)
library(FactoMineR)

library(ggpubr) # untuk export plot
library(scales) # untuk custom keterangan axis atau lainnya
library(glue) # untuk custom informasi saat plot interaktif
library(plotly) # untuk membuat plot menjadi interaktif

7.2 7.2 Read Data

Pertama kita akan Membaca Data

food <- read.csv("data_input/food-emissions-life-cycle.csv")
head(food)

Penjelasan setiap kolom : - Entity : Gas GRK yang ada di alam seperti CO2, CH4, N2O dan total GHGs lain - Code : Kode Negara - Year : Tahun GHG tersebut - End.of.Life.food.emissions: Emisi Green House Gas dari Agriculture - Food.consumption.emissions: Emisi Green House Gas dari Penggunaan Lahan dan Kehutanan - Food.retail.emissions :Emisi Green House Gas dari Limbah - Food.packaging.emissions : Emisi Green House Gas dari Gedung - Food.transport.emissions :Emisi Green House Gas dari Industri - Food.processing.emissions: Emisi Green House Gas dari Manufacturingh and Construction - Agricultural.production.emissions : Emisi Green House Gas dari Transportasi - Land.use.change.emissions : Emisi Green House Gas dari pembakaran lainnya

7.3 7.3 Data Structure

Pengecekan struktur data

glimpse(food)
#> Rows: 104
#> Columns: 11
#> $ Entity                            <chr> "CH4", "CH4", "CH4", "CH4", "CH4", "…
#> $ Code                              <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ Year                              <int> 1990, 1991, 1992, 1993, 1994, 1995, …
#> $ End.of.Life.food.emissions        <dbl> 1069483267, 1090021796, 1106765990, …
#> $ Food.consumption.emissions        <dbl> 99442389, 97493585, 95212398, 942618…
#> $ Food.retail.emissions             <dbl> 13111423, 13235989, 12903565, 130716…
#> $ Food.packaging.emissions          <dbl> 38704166, 38700782, 37611906, 375245…
#> $ Food.transport.emissions          <dbl> 66381381, 68479008, 71484296, 737943…
#> $ Food.processing.emissions         <dbl> 84220026, 82753241, 83493743, 843538…
#> $ Agricultural.production.emissions <dbl> 4027276756, 4010636524, 4001005236, …
#> $ Land.use.change.emissions         <dbl> 1069483267, 1090021796, 1106765990, …

7.4 7.4 Check Missing Value

Melakukan pengecekan nilai yang hilang, pada data ini terdapat 104 nilai hilang pada kolom Code sehingga kita perlu melakukan drop kolom Code.

colSums(is.na(food))
#>                            Entity                              Code 
#>                                 0                               104 
#>                              Year        End.of.Life.food.emissions 
#>                                 0                                 0 
#>        Food.consumption.emissions             Food.retail.emissions 
#>                                 0                                 0 
#>          Food.packaging.emissions          Food.transport.emissions 
#>                                 0                                 0 
#>         Food.processing.emissions Agricultural.production.emissions 
#>                                 0                                 0 
#>         Land.use.change.emissions 
#>                                 0

7.5 7.5 Data Preprocessing

pertama kita akan menghapus kolom code dan year, kolom year untuk data visualisasi dan kita akan melakukan pengubahan tipe data menjadi factor

food_clean <- food %>%
  select(-c(Code,Year)) %>% 
  mutate_if(is.character, as.factor)
food_clean

Analisis komponen prinsip (PCA) digunakan dalam analisis data eksplorasi dan untuk membuat model prediktif. Ini adalah metode reduksi dimensi yang digunakan untuk mereduksi dimensi kumpulan data besar menjadi lebih kecil sehingga mudah dianalisis dan divisualisasikan. Meskipun dimensinya dikurangi, sebagian besar informasi masih tersimpan dalam kumpulan data.

pertama kita akan mengubah kolom numerik menjadi kolom numerik dan kolom kategorik menjadi faktor dan dijadikan nama kolom.

# nama kolom numerik (quantitative)
quanti <- food_clean %>% 
  select_if(is.numeric) %>% 
  colnames()

# indeks kolom numerik
quantivar <- which(colnames(food_clean) %in% quanti)

# nama kolom kategorik (qualitative)
quali <- food_clean %>% 
  select_if(is.factor) %>% 
  colnames()

# indeks kolom kategorik
qualivar <- which(colnames(food_clean) %in% quali)

setelah itu mengambil hanya kolom numerik

food_num <- food_clean %>% 
  select_if(is.numeric)

data memiliki skala perbedaan, kita perlu menskalakan data terlebih dahulu. Skala yang digunakan dalam hal ini adalah Z Score (mean = 0, standar deviasi = 1)

food_scale <- scale(food_num)

kita akan melakukan cek ulang struktur data

glimpse(food_num)
#> Rows: 104
#> Columns: 8
#> $ End.of.Life.food.emissions        <dbl> 1069483267, 1090021796, 1106765990, …
#> $ Food.consumption.emissions        <dbl> 99442389, 97493585, 95212398, 942618…
#> $ Food.retail.emissions             <dbl> 13111423, 13235989, 12903565, 130716…
#> $ Food.packaging.emissions          <dbl> 38704166, 38700782, 37611906, 375245…
#> $ Food.transport.emissions          <dbl> 66381381, 68479008, 71484296, 737943…
#> $ Food.processing.emissions         <dbl> 84220026, 82753241, 83493743, 843538…
#> $ Agricultural.production.emissions <dbl> 4027276756, 4010636524, 4001005236, …
#> $ Land.use.change.emissions         <dbl> 1069483267, 1090021796, 1106765990, …

kami menggunakan metode PCA() untuk mengubah kumpulan data guna menemukan dan mempertahankan emisi yang paling penting.

pca_food <- PCA(X = food_clean,
                  scale.unit = T,
                  quali.sup = qualivar,
                  graph = F)
pca_food$eig
#>          eigenvalue percentage of variance cumulative percentage of variance
#> comp 1 5.9092038978           73.865048723                          73.86505
#> comp 2 1.7612346799           22.015433498                          95.88048
#> comp 3 0.2276228246            2.845285308                          98.72577
#> comp 4 0.0608225058            0.760281322                          99.48605
#> comp 5 0.0346997592            0.433746990                          99.91980
#> comp 6 0.0044871510            0.056089388                          99.97589
#> comp 7 0.0014410446            0.018013058                          99.99390
#> comp 8 0.0004881371            0.006101713                         100.00000
summary(pca_food)
#> 
#> Call:
#> PCA(X = food_clean, scale.unit = T, quali.sup = qualivar, graph = F) 
#> 
#> 
#> Eigenvalues
#>                        Dim.1   Dim.2   Dim.3   Dim.4   Dim.5   Dim.6   Dim.7
#> Variance               5.909   1.761   0.228   0.061   0.035   0.004   0.001
#> % of var.             73.865  22.015   2.845   0.760   0.434   0.056   0.018
#> Cumulative % of var.  73.865  95.880  98.726  99.486  99.920  99.976  99.994
#>                        Dim.8
#> Variance               0.000
#> % of var.              0.006
#> Cumulative % of var. 100.000
#> 
#> Individuals (the 10 first)
#>                                       Dist    Dim.1    ctr   cos2    Dim.2
#> 1                                 |  2.147 | -1.767  0.508  0.677 |  1.203
#> 2                                 |  2.158 | -1.767  0.508  0.670 |  1.220
#> 3                                 |  2.165 | -1.764  0.507  0.664 |  1.233
#> 4                                 |  2.166 | -1.760  0.504  0.660 |  1.239
#> 5                                 |  2.172 | -1.752  0.499  0.651 |  1.257
#> 6                                 |  2.165 | -1.733  0.489  0.641 |  1.269
#> 7                                 |  2.180 | -1.742  0.494  0.638 |  1.281
#> 8                                 |  2.175 | -1.737  0.491  0.638 |  1.274
#> 9                                 |  2.225 | -1.789  0.521  0.647 |  1.286
#> 10                                |  2.230 | -1.783  0.517  0.639 |  1.302
#>                                      ctr   cos2    Dim.3    ctr   cos2  
#> 1                                  0.790  0.314 |  0.157  0.104  0.005 |
#> 2                                  0.812  0.319 |  0.167  0.118  0.006 |
#> 3                                  0.831  0.325 |  0.177  0.132  0.007 |
#> 4                                  0.838  0.327 |  0.186  0.146  0.007 |
#> 5                                  0.863  0.335 |  0.192  0.156  0.008 |
#> 6                                  0.880  0.344 |  0.197  0.164  0.008 |
#> 7                                  0.895  0.345 |  0.196  0.162  0.008 |
#> 8                                  0.887  0.343 |  0.206  0.180  0.009 |
#> 9                                  0.903  0.334 |  0.206  0.178  0.009 |
#> 10                                 0.925  0.341 |  0.211  0.189  0.009 |
#> 
#> Variables
#>                                      Dim.1    ctr   cos2    Dim.2    ctr   cos2
#> End.of.Life.food.emissions        |  0.342  1.977  0.117 |  0.924 48.470  0.854
#> Food.consumption.emissions        |  0.991 16.622  0.982 | -0.048  0.133  0.002
#> Food.retail.emissions             |  0.941 14.975  0.885 |  0.056  0.178  0.003
#> Food.packaging.emissions          |  0.957 15.502  0.916 | -0.253  3.644  0.064
#> Food.transport.emissions          |  0.970 15.932  0.941 | -0.231  3.031  0.053
#> Food.processing.emissions         |  0.995 16.767  0.991 | -0.059  0.200  0.004
#> Agricultural.production.emissions |  0.518  4.537  0.268 |  0.845 40.550  0.714
#> Land.use.change.emissions         |  0.899 13.688  0.809 | -0.258  3.794  0.067
#>                                      Dim.3    ctr   cos2  
#> End.of.Life.food.emissions        |  0.096  4.073  0.009 |
#> Food.consumption.emissions        |  0.037  0.590  0.001 |
#> Food.retail.emissions             | -0.311 42.619  0.097 |
#> Food.packaging.emissions          | -0.078  2.643  0.006 |
#> Food.transport.emissions          |  0.005  0.009  0.000 |
#> Food.processing.emissions         | -0.009  0.035  0.000 |
#> Agricultural.production.emissions | -0.002  0.002  0.000 |
#> Land.use.change.emissions         |  0.337 50.029  0.114 |
#> 
#> Supplementary categories
#>                                       Dist    Dim.1   cos2 v.test    Dim.2
#> CH4                               |  2.213 | -1.682  0.578 -4.054 |  1.397
#> CO2                               |  2.311 |  1.232  0.284  2.970 | -1.938
#> N2O                               |  2.862 | -2.785  0.947 -6.713 | -0.485
#> Total GHGs                        |  3.399 |  3.235  0.906  7.798 |  1.026
#>                                     cos2 v.test    Dim.3   cos2 v.test  
#> CH4                                0.398  6.168 |  0.233  0.011  2.865 |
#> CO2                                0.703 -8.555 |  0.213  0.008  2.612 |
#> N2O                                0.029 -2.143 | -0.394  0.019 -4.836 |
#> Total GHGs                         0.091  4.530 | -0.052  0.000 -0.641 |

Pada summary hasil PCA diatas kita akan mempertahan Cumulative % of var.sebanyak 99,9% informasi sehingga kita menggunakan Dim1 sampai dengan Dim5

plot.PCA(x = pca_food,  # objek pca
         choix = "var")

Dari plot PCA diatas kita dapat melihat :

  • Variabel yang berkontribusi paling tinggi terhadap PC1 adalah food processing, food consumption, food packaging, food transport

  • Variabel yang berkontribusi paling tinggi terhadap PC2 adalah agricultural production, end of life

  • Variabel yang berkorelasi positif satu dengan yang lain: food processing, food consumption.

7.6 7.6 Data Visualization

Visualisasi berikut menunjukan grafik pada setiap kolom dari tahun ke tahun

  1. Grafik End Of Life Emission
foodemsii <- food %>% 
  filter(Entity == "CO2") %>% 
  group_by(Year) %>% 
  summarise(sum_food = sum(End.of.Life.food.emissions)) %>% 
  ungroup() %>% 
mutate(
    label1 = glue("Year = {Year}
                  CO2 End OF Life Emission = {comma(sum_food, accuracy = 0.01)}
                  "))

# Visualisasi plot statis
plot1 <- ggplot(foodemsii, 
                aes(x = Year, 
                    y = sum_food  ))+
  geom_line(col = "red") +
  geom_point(aes(text = label1), col="black") +
  scale_y_continuous(labels = comma) +
  labs(
    title = "Emisi CO2 End Of Life Emission",
    x = "Year",
    y = "Jumlah Emisi Makanan End Of Life "
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) 

# Visualisasi plot interaktif
ggplotly(plot1, tooltip = "text")

Pada grafik ditas end of life food emisi menunjukan tren yang cenderung naik

  1. Grafik Food Consumption
foodemisii <- food %>% 
  filter(Entity == "CO2") %>% 
  group_by(Year) %>% 
  summarise(sum_food = sum(Food.consumption.emissions)) %>% 
  ungroup() %>% 
mutate(
    label2 = glue("Year = {Year}
                  CO2 Food Consumption Emission = {comma(sum_food, accuracy = 0.01)}
                  "))

# Visualisasi plot statis
plot2 <- ggplot(foodemisii, 
                aes(x = Year, 
                    y = sum_food  ))+
  geom_line(col = "red") +
  geom_point(aes(text = label2), col="black") +
  scale_y_continuous(labels = comma) +
  labs(
    title = "Emisi CO2 Food Consumption",
    x = "Year",
    y = "Jumlah Emisi Makanan Yang di Konsumsi "
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) 

# Visualisasi plot interaktif
ggplotly(plot2, tooltip = "text")

Pada grafik ditas Food Consumption emisi menunjukan tren yang cenderung naik

  1. Grafik Food Retail Emissions
foodemisi <- food %>% 
  filter(Entity == "CO2") %>% 
  group_by(Year) %>% 
  summarise(sum_food = sum(Food.retail.emissions)) %>% 
  ungroup() %>% 
mutate(
    label3 = glue("Year = {Year}
                  CO2 Food Retail Emissions = {comma(sum_food, accuracy = 0.01)}
                  "))

# Visualisasi plot statis
plot3 <- ggplot(foodemisi, 
                aes(x = Year, 
                    y = sum_food  ))+
  geom_line(col = "red") +
  geom_point(aes(text = label3), col="black") +
  scale_y_continuous(labels = comma) +
  labs(
    title = "Emisi CO2 Food Retail",
    x = "Year",
    y = "Jumlah Emisi Makanan Retail "
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) 

# Visualisasi plot interaktif
ggplotly(plot3, tooltip = "text")

Pada grafik ditas Food Retail emisi menunjukan tren yang cenderung naik

  1. Grafik Food Packaging Emission
foodemisi <- food %>% 
  filter(Entity == "CO2") %>% 
  group_by(Year) %>% 
  summarise(sum_food = sum(Food.packaging.emissions)) %>% 
  ungroup() %>% 
mutate(
    label4 = glue("Year = {Year}
                  CO2 Food packaging emissions = {comma(sum_food, accuracy = 0.01)}
                  "))

# Visualisasi plot statis
plot4 <- ggplot(foodemisi, 
                aes(x = Year, 
                    y = sum_food  ))+
  geom_line(col = "red") +
  geom_point(aes(text = label4), col="black") +
  scale_y_continuous(labels = comma) +
  labs(
    title = "Emisi CO2 Food Packaging",
    x = "Year",
    y = "Jumlah Emisi Makanan Kemasan "
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) 

# Visualisasi plot interaktif
ggplotly(plot4, tooltip = "text")

Pada grafik ditas Food Packaging emisi menunjukan tren yang cenderung naik

  1. Grafik Food Transport Emisi
foodemisi <- food %>% 
  filter(Entity == "CO2") %>% 
  group_by(Year) %>% 
  summarise(sum_food = sum(Food.transport.emissions)) %>% 
  ungroup() %>% 
mutate(
    label5 = glue("Year = {Year}
                  CO2 Food Transport Emissions = {comma(sum_food, accuracy = 0.01)}
                  "))

# Visualisasi plot statis
plot5 <- ggplot(foodemisi, 
                aes(x = Year, 
                    y = sum_food  ))+
  geom_line(col = "red") +
  geom_point(aes(text = label5), col="black") +
  scale_y_continuous(labels = comma) +
  labs(
    title = "Emisi CO2 Food Transport",
    x = "Year",
    y = "Jumlah Emisi Transport Makanan "
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) 

# Visualisasi plot interaktif
ggplotly(plot5, tooltip = "text")

Dari hasil diatas menunjukan emisi CO2 pada food transport tren yang cenderung naik.

  1. Grafik Food Processing Emisi
foodemisi1 <- food %>% 
  filter(Entity == "CO2") %>% 
  group_by(Year) %>% 
  summarise(sum_food = sum(Food.processing.emissions)) %>% 
  ungroup() %>% 
mutate(
    label6 = glue("Year = {Year}
                  CO2 Food Processing Emissions = {comma(sum_food, accuracy = 0.01)}
                  "))

# Visualisasi plot statis
plot6 <- ggplot(foodemisi1, 
                aes(x = Year, 
                    y = sum_food  ))+
  geom_line(col = "red") +
  geom_point(aes(text = label6), col="black") +
  scale_y_continuous(labels = comma) +
  labs(
    title = "Emisi CO2 Food Processing",
    x = "Year",
    y = "Jumlah Emisi Makanan Proses "
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) 

# Visualisasi plot interaktif
ggplotly(plot6, tooltip = "text")

Dari hasil diatas menunjukan emisi CO2 pada food transport tren yang cenderung naik.

  1. Grafik Agricultural Emission
foodemisi2 <- food %>% 
  filter(Entity == "CO2") %>% 
  group_by(Year) %>% 
  summarise(sum_food = sum(Agricultural.production.emissions)) %>% 
  ungroup() %>% 
mutate(
    label7 = glue("Year = {Year}
                  CO2 Agricultural.production.emissions = {comma(sum_food, accuracy = 0.01)}
                  "))

# Visualisasi plot statis
plot7 <- ggplot(foodemisi2, 
                aes(x = Year, 
                    y = sum_food  ))+
  geom_line(col = "red") +
  geom_point(aes(text = label7), col="black") +
  scale_y_continuous(labels = comma) +
  labs(
    title = "Emisi CO2 Agricultural Production",
    x = "Year",
    y = "Jumlah Emisi Agrikultur "
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) 

# Visualisasi plot interaktif
ggplotly(plot7, tooltip = "text")

dari hasil grafik line diatas menunjukan emisi CO2 pada agricultural production yang cenderung naik

  1. Grafik Emisi Land Use Change Emisi
foodemisi3 <- food %>% 
  filter(Entity == "CO2") %>% 
  group_by(Year) %>% 
  summarise(sum_food = sum(Land.use.change.emissions)) %>% 
  ungroup() %>% 
mutate(
    label8 = glue("Year = {Year}
                  CO2 Land.use.change.emissions = {comma(sum_food, accuracy = 0.01)}
                  "))

# Visualisasi plot statis
plot8 <- ggplot(foodemisi3, 
                aes(x = Year, 
                    y = sum_food  ))+
  geom_line(col = "red") +
  geom_point(aes(text = label8), col="black") +
  scale_y_continuous(labels = comma) +
  labs(
    title = "Emisi CO2 Penggunaan Lahan",
    x = "Year",
    y = "Jumlah Emisi Agrikultur "
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) 

# Visualisasi plot interaktif
ggplotly(plot8, tooltip = "text")

pada hasil emisi CO2 penggunaan lahan menunjukan tren yang menurun dari tahun 1990 sampai dengan 2015.

kita juga memplot varian komponen utama untuk mendapatkan nilai komponen utama yang optimal.

plot.PCA(
  x = pca_food,   # objek pca        
  choix = "ind",  # individual factor map
  select = "contrib 3",   # show outlier sebanyak 5
)

Untuk menyimpan setidaknya 99% informasi kami, kami menggunakan komp 1-komp 5. fviz_contrib: fungsi factoextra untuk menunjukkan urutan kontribusi variabel ke PC.

fviz_contrib(pca_food, choice = "var", axes = 1)

Kontribusi emisi masing masing tahapan lilfe cycle sistem food adalah :

  1. Food Precessing emissions
  2. Food Consumptions emissions
  3. Food Transport emissions
  4. Food Packaging emisions
  5. Food Retail emision
  6. Land Use Change emissions
  7. Agricultural Production Emissions
  8. End Of Life Food Emissions

K - Mean Clustering Pengelompokan K-Means adalah algoritma berulang yang mencoba mempartisi kumpulan data menjadi K subkelompok (kluster) berbeda, yang tidak tumpang tindih yang telah ditentukan sebelumnya di mana setiap titik data hanya dimiliki oleh satu grup. Ini menetapkan titik data ke sebuah cluster sedemikian rupa sehingga jumlah jarak kuadrat antara titik data dan pusat massa cluster berada pada minimum. Semakin sedikit variasi yang kita miliki dalam cluster, semakin banyak titik data yang homogen (serupa) dalam cluster yang sama.

RNGkind(sample.kind = "Rounding")
kmeansTunning <- function(data, maxK) {
  withinall <- NULL
  total_k <- NULL
  for (i in 1:maxK) {
    set.seed(4)
    temp <- kmeans(data,i)$tot.withinss
    withinall <- append(withinall, temp)
    total_k <- append(total_k,i)
  }
  plot(x = total_k, y = withinall, type = "o", xlab = "Number of Cluster", ylab = "Total within")
}

# apply function
kmeansTunning(food_scale, maxK = 5)

kita coba mengambil K = 3 dan mencoba mengaplikasikan pada K-mean clustering

RNGkind(sample.kind = "Rounding")
set.seed(101)
# your code here
food_cluster <-  kmeans(x = food_scale, centers = 3)
data.frame(food_cluster$centers)
foodclus <- as.data.frame(food_cluster$cluster)
foodclus
food_clean$cluster <- food_cluster$cluster
food_clean
library(ggiraphExtra)

ggRadar(data=food_clean, 
        aes(colour=cluster), 
        interactive=TRUE)

Terdapat tingkatan emisi in each cluster :

  • cluster 1 : emisi tingkat tinggi dengan pada tahapan dari penyiapan lahan, agrikultural, proses pembuatan makanan, distribusi makanan

  • cluster 2 : emisi tingkat sedang dengan pada tahapan dari agrikultural, tahapan akhir menjadi limbah, proses pembuatan makanan, tranport makanan,pengemasan makanan, konsumsi makanan

  • cluster 3 : emisi tingkat rendah pada tahapan agrikultural, penyiapan lahan, tahapan akhir menjadi limbah

#8. Referensi https://edgar.jrc.ec.europa.eu/

https://ourworldindata.org/emissions-by-sector

https://ourworldindata.org/grapher/food-emissions-life-cycle