Deskripsi Data

Dataset yang digunakan adalah data bulanan Ekspor, Impor, dan Cadangan Devisa Negara Indonesia periode Januari 2022 – Desember 2025 (48 observasi). Data bersumber dari website Satu Data Perdagangan dan Bank Indonesia.

Variabel yang digunakan:

Simbol Variabel Satuan
Y Cadangan Devisa Negara Juta USD
X₁ Nilai Ekspor Juta USD
X₂ Nilai Impor Juta USD
ekspor <- c(
  19143.17, 20489.07, 26586.73, 27316.24, 21493.25, 26141.05,
  25473.42, 27928.70, 24764.55, 24726.29, 24059.11, 23782.72,
  22344.65, 21355.45, 23452.47, 19354.02, 21789.03, 20667.01,
  20933.54, 22055.53, 20815.57, 22220.06, 22075.60, 22464.85,
  20569.76, 19348.66, 22620.00, 19693.29, 22441.98, 21058.25,
  22526.84, 23598.55, 22150.74, 24808.78, 24112.73, 23599.59,
  21428.28, 21944.18, 23247.26, 20743.85, 24613.80, 23436.46,
  24748.86, 24963.17, 24679.13, 24236.34, 22520.80, 26346.81
)

impor <- c(
  18211.10, 16638.51, 21962.42, 19757.45, 18609.29, 21003.85,
  21345.03, 22150.55, 19808.34, 19135.35, 18962.09, 19863.06,
  18538.36, 15978.60, 20715.46, 15461.69, 21409.87, 17251.09,
  19647.21, 18975.77, 17461.15, 18777.06, 19679.53, 19211.67,
  18587.30, 18507.74, 18017.78, 16993.62, 19505.23, 18539.35,
  21855.58, 20843.43, 18974.04, 22097.83, 19768.31, 21509.39,
  17935.92, 18849.00, 18919.98, 20585.01, 20312.30, 19332.95,
  20575.41, 19475.24, 20335.26, 21843.13, 19858.49, 23834.05
)

devisa <- c(
  141344, 141435, 139129, 135659, 135550, 136379,
  132173, 132202, 130782, 130197, 133994, 137233,
  139404, 140311, 145189, 144167, 139286, 137541,
  137674, 137090, 134856, 133140, 138100, 146384,
  145052, 144040, 140390, 136218, 138973, 140177,
  145414, 150243, 149922, 151233, 150243, 155719,
  156085, 154509, 157090, 152467, 152488, 152567,
  151988, 150708, 148737, 149933, 150061, 156471
)

bulan <- c(
  "Jan-22","Feb-22","Mar-22","Apr-22","Mei-22","Jun-22",
  "Jul-22","Agt-22","Sep-22","Okt-22","Nov-22","Des-22",
  "Jan-23","Feb-23","Mar-23","Apr-23","Mei-23","Jun-23",
  "Jul-23","Agt-23","Sep-23","Okt-23","Nov-23","Des-23",
  "Jan-24","Feb-24","Mar-24","Apr-24","Mei-24","Jun-24",
  "Jul-24","Agt-24","Sep-24","Okt-24","Nov-24","Des-24",
  "Jan-25","Feb-25","Mar-25","Apr-25","Mei-25","Jun-25",
  "Jul-25","Agt-25","Sep-25","Okt-25","Nov-25","Des-25"
)

df <- data.frame(Bulan = bulan, Ekspor = ekspor, Impor = impor, Devisa = devisa)

Pratinjau Data

kable(head(df, 10),
      caption = "Tabel 1. Pratinjau Data (10 Observasi Pertama)",
      align   = "c",
      format.args = list(big.mark = ","))
