Studi Regresi Data Panel

Konsumsi Energi, Aktivitas Industri, dan Emisi CO2 di ASEAN

Analisis regresi data panel terhadap 10 negara ASEAN periode 2015–2024, untuk melihat bagaimana konsumsi energi dan aktivitas industri berhubungan dengan emisi karbon per kapita.

Zahra Sabrina · 01 September 2026

1 Latar Belakang

Aktivitas ekonomi suatu negara — yang tercermin dari konsumsi energi dan aktivitas industri — umumnya berjalan beriringan dengan emisi karbon yang dihasilkan. Semakin tinggi output ekonomi suatu negara, semakin besar pula kebutuhan energi dan aktivitas produksi industrinya, yang pada akhirnya berpotensi meningkatkan emisi CO2.

Untuk melihat hubungan ini secara lebih menyeluruh, dibutuhkan data yang mencakup banyak negara sekaligus banyak tahun pengamatan. Oleh karena itu, analisis ini menggunakan regresi data panel, yaitu gabungan data cross-section (10 negara ASEAN) dan data time series (2015–2024), agar estimasi yang dihasilkan lebih menyeluruh dibandingkan hanya menggunakan salah satu dimensi saja.

2 Landasan Teori

Data panel adalah gabungan data cross-section dan time series, sehingga memungkinkan analisis memperhitungkan perbedaan karakteristik antarnegara sekaligus perubahan yang terjadi dari waktu ke waktu.

Model umum regresi data panel yang digunakan dalam analisis ini adalah:

\[ Emisi_{it} = \beta_0 + \beta_1\,EnergyCons_{it} + \beta_2\,IndustryAct_{it} + \varepsilon_{it} \]

dengan \(i\) menyatakan negara dan \(t\) menyatakan tahun. Emisi adalah emisi CO2 per kapita (variabel dependen), sedangkan EnergyCons (konsumsi energi) dan IndustryAct (aktivitas industri) adalah variabel independen.

Terdapat tiga pendekatan model yang umum digunakan dalam regresi data panel:

  • Common Effect Model (CEM) — memperlakukan seluruh data seperti regresi linear biasa, tanpa memperhitungkan perbedaan antarnegara.
  • Fixed Effect Model (FEM) — mengasumsikan setiap negara memiliki karakteristik (intercept) tersendiri yang bersifat tetap.
  • Random Effect Model (REM) — memperlakukan perbedaan karakteristik antarnegara sebagai komponen acak.

Model terbaik dipilih melalui tiga pengujian: Chow test (CEM vs FEM), Hausman test (FEM vs REM), dan Lagrange Multiplier test (CEM vs REM).

Sebelum model diestimasi, kedua variabel independen juga diperiksa kondisi multikolinearitasnya. Jika korelasi antarvariabel independen berada di bawah 0,7, kedua variabel dianggap cukup bebas dari multikolinearitas sehingga layak digunakan bersama-sama dalam satu model (Gujarati & Porter, 2009).

3 Data

3.1 Impor Data

# Pastikan file panel_datakomstatlanjut.xlsx berada di folder yang sama
# dengan file .Rmd ini (atau ganti path di bawah sesuai lokasi file di komputermu).
data <- read_excel("C:/Users/ASUS/Downloads/tugas1_komlan/panel_datakomstatlanjut.xlsx")

data <- data %>%
  rename(
    Emisi       = Emisi_CO2_perKapita,
    EnergyCons  = energy_cons,
    IndustryAct = industry_act
  )

pdata <- pdata.frame(data, index = c("Negara", "Tahun"))

3.2 Ringkasan Dataset

jumlah_negara <- length(unique(data$Negara))
tahun_awal    <- min(data$Tahun)
tahun_akhir   <- max(data$Tahun)
jumlah_obs    <- nrow(data)
missing_total <- sum(is.na(data))
balanced      <- length(unique(table(data$Negara))) == 1
10Negara ASEAN
2015–2024Periode Pengamatan
100Total Observasi
0Data Hilang (Missing)

Dataset merupakan balanced panel karena setiap negara memiliki jumlah pengamatan yang sama selama periode 2015–2024.

3.3 Statistik Deskriptif

tabel_statistik <- data.frame(
  Variabel = c("Emisi CO2 per Kapita", "Konsumsi Energi", "Aktivitas Industri"),
  Mean     = c(mean(data$Emisi), mean(data$EnergyCons), mean(data$IndustryAct)),
  SD       = c(sd(data$Emisi), sd(data$EnergyCons), sd(data$IndustryAct)),
  Minimum  = c(min(data$Emisi), min(data$EnergyCons), min(data$IndustryAct)),
  Maximum  = c(max(data$Emisi), max(data$EnergyCons), max(data$IndustryAct))
)

