Data1 <- read.csv(file.choose(), header=TRUE)
head(Data1)
## EXPEND KALORI_KAP R301
## 1 4964433 2365.173 4
## 2 1633881 2611.639 2
## 3 3812219 2526.510 3
## 4 12083333 3655.855 7
## 5 51152307 2330.988 3
## 6 14672860 2330.760 2
Data2 <- read.csv(file.choose(), header = TRUE)
head(Data2)
## X EXPEND KALORI_KAP PROTE_KAP LEMAK_KAP KARBO_KAP WERT WEIND
## 1 NA 4964433 2365.173 67.13024 43.22239 352.9857 454.889101 1819.55641
## 2 NA 1633881 2611.639 69.09189 30.11824 471.9977 172.376821 344.75364
## 3 NA 3812219 2526.510 68.74262 58.51762 360.4562 241.578661 724.73598
## 4 NA 12083333 3655.855 141.50262 119.46043 454.9395 93.673563 655.71494
## 5 NA 51152307 2330.988 78.53335 53.14161 254.8461 122.217556 366.65267
## 6 NA 14672860 2330.760 68.15351 60.91893 317.6763 7.638085 15.27617
Data3 <- read.csv(file.choose(), header = TRUE)
head(Data3)
## Tahun Produksi_GKG Produksi_Beras Konsumsi_Beras_Perkapita Jumlah_Penduduk
## 1 1993 48129321 30812391 111.58 190851184
## 2 1994 46598380 29832283 111.58 193917458
## 3 1995 49697444 31816304 111.58 196934257
## 4 1996 51048899 32681505 111.58 199901231
## 5 1997 49339086 31586883 111.58 202826444
## 6 1998 49236692 31521330 111.58 205724597
## Total_Konsumsi_Beras
## 1 21295175
## 2 21637310
## 3 21973924
## 4 22304979
## 5 22631375
## 6 22954751
Data4 <- read.csv(file.choose(), header = TRUE)
head(Data4)
## Country Region Happiness.Rank Happiness.Score Standard.Error
## 1 Switzerland Western Europe 1 7.587 0.03411
## 2 Iceland Western Europe 2 7.561 0.04884
## 3 Denmark Western Europe 3 7.527 0.03328
## 4 Norway Western Europe 4 7.522 0.03880
## 5 Canada North America 5 7.427 0.03553
## 6 Finland Western Europe 6 7.406 0.03140
## Economy..GDP.per.Capita. Family Health..Life.Expectancy. Freedom
## 1 1.39651 1.34951 0.94143 0.66557
## 2 1.30232 1.40223 0.94784 0.62877
## 3 1.32548 1.36058 0.87464 0.64938
## 4 1.45900 1.33095 0.88521 0.66973
## 5 1.32629 1.32261 0.90563 0.63297
## 6 1.29025 1.31826 0.88911 0.64169
## Trust..Government.Corruption. Generosity Dystopia.Residual
## 1 0.41978 0.29678 2.51738
## 2 0.14145 0.43630 2.70201
## 3 0.48357 0.34139 2.49204
## 4 0.36503 0.34699 2.46531
## 5 0.32957 0.45811 2.45176
## 6 0.41372 0.23351 2.61955
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.3.3
##
## Attaching package: 'reshape2'
##
## The following object is masked from 'package:tidyr':
##
## smiths
library(ggplot2)
library(tseries)
## Warning: package 'tseries' was built under R version 4.3.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(ggforce)
## Warning: package 'ggforce' was built under R version 4.3.3
library(sf)
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(psych)
## Warning: package 'psych' was built under R version 4.3.3
##
## Attaching package: 'psych'
##
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(sf)
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.3.3
##
## Attaching package: 'gridExtra'
##
## The following object is masked from 'package:dplyr':
##
## combine
library(ggspatial)
## Warning: package 'ggspatial' was built under R version 4.3.3
library(rnaturalearth)
## Warning: package 'rnaturalearth' was built under R version 4.3.3
library(rnaturalearthdata)
## Warning: package 'rnaturalearthdata' was built under R version 4.3.3
##
## Attaching package: 'rnaturalearthdata'
##
## The following object is masked from 'package:rnaturalearth':
##
## countries110
#KORELASI (Visualisasi antar peubah numerik)- ScatterPlot- DataSusenasJabar23
ggplot(Data1, aes(x = KALORI_KAP, y = EXPEND )) +
geom_point() +
labs(title = "Korelasi Kalori per Kapita dan Pengeluaran Konsumsi", x = "Kalori per kapita", y = "Pengeluaran Konsumsi") +
theme_classic()
Visualisasi ini menunjukkan hubungan antara kalori per kapita (kal)
dengan pengeluaran konsumsi masyarakat dalam satuan rupiah. Interpretasi
dari visualisasi awal scatterplot ini menunjukkan bahwa : 1. Pada
distribusi kalori per kapita bahwa sebagian besar data terdistribusi
antara 1000 hingga 3000 kalori per kapita 2. Ada sedikit data yang
menunjukkan konsumsi kalori di atas 3.000 kalori per kapita. Hubungan:
1. Hubungan tidak terlihat adanya pola yang jelas atau korelasi kuat
antara kalori per kapita dengan pengeluaran konsumsi. Pengeluaran
cenderung tersebar acak di berbagai level kalori. 2. Beberapa
pengeluaran konsumsi yang tinggi terjadi pada tingkat kalori yang
beragam baik rendah maupun tinggi.
Data1$kategori_DesaKota <- ifelse(Data1$R301 >= 4, "≥ 4", "≤ 4")
ggplot(Data1, aes(x = KALORI_KAP, y = EXPEND, color = factor(kategori_DesaKota))) +
geom_point() +
scale_color_manual(values = c("#074173", "#FFC700")) +
labs(title = "Korelasi Kalori Per Kapita dan Pengeluaran Konsumsi Masyarakat",
x = "Kalori Per Kapita (Kal)", y = "Pengeluaran Konsumsi(Rp)", color = "Jumlah anggota keluarga") +
theme_minimal()
ggplot(Data1, aes(x = KALORI_KAP, y = EXPEND, color = factor(kategori_DesaKota))) +
geom_point() +
scale_color_manual(values = c("#074173", "#FFC700")) +
labs(title = "Korelasi Pengeluaran dan Kalori Per anggota Keluarga", x = "Kalori(Kal)", y = "Pengeluaran konsumsi(Rp)", color = "Jumlah anggota keluarga") +
facet_wrap(~ kategori_DesaKota) +
theme_minimal()
Interpretasi:
Dari visualisasi ini terdapat dua interpretasi yang dapaat ditentukan yaitu : Perbandingan berdasarkan Jumlah Anggota Keluarga: 1. Titik-titik berwarna kuning (keluarga dengan anggota ≥ 4) cenderung lebih banyak tersebar, terutama pada tingkat kalori menengah (sekitar 1500-2500 kalori) dan pengeluaran rendah hingga menengah. 2. Titik-titik berwarna biru (keluarga dengan anggota ≤ 4) cenderung lebih terkonsentrasi di sekitar kalori per kapita yang lebih rendah (sekitar 1000-2000 kalori), dengan beberapa outlier pada pengeluaran tinggi.
Outlier: 1. Beberapa outlier menunjukkan pengeluaran konsumsi yang sangat tinggi (>2e+08) pada kalori per kapita yang beragam, menunjukkan bahwa ada beberapa keluarga yang mengeluarkan banyak uang untuk konsumsi meskipun jumlah kalori yang dikonsumsi tidak terlalu tinggi atau sebaliknya.
#KORELASI- HeatMap (Data susenasJawaBarat)
library(ggcorrplot)
## Warning: package 'ggcorrplot' was built under R version 4.3.3
data_numerik <- select_if(Data2, is.numeric)
str(data_numerik)
## 'data.frame': 25890 obs. of 7 variables:
## $ EXPEND : num 4964433 1633881 3812219 12083333 51152307 ...
## $ KALORI_KAP: num 2365 2612 2527 3656 2331 ...
## $ PROTE_KAP : num 67.1 69.1 68.7 141.5 78.5 ...
## $ LEMAK_KAP : num 43.2 30.1 58.5 119.5 53.1 ...
## $ KARBO_KAP : num 353 472 360 455 255 ...
## $ WERT : num 454.9 172.4 241.6 93.7 122.2 ...
## $ WEIND : num 1820 345 725 656 367 ...
data_melt <- cor(data_numerik[sapply(data_numerik,is.numeric)])
data_melt <- melt(data_melt)
ggplot(data_melt, aes(x = Var1, y = Var2, fill = value)) +
geom_tile() +
labs(title = "Correlation Heatmap",
x = "Variable 1",
y = "Variable 2")
ggplot(data_melt, aes(Var1, Var2, fill = value)) +
geom_tile(color = "white") +
scale_fill_gradient2(low = "#32012F", mid = "white", high = "#F97300", midpoint = 0, limits = c(-1,1), name="Korelasi") +
labs(title = "Corellogram") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))
Interpretasi:
Dari Hasil corellogram yang dibuat dapat diinterpretasikan beberapa hal terutama dalam hal korelasi yaitu sebagai berikut: Korelasi yang Paling Menonjol: KARBO_KAP dengan KALORI_KAP memiliki Korelasi positif yang sangat kuat (mendekati 1). Ini menunjukkan bahwa konsumsi karbohidrat berkorelasi sangat erat dengan total kalori per kapita. LEMAK_KAP dengan KALORI_KAP memiliki Korelasi positif yang kuat. Lemak juga berkontribusi signifikan terhadap total kalori. PROTE_KAP dengan KALORI_KAP MemilikiKorelasi positif yang cukup kuat. Protein juga berkontribusi terhadap total kalori, meskipun tidak sekuat karbohidrat dan lemak.
Korelasi Pengeluaran (EXPND): EXPND dengan KALORI_KAP, PROTE_KAP, LEMAK_KAP, KARBO_KAP: Korelasi positif yang moderat hingga kuat. Pengeluaran berkorelasi dengan konsumsi kalori, protein, lemak, dan karbohidrat, menunjukkan bahwa peningkatan pengeluaran biasanya terkait dengan peningkatan asupan nutrisi. EXPND dengan WERT dan WEIND: Korelasi positif, tetapi lebih lemah dibandingkan dengan korelasi dengan variabel gizi.
#Visualisasi untuk time series- DataKetahananPangan Beras Indonesia (1993-2018)
generate_random_walk <- function(n, start = 0, sd = 1) {
steps <- rnorm(n, mean = 0, sd = sd)
walk <- cumsum(steps) + start
return(walk)
}
# Create the time series data using random walk
set.seed(123)
dates <- seq(as.Date("2020-01-01"), by = "month", length.out = 600)
values <- generate_random_walk(600, start = 100, sd = 10)
time_series_data <- Data3
scale_x_continuous(breaks=unique(time_series_data$Tahun))
## <ScaleContinuousPosition>
## Range:
## Limits: 0 -- 1
ggplot(time_series_data, aes(x = Tahun, y = Produksi_Beras)) +
geom_point() +
labs(title = "Scatter Plot Produksi Beras Indonesia ",
x = "Tahun",
y = "Produksi (Ton)")
ggplot(time_series_data, aes(x = Tahun, y = Produksi_Beras)) +
geom_point() + # Add points
geom_line() + # Connect points with lines
labs(title = "Scatter Plot Produksi Beras Indonesia",
x = "Tahun",
y = "Produksi (Ton)")
ggplot(time_series_data, aes(x = Tahun, y = Produksi_Beras)) +
geom_line() +
labs(title = "Rice Production Time Series Plot",
x = "Years",
y = "Production (Ton)")
calculate_moving_average <- function(Data3, window_size) {
ma_values <- zoo::rollmean(Data3$Produksi_GKG, k = window_size, align = "right", fill = NA)
return(ma_values)
}
window_size <- 2
time_series_data$ma <- calculate_moving_average(time_series_data, window_size)
# Create the plot
ggplot(time_series_data, aes(x = Tahun)) +
geom_line(aes(y = Produksi_GKG), color = "white", size = 1) +
geom_line(aes(y = ma), color = "#FF5F00", linetype = "dashed", size = 1) + # emulusan
geom_ribbon(aes(ymin = -Inf, ymax = ma), fill = "#002379", alpha = 0.3) + # Area under curve
labs(title = paste("Data time series produksi beras", window_size, ")"),
x = "Tahun",
y = "Produksi Beras (Ton)") +
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.
## Warning: Removed 1 row containing missing values (`geom_line()`).
Interpretasi:
Dari hasil viuasualisai time series dari data produksi beras (ton) dalam kurun waktu 1993-2018 menunjukkan bahwa secara keseluruhan, terlihat adanya peningkatan produksi beras selama periode tahun per tahun walaupun terjadinya beberapa fluktuasi keil di awal periode tahun 1993 sampai awal tahun 2000, tetapi tren secara umum dapat dikatakana adanya peningkatan yang stabil dan konsisten. Dalam atribute yang dipakai pada visualisai memiliki penanda yaitu : 1. Pada area di bawah garis produksi beras diarsir dengan warna biru, memberikan visualisasi volume produksi secara keseluruhan 2. Garis tren produksi beras berwarna oranye dengan pola garis putus-putus, yang membantu menekankan tren naik dari waktu ke waktu.
#Visualisasi Data Spasial `
dataworld <- map_data("world")
Pada visualisasi ini saya mengambil data set yang tersedia gratis oleh github yaitu tingkat skor kebahagiaan yang dimiliki masing-masing negara. Disini saya akan menampilkan visualisasi geospasial berdasarkan masing-masing negara dengan acuan data world.
Data5 <- Data4[,c(1,4)]
colnames(Data5)<- c("region", "happiness_score")
head(Data5)
## region happiness_score
## 1 Switzerland 7.587
## 2 Iceland 7.561
## 3 Denmark 7.527
## 4 Norway 7.522
## 5 Canada 7.427
## 6 Finland 7.406
#memfilter data berdasarkan Hapiness score serta menggabungkan dataworld dengan data5 sehingga akan terlihat titik koordinat dan oordinat.
DataHP <- left_join(dataworld, Data5, by="region")
DataLast <- DataHP %>% filter(!is.na(DataHP$happiness_score))
head(DataLast)
## long lat group order region subregion happiness_score
## 1 74.89131 37.23164 2 12 Afghanistan <NA> 3.575
## 2 74.84023 37.22505 2 13 Afghanistan <NA> 3.575
## 3 74.76738 37.24917 2 14 Afghanistan <NA> 3.575
## 4 74.73896 37.28564 2 15 Afghanistan <NA> 3.575
## 5 74.72666 37.29072 2 16 Afghanistan <NA> 3.575
## 6 74.66895 37.26670 2 17 Afghanistan <NA> 3.575
#Visualisasi
ggplot(DataLast, aes( x = long, y = lat, group=group)) +
geom_polygon(aes(fill = happiness_score), color = "black")+
scale_fill_gradient(name = "% happiness score", low = "#E6FF94", high = "#006769", na.value = "#40A578")+
theme(axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank(),
axis.title.y=element_blank(),
axis.title.x=element_blank(),
rect = element_blank())
Interpretasi:
interpretasi dari hasil visualisasi geospasial:
Dari hasil visualisasi dapat kita melihat secara lebih mudah terkait persebaran tingkat kebahagiaan di beberapa negara di seluruh dunia. indikator warna menjadi acuan dalam menilai skor kebahagiaan masing-masing negara dimana semakin gelap warna yang didapat di suatu negara maka memiliki tingkat kebahagiaan yang tinggi hingga pada skore 7% dan sebaliknya semakin muda dan terang warna yang didapat maka tingkat kebahagiaan itu menunjukkan skor yang rendah hingga 3%. atau secara spesifik sebagai berikut:
Dari sini maka dapat dilihat sebagai berikut: 1. Amerika utara memiliki skor kebahagiaan yang tinggi terutama pada negara Kanada dengan warna hijau gelap. 2. Afrika Sub Sahara dan beberapa bagian Asia Selatan menunjukkan skor kebahagiaan yang lebih rendah , dengan banyak negara didalamnya berwarna hijau terang.
Dua point tersebut dapat disimpulkan bahwa negara-negara di kawasan yang umunya dianggap lebih berkembang dan dengan standar hidup yang lebih tinggi cenderung memiliki skor kebahagiaan yang lebih tinggi seperti Eropa utara, Amerika Utara, dan Australia. Begitu juga sebaliknya, negara-negara di kawasan yang mungkin mengalami tantangan ekonomi dan sosial yang lebih besar menunjukkan skor kebahagiaan yang lebih rendah.