Pendahuluan

Dokumen ini menyajikan analisis korelasi antara parameter geofisika dengan kejadian longsor menggunakan metode Spearman dan Kendall Tau.


Persiapan Data dan Library

# Load required libraries
library(corrplot)

# Set random seed untuk reprodusibilitas
set.seed(123)

Input Data Manual

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

Perhitungan Ranking

Metode Ranking

Ranking dilakukan untuk setiap parameter geofisika dengan metode average ranking untuk nilai yang sama (tied ranks).

Formula Ranking:

  1. Rank A₀ (Amplitudo Spektral)
    • Data diurutkan dari nilai terkecil ke terbesar
    • Nilai yang sama mendapat ranking rata-rata
    • Contoh: 3 data dengan nilai 4.0 → posisi 1,2,3 → rank = (1+2+3)/3 = 2
  2. Rank 1/F₀ (Inverse Frekuensi Dominan)
    • Karena teori: ketebalan sedimen h ∝ 1/f₀
    • Semakin kecil F₀ → semakin besar 1/F₀ → semakin tebal sedimen → rank lebih tinggi
    • Formula: Rank(1/F₀) bukan Rank(F₀)
  3. Rank (-Residual Gravity)
    • Digunakan nilai negatif karena teori: densitas rendah = kerentanan tinggi
    • Nilai gravitasi rendah/negatif → rank tinggi
    • Nilai gravitasi tinggi/positif → rank rendah

Tabel Ranking Detail

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

Uji Korelasi Spearman

Hipotesis Penelitian

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₁):

  1. Max A₀: Ada korelasi positif signifikan antara amplitudo spektral maksimum dengan kejadian longsor (ρ > 0). Semakin tinggi amplifikasi, semakin tinggi kerentanan longsor.

  2. Median F₀: Ada korelasi negatif signifikan antara frekuensi dominan dengan kejadian longsor (ρ < 0). Semakin rendah frekuensi (sedimen tebal), semakin tinggi kerentanan longsor.

  3. Residual Gravity Anomaly: Ada korelasi negatif signifikan antara anomali gravitasi residual dengan kejadian longsor (ρ < 0). Semakin rendah densitas material, semakin tinggi kerentanan longsor.

  4. 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)

Detail Hasil Uji Statistik

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")
Detail Hasil Uji Statistik Spearman
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₀)

Visualisasi

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 Detail

# 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

# 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!

Informasi Sesi

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

`