Tabel 1. Pratinjau Data (10 Observasi Pertama)
Bulan Ekspor Impor Devisa
Jan-22 19,143.17 18,211.10 141,344
Feb-22 20,489.07 16,638.51 141,435
Mar-22 26,586.73 21,962.42 139,129
Apr-22 27,316.24 19,757.45 135,659
Mei-22 21,493.25 18,609.29 135,550
Jun-22 26,141.05 21,003.85 136,379
Jul-22 25,473.42 21,345.03 132,173
Agt-22 27,928.70 22,150.55 132,202
Sep-22 24,764.55 19,808.34 130,782
Okt-22 24,726.29 19,135.35 130,197

Statistik Deskriptif

desc <- data.frame(
  Variabel  = c("Ekspor (Juta USD)", "Impor (Juta USD)", "Devisa (Juta USD)"),
  N         = rep(nrow(df), 3),
  Minimum   = c(round(min(ekspor),2),    round(min(impor),2),    round(min(devisa),2)),
  Maksimum  = c(round(max(ekspor),2),    round(max(impor),2),    round(max(devisa),2)),
  Rata.rata = c(round(mean(ekspor),2),   round(mean(impor),2),   round(mean(devisa),2)),
  Median    = c(round(median(ekspor),2), round(median(impor),2), round(median(devisa),2)),
  Std.Dev   = c(round(sd(ekspor),2),     round(sd(impor),2),     round(sd(devisa),2))
)

kable(desc,
      caption = "Tabel 2. Statistik Deskriptif Variabel Penelitian",
      align   = c("l","c","c","c","c","c","c"),
      format.args = list(big.mark = ","))
Tabel 2. Statistik Deskriptif Variabel Penelitian
Variabel N Minimum Maksimum Rata.rata Median Std.Dev
Ekspor (Juta USD) 48 19,143.17 27,928.70 22,934.80 22,523.82 2,128.15
Impor (Juta USD) 48 15,461.69 23,834.05 19,533.56 19,490.24 1,701.08
Devisa (Juta USD) 48 130,197.00 157,090.00 143,332.23 141,389.50 7,798.10

Rata-rata ekspor sebesar 22,934.8 juta USD, rata-rata impor sebesar 19,533.56 juta USD, dan rata-rata cadangan devisa sebesar 143,332.2 juta USD selama periode Januari 2022 – Desember 2025.

Matriks Korelasi

cor_matrix <- cor(df[, c("Ekspor","Impor","Devisa")])

kable(round(cor_matrix, 4),
      caption = "Tabel 3. Matriks Korelasi Antar Variabel")
Tabel 3. Matriks Korelasi Antar Variabel
Ekspor Impor Devisa
Ekspor 1.0000 0.7082 -0.0078
Impor 0.7082 1.0000 0.2240
Devisa -0.0078 0.2240 1.0000
corrplot(cor_matrix,
         method      = "color",
         type        = "upper",
         addCoef.col = "black",
         tl.col      = "black",
         col         = colorRampPalette(c("#d73027","#fee090","#4575b4"))(200),
         title       = "Matriks Korelasi Ekspor, Impor, dan Devisa",
         mar         = c(0, 0, 2, 0))
Gambar 1. Visualisasi Matriks Korelasi

Gambar 1. Visualisasi Matriks Korelasi

Korelasi Ekspor–Devisa = -0.0078 dan Impor–Devisa = 0.224. Ekspor berkorelasi negatif dengan devisa. Demikian pula impor yang berkorelasi positif dengan devisa.

Model Regresi

Bentuk umum persamaan regresi linier berganda: \[ y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \epsilon \]

Dalam penelitian ini: \[ \text{Devisa} = \beta_0 + \beta_1 \cdot \text{Ekspor} + \beta_2 \cdot \text{Impor} + \epsilon \]

Estimasi Parameter

