# Library yang dibutuhkan
library(openxlsx) # Open Excel File
library(dplyr)
library(knitr)
library(FSA) # Head and Tail
library(ggplot2) # Plotting
library(ggpmisc)
library(ggpubr)
library(lmtest) # Coef Test and BP-test
library(nortest) # Normality
library(car) # VIF1 Bentuk Model Distributed Lag pada Kasus Konsumsi dan Pendapatan
Pemodelan kasus Angka Konsumsi (CE) terhadap Angka
Pendapatan (PDI). Data disajikan dengan deret waktu secara
triwulan (Kuartal) dari Tahun 1985 Kuartal 1 hingga
tahun Tahun 1994 Kuartal 2.
df <- read.xlsx("cons_usDinamis.xlsx")
df$obs <- df %>%
pull(obs) %>%
as.yearqtr()headtail(df) %>%
kable(digits = 3,
align = "c",
col.names = c("Waktu", "Konsumsi (CE)", "Pendapatan (PDI)"),
caption = "Dataset Konsumsi dan Pendapatan Tahun 1985-1994")| Waktu | Konsumsi (CE) | Pendapatan (PDI) | |
|---|---|---|---|
| 1 | 1985 Q1 | 72.824 | 0.818 |
| 2 | 1985 Q2 | 75.696 | 0.850 |
| 3 | 1985 Q3 | 80.031 | 0.892 |
| 36 | 1993 Q4 | 110.826 | 0.974 |
| 37 | 1994 Q1 | 107.739 | 0.961 |
| 38 | 1994 Q2 | 101.736 | 0.926 |
plot_PDI <- ggplot(data = df, aes(x = obs, y = PDI)) +
geom_line(size = 1, color = "dark green") +
stat_peaks(colour = "dark red") +
stat_peaks(geom = "text", colour = "dark red", vjust = 1.2,
span = NULL) +
labs(title = "Pendapatan", x = "Waktu", y = "PDI")
plot_CE <- ggplot(data = df, aes(x = obs, y = CE)) +
geom_line(size = 1, color = "dark blue") +
stat_peaks(colour = "dark red") +
stat_peaks(geom = "text", colour = "dark red", hjust = -0.1,
span = NULL) +
labs(title = "Konsumsi", x = "Waktu", y = "PDI")
ggarrange(plot_PDI, plot_CE,
nrow = 2,
align = "hv",
labels = c("(1)", "(2)"))Berdasarkan grafik (1) terlihat bahwa terdapat
trend positif dari pendapatan tiap kuartal, dimana nilainya
cenderung meningkat seiring bertambahnya waktu hingga tahun 1988. Trend
ini juga terlihat pada grafik (2), dimana nilai
konsumsi cenderung naik seiring waktu hingga tahun 1992.
Setelah tahun 1988, nilai pendapatan cenderung menurun, begitu pula
dengan nilai konsumsi yang menunjukkan trend negatif sejak
tahun 1992
Dari kasus tersebut maka dapat diperkirakan adanya suatu efek Pendapatan
terhadap Konsumsi namun tidak pada waktu yang sama. Efek dari
meningkatnya Pendapatan terhadap Konsumsi akan terasa pada beberapa
waktu periode berikutnya. Dengan adanya keadaan tersebut, maka
dibutuhkan suatu pemodelan yang melibatkan pengaruh waktu serta efek
lag pada veriabel Konsumsi sebagai variabel prediktor.
Distributed Lag Model adalah suatu model Dalam analisis regresi yang melibatkan data deret waktu, dimana model ini memasukan tidak hanya nilai variabel prediktor saat ini \((X_t)\), tetapi juga nilai masa lalu (lag) \((X_{t-p})\). Secara umum bentuk dari Distributed Lag Model adalah sebagai berikut:
\[
Y_t = \alpha + \beta_0X_t + \beta_1X_{t-1} + \dots + \beta_pX_{t-p}
\tag{1}
\] Pada persamaan \((1)\)
memiliki permasalahan adanya hubungan linier pada variabel \(X\) dengan lag \(X\), mengingat adanya asumsi autokorelasi
pada model time series. Sehingga, pada model ini terdapat
multikolinieritas yang akan mengakibatkan besarnya nilai standar error
serta pendugaan parameter menjadi tidak bersifat efisien.
Selain permasalahan asumsi multikolinieritas, terdapat permasalahan
lain, yaitu tidak adanya informasi pasti seberapa banyak lag yang
dibutuhkan. semakin banyak lag yang digunakan, akan mengurangi data yang
berdampak pada berkurangnya informasi.
Untuk mengatasi kedua masalah tersebut, perlu dilakukan suatu metode transformasi, yaitu Koyck Transformation. metode ini memanfaatkan transformasi geometrik, pada setiap penduga parameternya, dengan persamaan sebagai berikut:
\[ \begin{aligned} &\beta_i = \beta_0\lambda^i\\ \textrm{dimana: } &0\leq\lambda\leq1; i=1,2,3,\dots \end{aligned} \tag{2} \]
Sehingga persamaan (1) diubah menjadi:
\[ Y_t = \alpha + (\beta_0)X_t + (\beta_0\lambda^1)X_{t-1} + (\beta_0\lambda^2)X_{t-2} + \dots + u_t \tag{3} \]
Lalu membentuk persamaan baru sebagai berikut:
\[ Y_{t-1} = \alpha + (\beta_0)X_{t-1} + (\beta_0\lambda^1)X_{t-2} + (\beta_0\lambda^2)X_{t-3} + \dots + u_{t-1} \tag{4}\\ \]
\[ \begin{aligned} \lambda Y_{t-1} &= \lambda(\alpha + (\beta_0)X_{t-1} + (\beta_0\lambda^1)X_{t-2} + (\beta_0\lambda^2)X_{t-3} + \dots + u_{t-1})\\ &= \alpha\lambda + (\beta_0\lambda)X_{t-1} + (\beta_0\lambda^2)X_{t-2} + (\beta_0\lambda^3)X_{t-3} + \dots + \lambda u_{t-1} \end{aligned} \tag{5} \]
dengan mengeleminasi suku-suku yang sama dari persamaan (3) dan (5) didapatkan persamaan sebagai berikut:
\[ Y_t = \alpha (1 - \lambda) + \beta_0X_t + \lambda Y_{t-1} + v_t \tag{6} \]
df$CE_1 <- lag(df$CE)
model1 <- lm(CE ~ PDI + CE_1, data = df)
coeftest(model1)
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -10.741967 9.338104 -1.1503 0.25803
PDI 27.186180 10.275342 2.6458 0.01225 *
CE_1 0.849750 0.044501 19.0949 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
alpha_0 <- coef(model1)[[1]]
beta_0 <- coef(model1)[[2]]
lambda <- coef(model1)[[3]]
alpha <- alpha_0/(1-lambda)
beta <- beta_0/(1-lambda)
GC <- c(alpha,beta,lambda) %>% round(3)| \(\alpha\) | \(\beta\) | \(\lambda\) | |
|---|---|---|---|
| Geometric Coefficients | -71.494 | 180.939 | 0.85 |
Berdasarkan output, model yang terbentuk adalah sebagai berikut: \[ \widehat{CE_t} = -\underset{(9.338)}{10.742} + \underset{(10.275)}{27.186}PDI_t + \underset{(0.045)}{0.849}CE_{t-1} \] serta dapat dijabarkan menjadi: \[ \begin{aligned} \widehat{CE_t} &= -71.49 + 27.18PDI_t + 27.18\times0.84PDI_{t-1} + 27.18\times0.84^2PDI_{t-2} + 27.18\times0.84^3PDI_{t-3} + \dots\\ &= -71.49 + 27.18PDI_t + 22.83PDI_{t-1} + 19.18PDI_{t-2} + 16.11PDI_{t-3} + \dots \end{aligned} \]
2 Pengujian Asumsi Model
2.1 Normalitas Galat
Pemeriksaan asumsi normalitas galat dapat dilakukan dengan beberapa cara, yaitu pemeriksaan menggunakan grafik/plot dan pemeriksaan menggunakan uji statistik.
Pengujian normalitas dilakukan dengan hipotesis:
\[ \begin{aligned} H_0: &v_t\sim N(\mu_{v_t}, \sigma^2_{v_t})\\ H_1: &v_t\nsim N(\mu_{v_t}, \sigma^2_{v_t}) \end{aligned} \]
df$res <- c(NA, residuals(model1))
df$CE.fit <- c(NA, fitted(model1))
qq_sisaan <- ggplot(data = df[-1,], aes(sample = res)) +
labs(title = "Normal Probability Plot", y = "Sisaan", x = "") +
stat_qq(data = df, color = "blue") +
stat_qq_line(color = "red", size = 1, lty = 2, alpha = 0.4)
hist_sisaan <- ggplot(data = df[-1,], aes(x = res)) +
labs(title = "Density of Redisuals",
x = "Sisaan",
y = "Frekuensi") +
geom_histogram(aes(x = res, y = ..density..), bins = 7,
fill = "grey", colour = "black") +
geom_density(color = "blue", size = 1)
Ch_Sq <- pearson.test(df$res)
AD <- ad.test(df$res)
KS <- lillie.test(df$res)
ggarrange(qq_sisaan, hist_sisaan,
nrow = 2,
align = "hv",
labels = c("(a)", "(b)"))Pada Grafik (a) menunjukkan bahwa sebagian besar persebaran titik pencar sisaan mengikuti garis refrensinya, maka dapat dikatakan bahwa sisaan berdistribusi normal. Hal ini juga didukung dengan grafik (b) yang menunjukkan histogram sisaan dan garis kurva density (Biru) membentuk kurva normal.
Berdasarkan uji yang dilakukan, didapatkan hasil seagai berikut:
| Uji | Statistik Uji | \(p\)-value |
|---|---|---|
| Chi-Square | 2.6486486 | 0.8514747 |
| Andersen Darling | 0.4283287 | 0.2953238 |
| Jarque Bera | 0.1069119 | 0.3534571 |
Ketiga uji menunjukkan nilai \(p\)-value yang cukup besar, sehingga dapat disimpulkan bahwa sisaan berdistribusi Normal.
2.2 Asumsi Homoskedastisitas
Pemeriksaan asumsi homoskedastisitas dilakukan untuk memastikan apakah ragam memiliki nilai yang sama untuk setiap amatan pada nilai \(X_t\) yang sama. Pengujian dilakukan dengan menggunakan uji Breush-Pagan serta hipotesis sebagai berikut:
\[ \begin{aligned} H_0: &\sigma^2_i = \sigma^2_j, i\neq j\\ H_1: &\sigma^2_i \neq \sigma^2_j, i\neq j \end{aligned} \]
scat_vt_CEt <- ggplot(df, aes(x = CE.fit, y = res^2)) +
geom_point(shape = 3) +
geom_smooth(method = "loess", formula = y~x, se = T)
scat_vt_CEt| Uji | Statistik Uji | \(p\)-value |
|---|---|---|
| Breusch-Pagan | 1.8505297 | 0.3964264 |
Berdasarkan uji Breusch-Pagan, hasil uji menghasilkan \(p\)-value yang cukup besar sehingga dapat disimpulkan bahwa keragaman sisaan adalah sama pada nilai \(X_t\) yang berbeda atau Homogen. Hal ini juga didukung dengan plot kuadrat sisaan dengan nilai \(\widehat{CE}\) membentuk pola datar. Namun pada \(\widehat{CE}\) benilai berkisar 100 - 110, kuadrat sisaan cenderung memiliki nilai yang cukup beragam.
2.3 Non-Multikolinieritas
Pemeriksaan asumsi Non-Multikolinieritas dapat diketahui dengan menggunakan nilai VIF, nilai ini memberikan informasi adanya peubah yang menyebabkan ragam galat menjadi besar. VIF didapatkan dengan memanfaatkan nilai koefisien determinasi \((R^2_j)\) dari masing-masing peubah prediktor pada persamaan (6) yang diregresikan dengan peubah prediktor lainnya (auxiliary regression).
scat_X <- ggplot(df[-1,], aes(x = PDI, y = CE_1)) +
geom_point(shape = 2) +
geom_smooth(method = lm, formula = y~x, se = F)
scat_X| Variabel | VIF |
|---|---|
| \(X_t\) | 1.1366152 |
| \(Y_{t-1}\) | 1.1366152 |
Berdasarkan nilai VIF yang sangat kecil \((<10)\), maka dapat disimpulkan bahwa tidak terdapat pelanggaran asumsi non-multikolinieritas. Hali ini juga didukung oleh diagram pencar antara variavel \(PDI\) dan variabel lag-\(CE\) dimana diagam pencar antara kedua peubah tersebut menunjukkan tidak adanya hubungan linier sempurna.
2.4 Non-Autokorelasi
Pengujian asumsi non-autokorelasi dapat menggunakan diagram pencar antara sisaan dengan lag-sisaan. Plot ini dapat menggambarkan hubungan sisaan dengan dirinya sendiri pada lag berbeda, sehingga diharapkan dapat mendeteksi adanya autokorelasi yang terjadi pada model.
vt.vt1 <- data.frame(vt = df$res[2:38], vt1 = df$res[1:37])
scat_vt_vt1 <- ggplot(vt.vt1, aes(x = vt, y = vt1)) +
labs(title = "Scatter Plot Sisaan dan lag-sisaan", xlab = "sisaan",
ylab = "lag_sisaan") +
geom_point(shape = 4) +
geom_vline(aes(xintercept = 0)) +
geom_hline(aes(yintercept = 0))
scat_vt_vt1Berdasarkan Plot tersebut, tidak terlihat adanya suatu pola tertentu (hanya ada pola horizontal), sehingga dapat disimpulkan tidak terdapat autokorelasi pada sisaan.
3 Kesimpulan:
3.1 Model
Pendugaan Parameter yang didapatkan adalah sebagai berikut:
| \(\alpha\) | \(\beta\) | \(\lambda\) | |
|---|---|---|---|
| Geometric Coefficients | -71.494 | 180.939 | 0.85 |
Serta model yang terbentuk adalah sebagai berikut:
\[
\widehat{CE_t} = -\underset{(9.338)}{10.742} +
\underset{(10.275)}{27.186}PDI_t + \underset{(0.045)}{0.849}CE_{t-1}
\]
3.2 Pengujian Asumsi
Berdasarkan serangkaian uji yang dilakukan tidak terdapat asumsi yang terlanggar.
3.3 Interpretasi
- Setiap kenaikan Pendapatan sebesar 1 satuan, akan meningkatkan Konsumsi pada periode yang sama sebesar 27.186 satuan.
- Setiap kenaikan Pendapatan sebesar 1 satuan, akan meningkatkan Konsumsi pada periode berikutnya sebesar 22.83 satuan.
- Setiap kenaikan Pendapatan sebesar 1 satuan, akan meningkatkan Konsumsi pada 2 periode yang akan datang sebesar 19.18 satuan.
- Setiap kenaikan pendapatan sebesar 1 satuan, secara jangka panjang /long run akan meningkatkan konsumsi sebesar 180.939 satuan.