kable(tabel_statistik, digits = 2, caption = "Statistik Deskriptif Variabel Penelitian") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
Statistik Deskriptif Variabel Penelitian
Variabel Mean SD Minimum Maximum
Emisi CO2 per Kapita 5.45 6.55 0.41 27.24
Konsumsi Energi 2540.56 2544.89 359.95 9894.82
Aktivitas Industri 36.86 9.70 21.38 67.93

3.4 Visualisasi

ggplot(data, aes(x = Tahun, y = Emisi, color = Negara, group = Negara)) +
  geom_line(linewidth = 1) +
  geom_point(size = 1.4) +
  labs(title = "Perkembangan Emisi CO2 per Kapita", x = "Tahun", y = "Emisi CO2 per Kapita") +
  theme_minimal(base_family = "IBM Plex Sans")

p1 <- ggplot(data, aes(EnergyCons, Emisi)) +
  geom_point(color = "#2E5449", alpha = .75) +
  geom_smooth(method = "lm", se = TRUE, color = "#A9782F") +
  labs(title = "Energi vs Emisi", x = "Konsumsi Energi", y = "Emisi CO2 per Kapita") +
  theme_minimal(base_family = "IBM Plex Sans")

p2 <- ggplot(data, aes(IndustryAct, Emisi)) +
  geom_point(color = "#2E5449", alpha = .75) +
  geom_smooth(method = "lm", se = TRUE, color = "#A9782F") +
  labs(title = "Aktivitas Industri vs Emisi", x = "Aktivitas Industri", y = "Emisi CO2 per Kapita") +
  theme_minimal(base_family = "IBM Plex Sans")

gridExtra::grid.arrange(p1, p2, ncol = 2)

Ketiga grafik memberikan gambaran awal bahwa konsumsi energi dan aktivitas industri cenderung bergerak searah dengan emisi CO2 per kapita, sebelum hubungan ini diuji lebih formal melalui regresi data panel.

4 Uji Multikolinearitas

Sebelum diestimasi, kedua variabel independen diperiksa korelasinya satu sama lain. Korelasi yang terlalu tinggi (umumnya di atas 0,7) mengindikasikan multikolinearitas, yang dapat membuat estimasi koefisien regresi menjadi tidak stabil.

korelasi_x <- cor(data$EnergyCons, data$IndustryAct)

corrplot(
  cor(data %>% select(EnergyCons, IndustryAct)),
  method = "number", type = "upper", tl.col = "black", tl.srt = 0,
  mar = c(0, 0, 1, 0)
)

Kesimpulan Uji Multikolinearitas

Korelasi antara Konsumsi Energi dan Aktivitas Industri sebesar 0.447, yang berada di bawah batas umum 0,7. Artinya, tidak terdapat indikasi multikolinearitas yang serius, sehingga kedua variabel dapat digunakan bersama-sama dalam satu model regresi.

5 Estimasi Model Regresi Data Panel

Tiga pendekatan model diestimasi terlebih dahulu sebelum dipilih model yang paling sesuai dengan data.

cem <- plm(Emisi ~ EnergyCons + IndustryAct, data = pdata, model = "pooling")
fem <- plm(Emisi ~ EnergyCons + IndustryAct, data = pdata, model = "within")
rem <- plm(Emisi ~ EnergyCons + IndustryAct, data = pdata, model = "random")

6 Pemilihan Model Terbaik

chow_test    <- pFtest(fem, cem)
hausman_test <- phtest(fem, rem)
lm_test      <- plmtest(cem, type = "bp")

tabel_pemilihan <- data.frame(
  Uji = c("Chow Test (CEM vs FEM)", "Hausman Test (FEM vs REM)", "Lagrange Multiplier (CEM vs REM)"),
  `P-value` = c(chow_test$p.value, hausman_test$p.value, lm_test$p.value),
  check.names = FALSE
)

kable(tabel_pemilihan, digits = 4, caption = "Ringkasan Uji Pemilihan Model") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
Ringkasan Uji Pemilihan Model
Uji P-value
F Chow Test (CEM vs FEM) 0.0000
Hausman Test (FEM vs REM) 0.2667
chisq Lagrange Multiplier (CEM vs REM) 0.0000
if (chow_test$p.value < 0.05) {
  if (hausman_test$p.value < 0.05) {
    model_final <- fem; nama_model <- "Fixed Effect Model"
  } else {
    model_final <- rem; nama_model <- "Random Effect Model"
  }
} else {
  if (lm_test$p.value < 0.05) {
    model_final <- rem; nama_model <- "Random Effect Model"
  } else {
    model_final <- cem; nama_model <- "Common Effect Model"
  }
}
Model Terpilih

Berdasarkan ketiga uji di atas, model yang paling sesuai untuk data ini adalah Random Effect Model.

7 Hasil Model Terpilih