model <- lm(Devisa ~ Ekspor + Impor, data = df)
summary(model)
## 
## Call:
## lm(formula = Devisa ~ Ekspor + Impor, data = df)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -11877  -6136   -821   5614  15435 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.302e+05  1.332e+04   9.770 1.07e-12 ***
## Ekspor      -1.223e+00  7.317e-01  -1.672   0.1015    
## Impor        2.111e+00  9.154e-01   2.306   0.0258 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7537 on 45 degrees of freedom
## Multiple R-squared:  0.1057, Adjusted R-squared:  0.06596 
## F-statistic: 2.659 on 2 and 45 DF,  p-value: 0.08097
koef_raw     <- as.data.frame(summary(model)$coefficients)
koef_raw$Var <- c("Konstanta (β₀)", "Ekspor (β₁)", "Impor (β₂)")
koef_tbl     <- koef_raw[, c("Var","Estimate","Std. Error","t value","Pr(>|t|)")]
colnames(koef_tbl) <- c("Variabel","Estimasi (β)","Std. Error","t-hitung","p-value")
koef_tbl[, 2:5] <- round(koef_tbl[, 2:5], 4)

kable(koef_tbl,
      caption   = "Tabel 4. Koefisien Model Regresi Berganda",
      align     = c("l","c","c","c","c"),
      row.names = FALSE)
Tabel 4. Koefisien Model Regresi Berganda
Variabel Estimasi (β) Std. Error t-hitung p-value
Konstanta (β₀) 130160.7896 13322.5448 9.7700 0.0000
Ekspor (β₁) -1.2232 0.7317 -1.6718 0.1015
Impor (β₂) 2.1105 0.9154 2.3056 0.0258

Model Akhir: \[ \widehat{\text{Devisa}} = 1.3016079\times 10^{5} + -1.2232 \cdot \text{Ekspor} + (2.1105) \cdot \text{Impor} \]

  • β₀ = 1.3016079^{5} : Jika Ekspor dan Impor bernilai 0, cadangan devisa diperkirakan sebesar 130,160.8 juta USD.
  • β₁ = -1.2232 : Setiap kenaikan Ekspor 1 juta USD, cadangan devisa menurun sebesar 1.2232 juta USD (ceteris paribus).
  • β₂ = 2.1105 : Setiap kenaikan Impor 1 juta USD, cadangan devisa meningkat sebesar 2.1105 juta USD (ceteris paribus).

Kebaikan Model (Goodness of Fit)

r2     <- summary(model)$r.squared
r2_adj <- summary(model)$adj.r.squared
f_stat <- summary(model)$fstatistic
f_pval <- pf(f_stat[1], f_stat[2], f_stat[3], lower.tail = FALSE)

gof <- data.frame(
  Metrik = c("R-Squared (R²)", "Adjusted R²", "F-Statistik", "p-value (Uji F)"),
  Nilai  = c(round(r2, 4), round(r2_adj, 4),
             round(f_stat[1], 4),
             format(f_pval, scientific = TRUE, digits = 4))
)

kable(gof,
      caption = "Tabel 5. Ukuran Kebaikan Model (Goodness of Fit)",
      align   = c("l","c"))
Tabel 5. Ukuran Kebaikan Model (Goodness of Fit)
Metrik Nilai
R-Squared (R²) 0.1057
Adjusted R² 0.066
F-Statistik 2.6594
p-value (Uji F) 8.097e-02

Nilai R² = 0.1057, artinya Ekspor dan Impor mampu menjelaskan 10.57% variasi cadangan devisa. Adjusted R² = 0.066. Nilai F = 2.6594 dengan p-value = 8.1e-02 menunjukkan model tidak signifikan pada α = 5%.

Pengujian Hipotesis

Uji Simultan (Uji F)

Uji F digunakan untuk menguji apakah X₁ dan X₂ secara bersama-sama berpengaruh signifikan terhadap Y.

  • H₀ : β₁ = β₂ = 0
  • H₁ : minimal satu βᵢ ≠ 0
cat("F-statistik :", round(f_stat[1], 4), "\n")
## F-statistik : 2.6594
cat("p-value     :", format(f_pval, scientific = TRUE, digits = 4), "\n")
## p-value     : 8.097e-02
cat("Kesimpulan  :", ifelse(f_pval < 0.05,
  "Tolak H0 — Model signifikan secara simultan (p < 0.05)",
  "Gagal Tolak H0 — Model tidak signifikan secara simultan"))
