#Load Library

##Upload Data

Df = read_excel("C:/Users/LEONOVOLOQ/Downloads/Data_Sosial_Ekonomi_Jatim_2021_2023.xlsx")
head(Df)
## # A tibble: 6 × 7
##   Tahun Bulan    `Kota/Kabupaten` `Harga Beras (Rp/kg)` Harga Cabai Merah (Rp/…¹
##   <dbl> <chr>    <chr>                            <dbl>                    <dbl>
## 1  2021 January  Surabaya                          9835                    70344
## 2  2021 February Surabaya                         10561                    66055
## 3  2021 March    Surabaya                          9954                    28795
## 4  2021 April    Surabaya                         10471                    38820
## 5  2021 May      Surabaya                         10455                    37771
## 6  2021 June     Surabaya                          9981                    62924
## # ℹ abbreviated name: ¹​`Harga Cabai Merah (Rp/kg)`
## # ℹ 2 more variables: `Curah Hujan (mm/bulan)` <dbl>,
## #   `Tingkat Inflasi (%)` <dbl>
summary(Df)
##      Tahun         Bulan           Kota/Kabupaten     Harga Beras (Rp/kg)
##  Min.   :2021   Length:360         Length:360         Min.   : 9648      
##  1st Qu.:2021   Class :character   Class :character   1st Qu.:10504      
##  Median :2022   Mode  :character   Mode  :character   Median :11435      
##  Mean   :2022                                         Mean   :11456      
##  3rd Qu.:2023                                         3rd Qu.:12390      
##  Max.   :2023                                         Max.   :13330      
##  Harga Cabai Merah (Rp/kg) Curah Hujan (mm/bulan) Tingkat Inflasi (%)
##  Min.   :25307             Min.   :  0.0          Min.   :1.800      
##  1st Qu.:34616             1st Qu.: 60.0          1st Qu.:2.465      
##  Median :41819             Median :165.5          Median :3.265      
##  Mean   :47057             Mean   :191.6          Mean   :3.447      
##  3rd Qu.:60714             3rd Qu.:312.0          3rd Qu.:4.130      
##  Max.   :81426             Max.   :499.0          Max.   :6.450

#Visualisasi BoxPlot

#Harga Beras
Statistik_Beras = Df %>%
  group_by(`Kota/Kabupaten`) %>%
  summarise(
    Mean_Beras = mean(`Harga Beras (Rp/kg)`, na.rm = TRUE),
    SD_Beras = sd(`Harga Beras (Rp/kg)`, na.rm = TRUE),
    Min_Beras = min(`Harga Beras (Rp/kg)`, na.rm = TRUE),
    Max_Beras = max(`Harga Beras (Rp/kg)`, na.rm = TRUE)
  )
Statistik_Beras
## # A tibble: 10 × 5
##    `Kota/Kabupaten` Mean_Beras SD_Beras Min_Beras Max_Beras
##    <chr>                 <dbl>    <dbl>     <dbl>     <dbl>
##  1 Banyuwangi           11402.    1024.      9648     13028
##  2 Jember               11481.    1113.      9699     13085
##  3 Kediri               11513.    1125.      9784     13330
##  4 Madiun               11384.     897.      9880     13104
##  5 Malang               11457.     988.      9853     12848
##  6 Mojokerto            11528.    1068.      9961     13183
##  7 Pasuruan             11485.    1021.      9928     13281
##  8 Probolinggo          11423.    1031.      9654     13085
##  9 Surabaya             11421.    1034.      9835     13305
## 10 Tuban                11465.    1074.      9723     13291
#Harga Cabai
Statistik_Cabai = Df %>%
  group_by(`Kota/Kabupaten`) %>%
  summarise(
    Mean_Beras = mean(`Harga Cabai Merah (Rp/kg)`, na.rm = TRUE),
    SD_Beras = sd(`Harga Cabai Merah (Rp/kg)`, na.rm = TRUE),
    Min_Beras = min(`Harga Cabai Merah (Rp/kg)`, na.rm = TRUE),
    Max_Beras = max(`Harga Cabai Merah (Rp/kg)`, na.rm = TRUE)
  )
Statistik_Cabai
## # A tibble: 10 × 5
##    `Kota/Kabupaten` Mean_Beras SD_Beras Min_Beras Max_Beras
##    <chr>                 <dbl>    <dbl>     <dbl>     <dbl>
##  1 Banyuwangi           48494.   16731.     27407     79098
##  2 Jember               46177.   16753.     26247     76911
##  3 Kediri               45781.   15006.     29004     80916
##  4 Madiun               47484.   16625.     25307     81426
##  5 Malang               48102.   15272.     30184     80027
##  6 Mojokerto            46976.   14656.     25349     79413
##  7 Pasuruan             46833.   15626.     25639     80080
##  8 Probolinggo          47332.   16800.     28227     77197
##  9 Surabaya             47635.   14582.     28795     81260
## 10 Tuban                45754.   16139.     25510     79195
#Boxplot Harga Cabai Merah 
ggplot(data = Df) + geom_boxplot(mapping = aes(x = `Kota/Kabupaten` , y = `Harga Cabai Merah (Rp/kg)`, fill = `Kota/Kabupaten`))

Dapat dilihat pada box plot dan hasil harga cabai dapat ditarik kesimpulan bahwa fluktuasi harga cabai tertinggi adalah Probolinggo dikarenakan memiliki Stdev trtinggi, sedangkan wilayah dengan rata - rata cabai tertinggi adalah Banyuwangi sebesar 48.494, sedangkan wilayah dengan harga cabai tertinggi adalah Kediri, Madiun, dan Surabaya harga mencapai lebh dari 80 ribu.