summary(model_final)
## Oneway (individual) effect Random Effect Model 
##    (Swamy-Arora's transformation)
## 
## Call:
## plm(formula = Emisi ~ EnergyCons + IndustryAct, data = pdata, 
##     model = "random")
## 
## Balanced Panel: n = 10, T = 10, N = 100
## 
## Effects:
##                  var std.dev share
## idiosyncratic 0.8975  0.9474 0.203
## individual    3.5267  1.8780 0.797
## theta: 0.8425
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -6.387576 -0.233209 -0.029573  0.311998  2.929743 
## 
## Coefficients:
##                Estimate  Std. Error z-value  Pr(>|z|)    
## (Intercept) -5.76103812  1.62549350 -3.5442 0.0003938 ***
## EnergyCons   0.00199581  0.00019203 10.3934 < 2.2e-16 ***
## IndustryAct  0.16649874  0.04362495  3.8166 0.0001353 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    241.84
## Residual Sum of Squares: 87.613
## R-Squared:      0.63773
## Adj. R-Squared: 0.63026
## Chisq: 170.757 on 2 DF, p-value: < 2.22e-16
koef      <- coef(model_final)
ringkasan <- summary(model_final)
tabel_koef <- as.data.frame(ringkasan$coefficients)

# Nama kolom p-value beda antar model: CEM/FEM pakai uji-t ("Pr(>|t|)"),
# REM pakai uji-z ("Pr(>|z|)"). Deteksi otomatis biar tidak error.
kolom_p <- grep("^Pr\\(", colnames(tabel_koef), value = TRUE)[1]

p_energy   <- tabel_koef["EnergyCons", kolom_p]
p_industry <- tabel_koef["IndustryAct", kolom_p]
b_energy   <- koef["EnergyCons"]
b_industry <- koef["IndustryAct"]
r2         <- ringkasan$r.squared["rsq"]
adj_r2     <- ringkasan$r.squared["adjrsq"]
p_f        <- tryCatch(ringkasan$fstatistic$p.value, error = function(e) NA)

7.1 Persamaan Regresi

Emisi = -5.761 + 0.002 EnergyCons + 0.1665 IndustryAct

7.2 Uji Signifikansi dan Koefisien Determinasi

kable(tabel_koef, digits = 4, caption = paste("Hasil Uji Signifikansi Parameter -", nama_model)) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
Hasil Uji Signifikansi Parameter - Random Effect Model
Estimate Std. Error z-value Pr(>&#124;z&#124;)
(Intercept) -5.7610 1.6255 -3.5442 4e-04
EnergyCons 0.0020 0.0002 10.3934 0e+00
IndustryAct 0.1665 0.0436 3.8166 1e-04
kable(
  data.frame(Ukuran = c("R-squared", "Adjusted R-squared"), Nilai = c(r2, adj_r2)),
  digits = 4, caption = "Koefisien Determinasi"
) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
Koefisien Determinasi
Ukuran Nilai
rsq R-squared 0.6377
adjrsq Adjusted R-squared 0.6303

8 Kesimpulan

1. Model dan Signifikansi Simultan

Model terbaik yang terpilih adalah Random Effect Model. Nilai p-value uji F/Wald sebesar 0, yang lebih kecil dari 0,05 sehingga secara simultan kedua variabel independen berpengaruh signifikan terhadap Emisi CO2 per kapita.

2. Konsumsi Energi

Koefisien Konsumsi Energi sebesar 0.002 dengan p-value 0. Hubungan ini signifikan secara statistik pada taraf 5%, dengan arah hubungan positif — artinya semakin tinggi konsumsi energi, emisi CO2 per kapita cenderung meningkat.

3. Aktivitas Industri

Koefisien Aktivitas Industri sebesar 0.1665 dengan p-value 10^{-4}. Hubungan ini signifikan secara statistik pada taraf 5%, dengan arah hubungan positif — artinya semakin tinggi aktivitas industri, emisi CO2 per kapita cenderung meningkat.

4. Kemampuan Model Menjelaskan Data

Adjusted R-squared model sebesar 63.03%, artinya Konsumsi Energi dan Aktivitas Industri secara bersama-sama menjelaskan sekitar 63.03% variasi Emisi CO2 per kapita pada 10 negara ASEAN, sedangkan sisanya sebesar 36.97% dijelaskan oleh faktor lain di luar model.

Secara umum, hasil ini memperkuat gambaran bahwa emisi karbon di negara-negara ASEAN erat kaitannya dengan tingkat konsumsi energi dan aktivitas industri sebagai komponen utama aktivitas ekonomi.

9 Daftar Pustaka

Baltagi, B. H. (2005). Econometric Analysis of Panel Data. John Wiley & Sons.

Gujarati, D. N., & Porter, D. C. (2009). Basic Econometrics. McGraw-Hill.

Croissant, Y., & Millo, G. (2008). Panel data econometrics in R: The plm package. Journal of Statistical Software, 27(2), 1–43.