## Kesimpulan  : Gagal Tolak H0 — Model tidak signifikan secara simultan

Uji Parsial (Uji t)

Uji t digunakan untuk menguji pengaruh masing-masing variabel X secara parsial terhadap Y.

  • H₀ : βᵢ = 0
  • H₁ : βᵢ ≠ 0
koef_mat <- summary(model)$coefficients
print(round(koef_mat, 4))
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept) 130160.7896 13322.5448  9.7700   0.0000
## Ekspor          -1.2232     0.7317 -1.6718   0.1015
## Impor            2.1105     0.9154  2.3056   0.0258
cat("\nKesimpulan:\n")
## 
## Kesimpulan:
cat("- Ekspor : p =", round(koef_mat[2,4], 4),
    ifelse(koef_mat[2,4] < 0.05, "→ Signifikan (tolak H0)", "→ Tidak signifikan"), "\n")
## - Ekspor : p = 0.1015 → Tidak signifikan
cat("- Impor  : p =", round(koef_mat[3,4], 4),
    ifelse(koef_mat[3,4] < 0.05, "→ Signifikan (tolak H0)", "→ Tidak signifikan"), "\n")
## - Impor  : p = 0.0258 → Signifikan (tolak H0)

Uji Normalitas Residual

  • H₀ : Residual berdistribusi normal
  • H₁ : Residual tidak berdistribusi normal
error    <- model$residuals
ks_hasil <- ks.test(error, "pnorm", mean(error), sqrt(var(error)))
ks_hasil
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  error
## D = 0.1144, p-value = 0.5193
## alternative hypothesis: two-sided
sw_hasil <- shapiro.test(error)
sw_hasil
## 
##  Shapiro-Wilk normality test
## 
## data:  error
## W = 0.95739, p-value = 0.07916

Berdasarkan uji Shapiro-Wilk, p-value = 0.0792. Karena p-value > 0.05, maka gagal tolak H₀ — residual berdistribusi normal

Uji Heteroskedastisitas (Breusch-Pagan)

  • H₀ : Variansi residual konstan (homokedastisitas)
  • H₁ : Terjadi heteroskedastisitas
bp_hasil <- bptest(model)
bp_hasil
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 3.3325, df = 2, p-value = 0.189

p-value = 0.189. Karena p-value > 0.05, maka gagal tolak H₀ — tidak terjadi heteroskedastisitas

Uji Multikolinearitas (VIF)

Kriteria: VIF < 10 → tidak ada multikolinearitas.

vif_val <- vif(model)
print(round(vif_val, 4))
## Ekspor  Impor 
## 2.0064 2.0064

Semua VIF < 10 (Ekspor = 2.006, Impor = 2.006) — tidak ada multikolinearitas

Uji Autokorelasi (Durbin-Watson)

  • H₀ : Tidak ada autokorelasi
  • H₁ : Terdapat autokorelasi
dw_hasil <- dwtest(model)
dw_hasil
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 0.37827, p-value = 7.092e-14
## alternative hypothesis: true autocorrelation is greater than 0

Nilai DW = 0.3783. Nilai DW di luar rentang 1.5–2.5, terdapat indikasi autokorelasi

Ringkasan Uji Asumsi Klasik

