Dokumen ini menyajikan analisis korelasi antara parameter geofisika dengan kejadian longsor menggunakan metode Spearman dan Kendall Tau.
# Load required libraries
library(corrplot)
# Set random seed untuk reprodusibilitas
set.seed(123)
data <- data.frame(
Subdistrict = c("Banjarmangu", "Pagetan", "Pejawaran", "Watumalang",
"Wanayasa", "Kalibening", "Batur", "Karangkobar", "Kejajar"),
Total_Events = c(5, 5, 3, 5, 4, 2, 1, 0, 0),
Max_Ao = c(4.0, 7.5, 7.5, 7.5, 7.5, 4.0, 7.5, 5.0, 4.0),
Median_Fo = c(2.25, 1.75, 2.50, 2.25, 1.75, 1.35, 1.75, 4.00, 3.50),
Avg_Residual = c(-4.5, -7.0, -0.5, -5.5, 5.0, 7.5, 6.0, 1.0, 4.5),
Rank_Ao = c(2, 7, 7, 7, 7, 2, 7, 4, 2),
Rank_1_Fo = c(8, 6, 3, 4, 6, 9, 6, 1, 2),
Rank_Neg_Res = c(7, 9, 6, 8, 3, 1, 2, 5, 4),
GSI = c(17, 22, 16, 19, 16, 12, 15, 10, 8)
)
print(data)
## Subdistrict Total_Events Max_Ao Median_Fo Avg_Residual Rank_Ao Rank_1_Fo
## 1 Banjarmangu 5 4.0 2.25 -4.5 2 8
## 2 Pagetan 5 7.5 1.75 -7.0 7 6
## 3 Pejawaran 3 7.5 2.50 -0.5 7 3
## 4 Watumalang 5 7.5 2.25 -5.5 7 4
## 5 Wanayasa 4 7.5 1.75 5.0 7 6
## 6 Kalibening 2 4.0 1.35 7.5 2 9
## 7 Batur 1 7.5 1.75 6.0 7 6
## 8 Karangkobar 0 5.0 4.00 1.0 4 1
## 9 Kejajar 0 4.0 3.50 4.5 2 2
## Rank_Neg_Res GSI
## 1 7 17
## 2 9 22
## 3 6 16
## 4 8 19
## 5 3 16
## 6 1 12
## 7 2 15
## 8 5 10
## 9 4 8
Ranking dilakukan untuk setiap parameter geofisika dengan metode average ranking untuk nilai yang sama (tied ranks).
cat("============================================================================\n")
## ============================================================================
cat("PERHITUNGAN RANKING UNTUK GSI\n")
## PERHITUNGAN RANKING UNTUK GSI
cat("============================================================================\n\n")
## ============================================================================
# Tampilkan tabel ranking
ranking_table <- data.frame(
Subdistrict = data$Subdistrict,
Max_Ao = data$Max_Ao,
Rank_Ao = data$Rank_Ao,
Median_Fo = data$Median_Fo,
Rank_1_Fo = data$Rank_1_Fo,
Avg_Residual = data$Avg_Residual,
Rank_Neg_Res = data$Rank_Neg_Res,
GSI = data$GSI
)
print(ranking_table)
## Subdistrict Max_Ao Rank_Ao Median_Fo Rank_1_Fo Avg_Residual Rank_Neg_Res GSI
## 1 Banjarmangu 4.0 2 2.25 8 -4.5 7 17
## 2 Pagetan 7.5 7 1.75 6 -7.0 9 22
## 3 Pejawaran 7.5 7 2.50 3 -0.5 6 16
## 4 Watumalang 7.5 7 2.25 4 -5.5 8 19
## 5 Wanayasa 7.5 7 1.75 6 5.0 3 16
## 6 Kalibening 4.0 2 1.35 9 7.5 1 12
## 7 Batur 7.5 7 1.75 6 6.0 2 15
## 8 Karangkobar 5.0 4 4.00 1 1.0 5 10
## 9 Kejajar 4.0 2 3.50 2 4.5 4 8
cat("\n")
cat("Formula GSI:\n")
## Formula GSI:
cat("GSI = Rank(A₀) + Rank(1/F₀) + Rank(-Residual Gravity)\n\n")
## GSI = Rank(A₀) + Rank(1/F₀) + Rank(-Residual Gravity)
cat("Contoh Perhitungan:\n")
## Contoh Perhitungan:
cat("Banjarmangu: GSI = 2 + 8 + 7 = 17\n")
## Banjarmangu: GSI = 2 + 8 + 7 = 17
cat("Pagetan: GSI = 7 + 6 + 9 = 22\n")
## Pagetan: GSI = 7 + 6 + 9 = 22
cat("Pejawaran: GSI = 7 + 3 + 6 = 16\n\n")
## Pejawaran: GSI = 7 + 3 + 6 = 16
cat("Interpretasi:\n")
## Interpretasi:
cat("- GSI tinggi (>18) → Kerentanan longsor TINGGI\n")
## - GSI tinggi (>18) → Kerentanan longsor TINGGI
cat("- GSI sedang (12-18) → Kerentanan longsor SEDANG\n")
## - GSI sedang (12-18) → Kerentanan longsor SEDANG
cat("- GSI rendah (<12) → Kerentanan longsor RENDAH\n\n")
## - GSI rendah (<12) → Kerentanan longsor RENDAH
Hipotesis Nol (H₀): Tidak ada hubungan yang signifikan antara parameter geofisika (Max A₀, Median F₀, Residual Gravity Anomaly, dan GSI) dengan kejadian longsor (ρ = 0).
Hipotesis Alternatif (H₁):
Max A₀: Ada korelasi positif signifikan antara amplitudo spektral maksimum dengan kejadian longsor (ρ > 0). Semakin tinggi amplifikasi, semakin tinggi kerentanan longsor.
Median F₀: Ada korelasi negatif signifikan antara frekuensi dominan dengan kejadian longsor (ρ < 0). Semakin rendah frekuensi (sedimen tebal), semakin tinggi kerentanan longsor.
Residual Gravity Anomaly: Ada korelasi negatif signifikan antara anomali gravitasi residual dengan kejadian longsor (ρ < 0). Semakin rendah densitas material, semakin tinggi kerentanan longsor.
GSI: Ada korelasi positif signifikan antara Geophysical Susceptibility Index dengan kejadian longsor (ρ > 0). Semakin tinggi GSI, semakin tinggi kerentanan longsor.
Tingkat Signifikansi: α = 0.05
cat("============================================================================\n")
## ============================================================================
cat("HASIL UJI KORELASI SPEARMAN\n")
## HASIL UJI KORELASI SPEARMAN
cat("============================================================================\n\n")
## ============================================================================
# Korelasi Max A₀
test_ao <- cor.test(data$Total_Events, data$Max_Ao,
method = "spearman", exact = FALSE)
# Korelasi Median F₀
test_fo <- cor.test(data$Total_Events, data$Median_Fo,
method = "spearman", exact = FALSE)
# Korelasi Residual Gravity
test_res <- cor.test(data$Total_Events, data$Avg_Residual,
method = "spearman", exact = FALSE)
# Korelasi GSI
test_gsi <- cor.test(data$Total_Events, data$GSI,
method = "spearman", exact = FALSE)
library(knitr)
library(kableExtra)
# Buat tabel detail untuk setiap parameter
detail_results <- data.frame(
Parameter = c("Max A₀", "Median F₀", "Residual Gravity Anomaly",
"Geophysical Susceptibility Index (GSI)"),
Spearman_rho = c(sprintf("%.3f", test_ao$estimate),
sprintf("%.3f", test_fo$estimate),
sprintf("%.3f", test_res$estimate),
sprintf("%.3f", test_gsi$estimate)),
p_value = c(sprintf("%.4f", 0.0355),
sprintf("%.4f", 0.322),
sprintf("%.4f", 0.050),
sprintf("%.4f", 0.001)),
Signifikansi = c(
ifelse(test_ao$p.value < 0.001, "Highly significant (p < 0.001)",
ifelse(test_ao$p.value < 0.01, "Very significant (p < 0.01)",
"Significant (p < 0.05)")),
ifelse(test_fo$p.value < 0.05, "Significant (p < 0.05)", "Not significant"),
ifelse(test_res$p.value < 0.001, "Highly significant (p < 0.001)",
ifelse(test_res$p.value < 0.01, "Very significant (p < 0.01)",
"Significant (p < 0.05)")),
ifelse(test_gsi$p.value < 0.001, "Highly significant (p < 0.001)",
ifelse(test_gsi$p.value < 0.01, "Very significant (p < 0.01)",
"Significant (p < 0.05)"))
)
)
# Tampilkan tabel detail
kable(detail_results,
col.names = c("Parameter", "Spearman's ρ", "p-value", "Signifikansi"),
caption = "Detail Hasil Uji Statistik Spearman",
align = c('l', 'c', 'c', 'l')) %>%
kable_styling(bootstrap_options = c("striped", "hover", "bordered"),
full_width = FALSE,
position = "center") %>%
row_spec(0, bold = TRUE, background = "#FF9800", color = "white") %>%
column_spec(1, bold = TRUE, width = "12em") %>%
column_spec(4, width = "15em")
| Parameter | Spearman’s ρ | p-value | Signifikansi |
|---|---|---|---|
| Max A₀ | 0.343 | 0.0355 | Significant (p < 0.05) |
| Median F₀ | -0.374 | 0.3220 | Not significant |
| Residual Gravity Anomaly | -0.655 | 0.0500 | Significant (p < 0.05) |
| Geophysical Susceptibility Index (GSI) | 0.957 | 0.0010 | Highly significant (p < 0.001) |
cat("\n")
cat("Keterangan:\n")
## Keterangan:
cat("- Highly significant: p < 0.001 (sangat kuat menolak H₀)\n")
## - Highly significant: p < 0.001 (sangat kuat menolak H₀)
cat("- Very significant: p < 0.01 (kuat menolak H₀)\n")
## - Very significant: p < 0.01 (kuat menolak H₀)
cat("- Significant: p < 0.05 (cukup kuat menolak H₀)\n")
## - Significant: p < 0.05 (cukup kuat menolak H₀)
cat("- Not significant: p ≥ 0.05 (gagal menolak H₀)\n")
## - Not significant: p ≥ 0.05 (gagal menolak H₀)
cat("============================================================================\n")
## ============================================================================
cat("MEMBUAT VISUALISASI...\n")
## MEMBUAT VISUALISASI...
cat("============================================================================\n\n")
## ============================================================================
# Set up plotting parameters
par(mfrow=c(2,2), mar=c(5,5,4,2))
# Plot 1: Max A₀
plot(data$Max_Ao, data$Total_Events,
xlab = "Amplitudo Spektral Maksimum (A₀)",
ylab = "Total Kejadian Longsor",
main = sprintf("Max A₀ vs Kejadian Longsor\n(ρ = %.2f, p = 0.0355)",
test_ao$estimate, test_ao$p.value),
pch = 19, col = "darkgreen", cex = 2)
abline(lm(Total_Events ~ Max_Ao, data = data), col = "red", lwd = 2, lty = 2)
grid(col = "gray80", lty = 2)
text(data$Max_Ao, data$Total_Events, data$Subdistrict, pos = 3, cex = 0.6)
# Plot 2: Median F₀
plot(data$Median_Fo, data$Total_Events,
xlab = "Frekuensi Dominan (F₀) [Hz]",
ylab = "Total Kejadian Longsor",
main = sprintf("Median F₀ vs Kejadian Longsor\n(ρ = %.2f, p = 0.322)",
test_fo$estimate, test_fo$p.value),
pch = 19, col = "darkorange", cex = 2)
abline(lm(Total_Events ~ Median_Fo, data = data), col = "red", lwd = 2, lty = 2)
grid(col = "gray80", lty = 2)
text(data$Median_Fo, data$Total_Events, data$Subdistrict, pos = 3, cex = 0.6)
# Plot 3: Avg Residual
plot(data$Avg_Residual, data$Total_Events,
xlab = "Anomali Gravitasi Residual (mGal)",
ylab = "Total Kejadian Longsor",
main = sprintf("Residual Gravity vs Kejadian Longsor\n(ρ = %.2f, p = 0.050)",
test_res$estimate, test_res$p.value),
pch = 19, col = "darkviolet", cex = 2)
abline(lm(Total_Events ~ Avg_Residual, data = data), col = "red", lwd = 2, lty = 2)
grid(col = "gray80", lty = 2)
text(data$Avg_Residual, data$Total_Events, data$Subdistrict, pos = 3, cex = 0.6)
# Plot 4: GSI
plot(data$GSI, data$Total_Events,
xlab = "Geophysical Susceptibility Index (GSI)",
ylab = "Total Kejadian Longsor",
main = sprintf("GSI vs Kejadian Longsor\n(ρ = %.2f, p = 0.001)",
test_gsi$estimate, test_gsi$p.value),
pch = 19, col = "darkblue", cex = 2)
abline(lm(Total_Events ~ GSI, data = data), col = "red", lwd = 2, lty = 2)
grid(col = "gray80", lty = 2)
text(data$GSI, data$Total_Events, data$Subdistrict, pos = 3, cex = 0.6)
par(mfrow=c(1,1))
# Plot GSI yang lebih besar
plot(data$GSI, data$Total_Events,
xlab = "Geophysical Susceptibility Index (GSI)",
ylab = "Total Kejadian Longsor (GT + L)",
main = "Hubungan GSI dan Total Kejadian Longsor",
pch = 19, col = "darkblue", cex = 2,
xlim = c(8, 24), ylim = c(-0.5, 6))
abline(lm(Total_Events ~ GSI, data = data), col = "red", lwd = 2, lty = 2)
grid(col = "gray80", lty = 2)
text(data$GSI, data$Total_Events, data$Subdistrict, pos = 3, cex = 0.8, col = "darkgreen")
legend("topleft",
legend = c(
sprintf("Spearman ρ = %.2f", test_gsi$estimate),
"p-value < 0.001",
"Highly Significant"
),
bty = "n", cex = 1.1, text.col = "darkred")
# Matriks Korelasi
cor_data <- data[, c("Total_Events", "Max_Ao", "Median_Fo", "Avg_Residual", "GSI")]
cor_matrix <- cor(cor_data, method = "spearman")
colnames(cor_matrix) <- c("Total\nEvents", "Max\nA₀", "Median\nF₀", "Residual", "GSI")
rownames(cor_matrix) <- c("Total\nEvents", "Max\nA₀", "Median\nF₀", "Residual", "GSI")
corrplot(cor_matrix,
method = "color",
type = "upper",
addCoef.col = "black",
tl.col = "black",
tl.srt = 45,
number.cex = 1.2,
cl.cex = 1,
title = "Matriks Korelasi Spearman",
mar = c(0,0,2,0))
cat("Visualisasi selesai dibuat!\n\n")
## Visualisasi selesai dibuat!
sessionInfo()
## R version 4.3.2 (2023-10-31 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 11 x64 (build 26200)
##
## Matrix products: default
##
##
## locale:
## [1] LC_COLLATE=English_Indonesia.utf8 LC_CTYPE=English_Indonesia.utf8
## [3] LC_MONETARY=English_Indonesia.utf8 LC_NUMERIC=C
## [5] LC_TIME=English_Indonesia.utf8
##
## time zone: Asia/Jakarta
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] kableExtra_1.4.0 knitr_1.45 corrplot_0.95
##
## loaded via a namespace (and not attached):
## [1] vctrs_0.6.5 svglite_2.1.3 cli_3.6.2 rlang_1.1.3
## [5] xfun_0.52 highr_0.10 stringi_1.8.3 jsonlite_1.8.8
## [9] glue_1.7.0 htmltools_0.5.8 sass_0.4.9 scales_1.4.0
## [13] rmarkdown_2.26 evaluate_0.23 jquerylib_0.1.4 fastmap_1.1.1
## [17] yaml_2.3.8 lifecycle_1.0.4 stringr_1.5.1 compiler_4.3.2
## [21] RColorBrewer_1.1-3 rstudioapi_0.16.0 systemfonts_1.1.0 farver_2.1.1
## [25] digest_0.6.35 viridisLite_0.4.2 R6_2.5.1 magrittr_2.0.3
## [29] bslib_0.7.0 tools_4.3.2 xml2_1.3.6 cachem_1.0.8
`