Studi Regresi Data Panel
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.
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.
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:
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).
# 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"))
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
Dataset merupakan balanced panel karena setiap negara memiliki jumlah pengamatan yang sama selama periode 2015–2024.
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)
| 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 |
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.
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)
)
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.
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")
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)
| 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"
}
}
Berdasarkan ketiga uji di atas, model yang paling sesuai untuk data ini adalah Random Effect Model.
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)
Emisi = -5.761 + 0.002 EnergyCons + 0.1665 IndustryAct
kable(tabel_koef, digits = 4, caption = paste("Hasil Uji Signifikansi Parameter -", nama_model)) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
| Estimate | Std. Error | z-value | Pr(>|z|) | |
|---|---|---|---|---|
| (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)
| Ukuran | Nilai | |
|---|---|---|
| rsq | R-squared | 0.6377 |
| adjrsq | Adjusted R-squared | 0.6303 |
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.
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.
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.
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.
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.