ringkasan <- data.frame(
  No         = 1:4,
  Uji        = c("Normalitas Residual","Heteroskedastisitas",
                 "Multikolinearitas","Autokorelasi"),
  Metode     = c("Shapiro-Wilk","Breusch-Pagan","VIF","Durbin-Watson"),
  Statistik  = c(paste0("W = ",  round(sw_hasil$statistic, 4)),
                 paste0("BP = ", round(bp_hasil$statistic, 4)),
                 paste0("Max VIF = ", round(max(vif_val), 3)),
                 paste0("DW = ",  round(as.numeric(dw_hasil$statistic), 4))),
  p.value    = c(round(sw_hasil$p.value, 4),
                 round(bp_hasil$p.value, 4),
                 NA,
                 round(dw_hasil$p.value, 4)),
  Kesimpulan = c(
    ifelse(sw_hasil$p.value > 0.05,          "Terpenuhi", "Tidak Terpenuhi"),
    ifelse(bp_hasil$p.value > 0.05,          "Terpenuhi", "Tidak Terpenuhi"),
    ifelse(all(vif_val < 10),                "Terpenuhi", "Tidak Terpenuhi"),
    ifelse(as.numeric(dw_hasil$statistic) >= 1.5 &
           as.numeric(dw_hasil$statistic) <= 2.5, "Terpenuhi", "Tidak Terpenuhi")
  )
)

kable(ringkasan,
      caption   = "Tabel 6. Ringkasan Hasil Uji Asumsi Klasik",
      align     = c("c","l","l","c","c","c"),
      na        = "-")
Tabel 6. Ringkasan Hasil Uji Asumsi Klasik
No Uji Metode Statistik p.value Kesimpulan
1 Normalitas Residual Shapiro-Wilk W = 0.9574 0.0792 Terpenuhi
2 Heteroskedastisitas Breusch-Pagan BP = 3.3325 0.1890 Terpenuhi
3 Multikolinearitas VIF Max VIF = 2.006 NA Terpenuhi
4 Autokorelasi Durbin-Watson DW = 0.3783 0.0000 Tidak Terpenuhi

Plot Model Regresi

Scatter plot hubungan antara masing-masing variabel independen dengan Devisa beserta garis regresinya.

Gambar 2. Scatterplot Ekspor vs Devisa

Gambar 2. Scatterplot Ekspor vs Devisa

Gambar 3. Scatterplot Impor vs Devisa

Gambar 3. Scatterplot Impor vs Devisa

Gambar 4. Nilai Aktual vs Nilai Fitted

Gambar 4. Nilai Aktual vs Nilai Fitted

Gambar 5. Plot Diagnostik Residual (4-Panel)

Gambar 5. Plot Diagnostik Residual (4-Panel)

Gambar 6. Q-Q Plot Residual

Gambar 6. Q-Q Plot Residual

Interpretasi Hasil

Interpretasi Model Regresi

Berdasarkan hasil estimasi, model regresi linear berganda yang terbentuk adalah:

\[\widehat{\text{Devisa}} = 1.3016079\times 10^{5} + -1.2232 \cdot \text{Ekspor} + (2.1105) \cdot \text{Impor}\]

Interpretasi masing-masing koefisien:

  • Konstanta (β₀ = 1.3016079^{5}): Apabila nilai Ekspor dan Impor sama-sama bernilai nol, maka cadangan devisa negara diperkirakan sebesar 130,160.8 juta USD. Nilai ini merupakan baseline cadangan devisa di luar pengaruh aktivitas perdagangan internasional.

  • Koefisien Ekspor (β₁ = -1.2232): Setiap peningkatan nilai ekspor sebesar 1 juta USD, cadangan devisa akan menurun sebesar 1.2232 juta USD, dengan asumsi variabel impor tetap konstan (ceteris paribus). Hasil ini perlu dikaji lebih lanjut karena bertentangan dengan teori ekonomi umum.

  • Koefisien Impor (β₂ = 2.1105): Setiap peningkatan nilai impor sebesar 1 juta USD, cadangan devisa akan meningkat sebesar 2.1105 juta USD, dengan asumsi variabel ekspor tetap konstan (ceteris paribus). Hubungan positif ini dapat mengindikasikan bahwa peningkatan impor bahan baku mendorong produktivitas ekspor sehingga berdampak positif pada devisa.

Interpretasi Kebaikan Model