#Visualisasi Time Series dan Identifikasi Trend Dua Kota

Df$Tanggal <- as.Date(
  paste(Df$Tahun, Df$Bulan, "1"),
  format = "%Y %B %d"
)
Df <- na.omit(Df)
# Filter 2 kota
Data_2Kota <- Df %>%
  filter(`Kota/Kabupaten`
         %in% c("Surabaya","Malang"))
#Time Series Beras
# Time Series Cabai
ggplot(Data_2Kota,
       aes(x = Tanggal,
           y = `Harga Cabai Merah (Rp/kg)`,
           color = `Kota/Kabupaten`)) +
  geom_line(linewidth = 1) +
  scale_x_date(
    date_labels = "%b %Y"
  ) +
  labs(
    title = "Multiple Time Series Harga Cabai",
    x = "Periode",
    y = "Harga Cabai"
  ) +
  theme_minimal()

#Time Series Beras
  ggplot(Data_2Kota,
         aes(x = Tanggal,
             y = `Harga Beras (Rp/kg)`,
             color = `Kota/Kabupaten`)) +
  geom_line(size = 1) +
  scale_x_date(
    date_labels = "%b %Y"
  ) +
  
  labs(
    title = "Multiple Time Series Harga Beras",
    x = "Periode",
    y = "Harga Beras"
  ) +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Berdasarkan Grafik Time Series Harga Beras dari Kota Surabaya dan Malang keduanya menunjukan tren kenaikan yang lebih stabil dibandingkan harga cabai. Sementara, Harga Cabai cenderung fluktuatif dan mirip antara kedua kota dan ada pola seasonal dimana harga akan cenderung melonjak pada Bulan Januari.

#Identifikasi Korelasi Harga Cabai terhadap Inflasi dan Tingkat Curah Hujan

#Harga Cabai vs Inflasi
xyplot( `Harga Cabai Merah (Rp/kg)` ~ `Tingkat Inflasi (%)`| `Kota/Kabupaten`, Df, main ="Harga Cabai vs Inflasi ", ylab = "Harga Cabai", xlab = "Tingkat Inflasi", 
       panel = function(x,y){panel.xyplot(x,y);
         panel.lmline(x,y,col= "red");panel.abline(v = 100, col = "green")})

#Harga Cabai vs Curah Hujan
xyplot( `Harga Cabai Merah (Rp/kg)` ~ `Curah Hujan (mm/bulan)`| `Kota/Kabupaten`, Df, main ="Harga Cabai vs Curah Hujan ", ylab = "Harga Cabai", xlab = "Curah Hujan", 
        panel = function(x,y){panel.xyplot(x,y);
          panel.lmline(x,y,col= "red");panel.abline(v = 100, col = "green")})

Berdasarkan Hasil Plot curah hujan diatas dapat diambil kesimpulan bahwa kenaikan curah hujan garis regresinya berpengaruh signifikan terhadap kenaikan harga cabai karena beberapa plot harga cabai tampak naik ketika searah garis regresi tetapi hal ini juga dilemahkan oleh persebaran data yang cukup luas. Sementara untuk tingkat inflasi hanya berpengaruh terhadap beberapa wilayah saja, Kota - kota besar seperti Surabaya bahkan garis regresinya cenderung turun yang artinya korelasi negatif. Sedangkan, yang benar - benar berpengaruh signifikan hanya terjadi pada wilayah seperti Jember dan Tuban. Sisanya cenderung turun atau korelasi negatif.

#Visualisasi Persebaran Harga Cabai Pada Wilayah di Jawa Timur

#Rata-Rata Harga
Rata_Harga = Df %>%
  filter(Tahun == 2023) %>%
  group_by(`Kota/Kabupaten`) %>%
  summarise(
    rata_harga =
      mean(`Harga Beras (Rp/kg)`,
           na.rm = TRUE)
  )
# Import shapefile
geo = st_read("C:/Users/LEONOVOLOQ/Downloads/[geosai.my.id]Jawa_Timur_Kab/Jawa_Timur_ADMIN_BPS.shp")
## Reading layer `Jawa_Timur_ADMIN_BPS' from data source 
##   `C:\Users\LEONOVOLOQ\Downloads\[geosai.my.id]Jawa_Timur_Kab\Jawa_Timur_ADMIN_BPS.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 38 features and 6 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 110.8987 ymin: -8.78036 xmax: 116.2702 ymax: -5.048857
## Geodetic CRS:  WGS 84
# Menggabungkan data
geo[,8] = Df[,4]
## Warning in `[<-.data.frame`(`*tmp*`, , 8, value = structure(list(`Harga Beras
## (Rp/kg)` = c(9835, : replacement element 1 has 360 rows to replace 38 rows
# Peta map
ggplot(data = geo) +
  geom_sf(
    aes(fill =`Harga Beras (Rp/kg)`)
  ) +
  scale_fill_viridis_c(
    option = "inferno", direction = -1

  ) +
  theme_void() +
  labs(
    title = "Peta Rata-rata Harga Beras Jawa Timur"
  )

Berdasarkan hasil Visual Map Rata-Rata Harga Beras di Jawa Timur Wilayah dengan rata-rata harga beras tertinggi antara lain Jember, Banyuwangi, dan Pacitan. Sementara beberapa wilayah dengan rata rata harga beras terendah antara lain Surabaya, Bangkalan, dan Blitar. Perbedaan ini menunjukkan bahwa Harga Beras juga dipengaruhi oleh faktor distribusi antar wilayah yang belum merata.