Nilai R² = 0.1057 menunjukkan bahwa model mampu menjelaskan 10.57% variasi cadangan devisa yang disebabkan oleh perubahan ekspor dan impor. Nilai ini tergolong rendah, sehingga perlu dipertimbangkan penambahan variabel prediktor lainnya. Sisa 89.43% dijelaskan oleh faktor-faktor lain di luar model, seperti suku bunga, inflasi, atau kebijakan moneter Bank Indonesia.

Nilai Adjusted R² = 0.066 yang mendekati R² mengindikasikan bahwa penambahan variabel dalam model tidak menyebabkan inflasi pada nilai R², sehingga model dinilai efisien.

Interpretasi Uji Hipotesis

Uji F (Simultan): Nilai F-statistik = 2.6594 dengan p-value = 8.1e-02. Karena p-value ≥ 0.05, maka gagal tolak H₀ yang berarti bahwa variabel Ekspor dan Impor secara bersama-sama tidak berpengaruh signifikan terhadap cadangan devisa.

Uji t (Parsial):

  • Ekspor memiliki p-value = 0.1015. Karena p-value ≥ 0.05, maka gagal tolak H₀ yang berarti bahwa Ekspor tidak berpengaruh signifikan secara parsial terhadap cadangan devisa.

  • Impor memiliki p-value = 0.0258. Karena p-value < 0.05, maka tolak H₀ yang berarti bahwa Impor berpengaruh signifikan secara parsial terhadap cadangan devisa.

Interpretasi Uji Asumsi Klasik

  • Normalitas Residual: Hasil uji Shapiro-Wilk menghasilkan p-value = 0.0792. Karena p-value > 0.05, residual model berdistribusi normal, sehingga inferensi statistik (uji t dan uji F) yang dilakukan valid.

  • Heteroskedastisitas: Hasil uji Breusch-Pagan menghasilkan p-value = 0.189. Karena p-value > 0.05, tidak terjadi heteroskedastisitas yang berarti bahwa variansi residual bersifat konstan (homokedastis), sehingga estimasi OLS bersifat BLUE (Best Linear Unbiased Estimator).

  • Multikolinearitas: Nilai VIF Ekspor = 2.006 dan VIF Impor = 2.006. Kedua nilai VIF < 10, menunjukkan tidak ada multikolinearitas antar variabel independen, sehingga koefisien regresi dapat diinterpretasikan secara individual dengan andal.

  • Autokorelasi: Nilai statistik Durbin-Watson = 0.3783. Nilai DW berada di luar rentang 1.5–2.5, mengindikasikan adanya autokorelasi pada residual. Pada data time series, autokorelasi dapat terjadi karena adanya tren atau pola musiman yang belum tertangkap model.

Kesimpulan

Berdasarkan hasil analisis regresi linear berganda terhadap data Ekspor, Impor, dan Cadangan Devisa Indonesia periode Januari 2022 – Desember 2025, diperoleh kesimpulan sebagai berikut:

  1. Model regresi yang terbentuk adalah: \[\widehat{\text{Devisa}} = 1.3016079\times 10^{5} + -1.2232 \cdot \text{Ekspor} + (2.1105) \cdot \text{Impor}\]

  2. Koefisien determinasi R² = 0.1057, artinya Ekspor dan Impor mampu menjelaskan 10.57% variasi cadangan devisa. Adjusted R² = 0.066.

  3. Uji F menunjukkan model tidak signifikan secara simultan (F = 2.6594, p-value = 8.1e-02).

  4. Uji t parsial:

    • Ekspor tidak berpengaruh signifikan terhadap Devisa (p = 0.1015)
    • Impor berpengaruh signifikan terhadap Devisa (p = 0.0258)
  5. Uji asumsi klasik:

    • Normalitas : Residual berdistribusi normal
    • Heteroskedastisitas : Tidak terjadi heteroskedastisitas
    • Multikolinearitas : Tidak ada multikolinearitas
    • Autokorelasi : Terdapat indikasi autokorelasi