Tugas Eknometika (Inflasi)

Author

Sukmatica Slamet (A013222004)

Published

October 21, 2023

1 Analisis Deret Waktu

Dalam analisis ini, data bulanan tingkat inflasi di Indonesia dari Januari 2016 hingga Desember 2020 akan diunduh dari sumber resmi seperti Badan Pusat Statistik (BPS), kemudian disajikan dalam bentuk plot time series untuk mengidentifikasi pola dan tren. Dilakukan uji stasioneritas, dan jika ditemukan ketidakan stasioneran, proses differencing akan diterapkan. Parameter model ARIMA yang sesuai akan ditentukan menggunakan plot ACF dan PACF, dan model ARIMA akan dilatih dengan data hingga Desember 2020. Selanjutnya, model ini akan divalidasi dengan data aktual pada periode Januari hingga Desember 2021, dan metrik evaluasi seperti RMSE akan digunakan untuk mengukur kinerja model. Akhirnya, model ARIMA yang telah dilatih akan digunakan untuk membuat prediksi tingkat inflasi untuk tahun 2022, dan hasilnya akan dibandingkan dengan data aktual jika tersedia. Analisis ini bertujuan untuk memahami dan memprediksi tingkat inflasi dengan menggunakan metode ARIMA.

1.1 Library

Library yang digunakan dalam analisis ini meliputi: readxl, ggplot2, tseries, forceast.

library(readxl)
library(ggplot2)
library(tseries)
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
library(forecast)

1.2 Data

Dalam analisis ini menggunakan Data Inflasi Indonesia dari tahun 2016 sampai dengan tahun 2020, bersumber dari Badan Pusat Statistik (BPS) Indonesia. Data yang telah di masukkan menggunakan fungsi dari read_excel dengan nama file Inflasi.xlsx.

Selanjutnya data yang digunakan kemudian di trasnformasi kedalam bentuk time series dengan menggunkan fungsi dari ts.

data <- read_excel("Inflasi.xlsx", 
                   sheet = "Sheet2")

data.ts <-  ts(data, 
            frequency=12, 
            start=c(2016,1))

print(data.ts)
      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
2016 4.14 4.42 4.45 3.60 3.33 3.45 3.21 2.79 3.07 3.31 3.58 3.02
2017 3.49 3.83 3.61 4.17 4.33 4.37 3.88 3.82 3.72 3.58 3.30 3.61
2018 3.25 3.18 3.40 3.41 3.23 3.12 3.18 3.20 2.88 3.16 3.23 3.13
2019 2.82 2.57 2.48 2.83 3.32 3.28 3.32 3.49 3.39 3.13 3.00 2.72
2020 2.68 2.98 2.96 2.67 2.19 1.96 1.54 1.32 1.42 1.44 1.59 1.68
plot(data.ts, xlab = "Periode", 
     ylab = "Inflasi", 
     col="black",
     main = "Inflasi")

points(data.ts)

1.3 Uji Stasioner

1.3.1 Augmented Dickey-Fuller (ADF) dan Kwiatkowski-Phillips-Schmidt-Shin (KPSS).

Uji stasioner dilakukan untuk mengetahui apakah data deret waktu yang digunakan bersifat stasioner atau tidak stasioner. Sifat kestasioneran (stationary) sangat penting bagi data time series, karena jika suatu data time series tidak stasioner maka kita hanya dapat mempelajari perilakunya pada waktu tertentu, sedangkan untuk peramalan (forecasting) akan sulit untuk dilakukan. Pengujian terhadap keberadaan unit root untuk semua variabel yang dimasukkan dalam model menunjukkan bahwa seluruh variabel pada level tidak mepunyai unit root atau dapat dikatakan sema variabel stasioner. Dalam Analisis ini menggunakan unit root dengan menggunakan pendekatan uji Augmented Dickey-Fuller (ADF) dan Kwiatkowski-Phillips-Schmidt-Shin (KPSS). uji Augmented Dickey-Fuller (ADF) menggunakan fungsi adf.test dan Kwiatkowski-Phillips-Schmidt-Shin (KPSS) menggunakan fungsi kpss.test.

adf.test(data.ts)

    Augmented Dickey-Fuller Test

data:  data.ts
Dickey-Fuller = -2.5124, Lag order = 3, p-value = 0.3677
alternative hypothesis: stationary
kpss.test(data.ts)
Warning in kpss.test(data.ts): p-value smaller than printed p-value

    KPSS Test for Level Stationarity

data:  data.ts
KPSS Level = 1.0417, Truncation lag parameter = 3, p-value = 0.01

Berdasarkan hasil uji Augmented Dickey-Fuller diperoleh p-value sebesar 0.3667 > 0.05 yang berarti bahwa H0 gagal ditolak atau data tidak stasioner. Karena data tidak stasioner maka selanjutnya dilakukan differencing untuk membuat data stasioner sebelum dilakukan identifikasi model tentatif.

1.3.2 Differencing

Apabila ditemukan data yang tidak stasioner, maka harus menstasionerkan data terlebih dahulu dengan proses differencing. Proses differencing dilakukan sampai data menjadi stasioner

data.dif1<-diff(data.ts,
                differences = 1) 

plot(data.dif1, 
     main = "Data yang Telah di-Differencing")

adf.test(data.dif1)

    Augmented Dickey-Fuller Test

data:  data.dif1
Dickey-Fuller = -3.5252, Lag order = 3, p-value = 0.0472
alternative hypothesis: stationary

Hasilnya hanya perlu 1 kali differencing untuk membuat data stasioner. Jadi model dasar ini bahwa model optimal hanya membutuhkan 1 kali differencing.

1.3.3 ACF dan PACF Plot

plot ACF (Autocorrelation Function) dan PACF (Partial Autocorrelation Function) dari data yang telah didifferencing. Plot ini akan membantu Anda menentukan nilai p (lag untuk model AR) dan q (lag untuk model MA). Selanjutnya Kami membuat model ARIMA menggunakan fungsi auto.arima, fungsi otomatis ini akan memberikan hasil yang optimal dari model arima.

acf(data.dif1, 
    main="Plot ACF Data Inflasi")

pacf(data.dif1,
     main="Plot PACF Data Inflasi")

auto.arima(data,
           trace = TRUE)

 ARIMA(2,1,2) with drift         : 22.14357
 ARIMA(0,1,0) with drift         : 21.15307
 ARIMA(1,1,0) with drift         : 22.9851
 ARIMA(0,1,1) with drift         : 22.77065
 ARIMA(0,1,0)                    : 20.30916
 ARIMA(1,1,1) with drift         : 24.28718

 Best model: ARIMA(0,1,0)                    
Series: data 
ARIMA(0,1,0) 

sigma^2 = 0.07976:  log likelihood = -9.12
AIC=20.24   AICc=20.31   BIC=22.32

Model yang kita peroleh adalah ARIMA(0,1,0), seperti yang kita prediksi sebelum differencing optimum adalah 1, kita bisa melihatnya dari ARIMA(p,d,q) sehingga differencing berdasarkan model adalah d = 1.

1.4 ARIMA

Model ARIMA dengan parameter yang telah ditentukan menggunakan data tingkat inflasi sebelum Desember 2020.

data20.train <- ts(data.ts[1:59,1])

data2 <-ts(data20.train,
                frequency=12, 
                start=c(2016,1))
print(data2)
      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
2016 4.14 4.42 4.45 3.60 3.33 3.45 3.21 2.79 3.07 3.31 3.58 3.02
2017 3.49 3.83 3.61 4.17 4.33 4.37 3.88 3.82 3.72 3.58 3.30 3.61
2018 3.25 3.18 3.40 3.41 3.23 3.12 3.18 3.20 2.88 3.16 3.23 3.13
2019 2.82 2.57 2.48 2.83 3.32 3.28 3.32 3.49 3.39 3.13 3.00 2.72
2020 2.68 2.98 2.96 2.67 2.19 1.96 1.54 1.32 1.42 1.44 1.59     
plot(data2, 
     main = "Data Sebelum Desember 2020")

model_arima <- Arima(data2, order = c(0, 1, 0))

summary(model_arima)
Series: data2 
ARIMA(0,1,0) 

sigma^2 = 0.081:  log likelihood = -9.41
AIC=20.82   AICc=20.89   BIC=22.88

Training set error measures:
                      ME      RMSE       MAE       MPE     MAPE      MASE
Training set -0.04315017 0.2821743 0.2256634 -2.068089 7.658258 0.3267461
                   ACF1
Training set 0.07864049

RMSE adalah akar dari rata-rata kuadrat dari selisih antara nilai aktual dan prediksi. RMSE adalah ukuran kesalahan model yang umum digunakan. Dalam konteks ini, RMSE adalah sekitar 0.2821743, yang berarti rata-rata selisih antara prediksi dan nilai aktual adalah sekitar 0.2821743.

1.4.1 ARIMA dan Prediksi tingkat inflasi 2021

Validasi model ARIMA dengan membandingkan prediksi tingkat inflasi pada periode Januari 2021 hingga Desember 2021 dengan data aktual 2021.

prediksi <- forecast(model_arima, h = 13)

prediksi
         Point Forecast     Lo 80    Hi 80       Lo 95    Hi 95
Dec 2020           1.59 1.2252750 1.954725  1.03220126 2.147799
Jan 2021           1.59 1.0742010 2.105799  0.80115346 2.378847
Feb 2021           1.59 0.9582778 2.221722  0.62386425 2.556136
Mar 2021           1.59 0.8605500 2.319450  0.47440253 2.705597
Apr 2021           1.59 0.7744501 2.405550  0.34272411 2.837276
May 2021           1.59 0.6966099 2.483390  0.22367772 2.956322
Jun 2021           1.59 0.6250284 2.554972  0.11420326 3.065797
Jul 2021           1.59 0.5584019 2.621598  0.01230692 3.167693
Aug 2021           1.59 0.4958250 2.684175 -0.08339621 3.263396
Sep 2021           1.59 0.4366383 2.743362 -0.17391448 3.353914
Oct 2021           1.59 0.3803441 2.799656 -0.26000912 3.440009
Nov 2021           1.59 0.3265556 2.853444 -0.34227150 3.522272
Dec 2021           1.59 0.2749653 2.905035 -0.42117194 3.601172
plot(prediksi, main = "Prediksi Tingkat Inflasi")

data2021 <- read_excel("Inflasi.xlsx", sheet = "2021")
data.aktual2021 <-  ts(data2021, 
            frequency=12, 
            start=c(2021,1))
print(data.aktual2021)
      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
2021 1.55 1.38 1.37 1.42 1.68 1.33 1.52 1.59 1.60 1.66 1.75 1.87
plot(prediksi, main = "Prediksi ARIMA vs Tingkat Inflasi Aktual")

lines(data.aktual2021, 
      col = "red")

legend("topleft", 
       legend = c("Prediksi", "Aktual"), 
       col = c("black", "blue"), lty = 1)

1.4.2 ARIMA dan Prediksi tingkat inflasi 2021

Model ARIMA yang telah dilatih untuk membuat prediksi tingkat inflasi untuk tahun 2022 dan pebandingan prediksi dengan data aktual 2022

prediksi2 <- forecast(model_arima, h = 25)

prediksi2
         Point Forecast         Lo 80    Hi 80       Lo 95    Hi 95
Dec 2020           1.59  1.2252750106 1.954725  1.03220126 2.147799
Jan 2021           1.59  1.0742009734 2.105799  0.80115346 2.378847
Feb 2021           1.59  0.9582777875 2.221722  0.62386425 2.556136
Mar 2021           1.59  0.8605500211 2.319450  0.47440253 2.705597
Apr 2021           1.59  0.7744501305 2.405550  0.34272411 2.837276
May 2021           1.59  0.6966098794 2.483390  0.22367772 2.956322
Jun 2021           1.59  0.6250283810 2.554972  0.11420326 3.065797
Jul 2021           1.59  0.5584019468 2.621598  0.01230692 3.167693
Aug 2021           1.59  0.4958250317 2.684175 -0.08339621 3.263396
Sep 2021           1.59  0.4366383138 2.743362 -0.17391448 3.353914
Oct 2021           1.59  0.3803440583 2.799656 -0.26000912 3.440009
Nov 2021           1.59  0.3265555750 2.853444 -0.34227150 3.522272
Dec 2021           1.59  0.2749653491 2.905035 -0.42117194 3.601172
Jan 2022           1.59  0.2253240491 2.954676 -0.49709176 3.677092
Feb 2022           1.59  0.1774261899 3.002574 -0.57034522 3.750345
Mar 2022           1.59  0.1311000422 3.048900 -0.64119494 3.821195
Apr 2022           1.59  0.0862003442 3.093800 -0.70986311 3.889863
May 2022           1.59  0.0426029202 3.137397 -0.77653961 3.956540
Jun 2022           1.59  0.0002006288 3.179799 -0.84138832 4.021388
Jul 2022           1.59 -0.0410997390 3.221100 -0.90455178 4.084552
Aug 2022           1.59 -0.0813798720 3.261380 -0.96615493 4.146155
Sep 2022           1.59 -0.1207118385 3.300712 -1.02630798 4.206308
Oct 2022           1.59 -0.1591596017 3.339160 -1.08510876 4.265109
Nov 2022           1.59 -0.1967802412 3.376780 -1.14264457 4.322645
Dec 2022           1.59 -0.2336249472 3.413625 -1.19899368 4.378994
plot(prediksi2, main = "Prediksi Tingkat Inflasi")

data2022 <- read_excel("Inflasi.xlsx", sheet = "2022")
View(data2022)
data.aktual2022 <-  ts(data2022, 
            frequency=12, 
            start=c(2022))
print(data.aktual2022)
      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
2022 2.18 2.06 2.64 3.47 3.55 4.35 4.94 4.69 5.95 5.71 5.42 5.51
# Plot prediksi dan data aktual
plot(prediksi2, main = "Prediksi ARIMA vs Tingkat Inflasi Aktual 2022")
lines(data.aktual2022, col = "Red")
legend("topleft", legend = c("Prediksi", "Aktual"), col = c("black", "blue"), lty = 1)

2 Analisis Data Panel

Dalam analisis ini, kami menggunakan paket “readxl” untuk membaca file Excel dan mengimpor data, paket “plm” untuk analisis data panel, paket “car” untuk analisis regresi dan uji statistik, paket “tseries” untuk analisis deret waktu, dan paket “lmtest” untuk uji statistik pada model regresi. Dengan menggunakan paket-paket ini, kami dapat melakukan berbagai analisis yang relevan dengan data yang kami miliki. data penlitian ini terdiri dari data NPL (%) dan Loan Growth (%) dari usaha UMKM selama periode 2013-2022

library(readxl)
library(plm)
library(car)
Loading required package: carData
library(tseries)
library(lmtest)
Loading required package: zoo

Attaching package: 'zoo'
The following objects are masked from 'package:base':

    as.Date, as.Date.numeric
library(car)
library(readxl)
data <- read_excel("datapanelsukma.xlsx")
View(data)

2.1 Transformasi Data

Dalam analisis ini, data Anda telah berhasil ditransformasikan menjadi bentuk panel data menggunakan fungsi pdata.frame() dari paket plm dalam bahasa pemrograman R. Dalam pemodelan data panel, penting untuk mengorganisir data ke dalam bentuk yang tepat, di mana unit pengamatan yang sama diamati dalam beberapa periode waktu. Dengan melakukan transformasi ini, Anda dapat menganalisis hubungan antara variabel dalam unit yang sama seiring wfgsdghndaktu. Dalam kasus ini, data Anda telah diubah menjadi format panel dengan variabel “Code” dan “Year” sebagai indeks panel. Transformasi ini memungkinkan Anda untuk melihat dan menganalisis efek individual serta efek waktu dalam data panel. Data yang digunkan dalam analisis ini

Data_panel <- pdata.frame(x = data, index = c("Code", "Years"))

Data_panel
              Code Years          LG   NPL
Kecil-2013   Kecil  2013  13.3784947  4.28
Kecil-2014   Kecil  2014   1.2634659  7.11
Kecil-2015   Kecil  2015   5.3006095  8.29
Kecil-2016   Kecil  2016  21.1352631  4.30
Kecil-2017   Kecil  2017  15.9289716  9.92
Kecil-2018   Kecil  2018  11.2211246 10.65
Kecil-2019   Kecil  2019  15.5924142 10.71
Kecil-2020   Kecil  2020   5.0290992 11.50
Kecil-2021   Kecil  2021   9.6029626  9.70
Kecil-2022   Kecil  2022  12.4020749 10.58
Mikro-2013   Mikro  2013  22.3437464  2.46
Mikro-2014   Mikro  2014  33.4349969  7.89
Mikro-2015   Mikro  2015   3.2608435  9.35
Mikro-2016   Mikro  2016   0.7886032  2.10
Mikro-2017   Mikro  2017   3.5794390 10.36
Mikro-2018   Mikro  2018   5.3061058 10.38
Mikro-2019   Mikro  2019   7.3932107 12.31
Mikro-2020   Mikro  2020 -10.8462265 12.21
Mikro-2021   Mikro  2021  -5.7506882 10.29
Mikro-2022   Mikro  2022  12.8095137 11.15
Sedang-2013 Sedang  2013  14.5706545  2.72
Sedang-2014 Sedang  2014  17.6259485  3.72
Sedang-2015 Sedang  2015  23.9017644  4.48
Sedang-2016 Sedang  2016  13.0785907  5.06
Sedang-2017 Sedang  2017  21.3822279  7.07
Sedang-2018 Sedang  2018  24.0751438  6.71
Sedang-2019 Sedang  2019  19.9497852  8.30
Sedang-2020 Sedang  2020   7.1611026  8.91
Sedang-2021 Sedang  2021  13.6369994  7.75
Sedang-2022 Sedang  2022  23.6661920 10.42

2.2 Model Data Panel

Dalam analisis ini, kami menggunakan data panel yang terdiri dari unit pengamatan yang sama diamati dalam beberapa periode waktu. Dalam analisis data panel, terdapat beberapa jenis model yang digunakan untuk mengestimasi hubungan antara variabel-variabel dalam data panel. Model-model yang umum digunakan adalah common effect, fixed effect, dan random effect.

Model common effect adalah salah satu jenis model dalam analisis data panel yang memperhitungkan efek individu yang bersifat tetap dan umum bagi semua unit pengamatan. Dalam model ini, efek individu dianggap sebagai variabel yang tidak diamati dan mempengaruhi semua unit pengamatan dalam data panel.. Model fixed effect memperhitungkan efek individual yang konsisten pada setiap unit pengamatan, dengan menambahkan variabel dummy untuk setiap unit. Model random effect memperhitungkan efek individual yang tidak tetap antara unit-unit pengamatan dengan mengasumsikan distribusi acak. Sedangkan, model common effect memperhitungkan efek individu yang umum bagi semua unit pengamatan.

2.2.1 Common Effect Model

common_model <- plm(NPL ~ LG,  data = Data_panel, model = "pooling")
summary(common_model)
Pooling Model

Call:
plm(formula = NPL ~ LG, data = Data_panel, model = "pooling")

Balanced Panel: n = 3, T = 10, N = 30

Residuals:
    Min.  1st Qu.   Median  3rd Qu.     Max. 
-7.25440 -2.17801  0.29746  2.37906  3.76525 

Coefficients:
             Estimate Std. Error t-value  Pr(>|t|)    
(Intercept)  9.447457   0.858734 11.0016 1.123e-11 ***
LG          -0.118004   0.055876 -2.1119   0.04375 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Total Sum of Squares:    274.87
Residual Sum of Squares: 237.1
R-Squared:      0.1374
Adj. R-Squared: 0.10659
F-statistic: 4.46006 on 1 and 28 DF, p-value: 0.043748

2.2.2 Fixed Effect Model

fixed_model <- plm(NPL ~ LG,  data = Data_panel, model = "within", effect = "individual")
summary(fixed_model)
Oneway (individual) effect Within Model

Call:
plm(formula = NPL ~ LG, data = Data_panel, effect = "individual", 
    model = "within")

Balanced Panel: n = 3, T = 10, N = 30

Residuals:
    Min.  1st Qu.   Median  3rd Qu.     Max. 
-7.31104 -1.78363  0.86565  1.91483  4.40765 

Coefficients:
    Estimate Std. Error t-value Pr(>|t|)
LG -0.087072   0.063698  -1.367   0.1833

Total Sum of Squares:    240.62
Residual Sum of Squares: 224.49
R-Squared:      0.06705
Adj. R-Squared: -0.040598
F-statistic: 1.86859 on 1 and 26 DF, p-value: 0.18334

2.2.3 Random Effect Model

random_model <- plm(NPL ~ LG,  data = Data_panel, model = "random")
summary(random_model)
Oneway (individual) effect Random Effect Model 
   (Swamy-Arora's transformation)

Call:
plm(formula = NPL ~ LG, data = Data_panel, model = "random")

Balanced Panel: n = 3, T = 10, N = 30

Effects:
                var std.dev share
idiosyncratic 8.634   2.938     1
individual    0.000   0.000     0
theta: 0

Residuals:
    Min.  1st Qu.   Median  3rd Qu.     Max. 
-7.25440 -2.17801  0.29746  2.37906  3.76525 

Coefficients:
             Estimate Std. Error z-value Pr(>|z|)    
(Intercept)  9.447457   0.858734 11.0016   <2e-16 ***
LG          -0.118004   0.055876 -2.1119   0.0347 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Total Sum of Squares:    274.87
Residual Sum of Squares: 237.1
R-Squared:      0.1374
Adj. R-Squared: 0.10659
Chisq: 4.46006 on 1 DF, p-value: 0.034696

2.3 Pemilihan Model

Untuk memilih model yang paling tepat terdapat beberapa pengujian yang dapat dilakukan, antara lain:

Uji Chow Chow test adalah pengujian untuk menentukan model apakah Common Effect (CE) ataukah Fixed Effect (FE) yang paling tepat digunakan dalam mengestimasi data panel. Apabila Hasil: H0: Pilih PLS (CE) H1: Pilih FE (FE)

Uji Hausman Hausman test adalah pengujian statistik untuk memilih apakah model Fixed Effect atau Random Effect yang paling tepat digunakan. Apabila Hasil: H0: Pilih RE H1: Pilih FE.

Uji Lagrange Multiplier Uji Lagrange Multiplier (LM) adalah uji untuk mengetahui apakah model Random Effect lebih baik daripada metode Common Effect (PLS) digunakan. Apabila Hasil: H0: Pilih PLS H1: Pilih RE.

# Uji Chow
chow_test <- pooltest(common_model, fixed_model)
chow_test

    F statistic

data:  NPL ~ LG
F = 0.73044, df1 = 2, df2 = 26, p-value = 0.4913
alternative hypothesis: unstability
# Uji Hausman
hausman_test <- phtest(fixed_model, random_model)
hausman_test

    Hausman Test

data:  NPL ~ LG
chisq = 1.023, df = 1, p-value = 0.3118
alternative hypothesis: one model is inconsistent
# Uji Lagrange Multiplier
lagrange_test <- plmtest(fixed_model, effect = "individual", type = "bp")
lagrange_test

    Lagrange Multiplier Test - (Breusch-Pagan)

data:  NPL ~ LG
chisq = 0.51131, df = 1, p-value = 0.4746
alternative hypothesis: significant effects

kriteria pemilihan model yang paling tepat adalah berdasarkan p-value dengan tingkat signifikansi 0.05 (atau nilai alpha yang sejenis), mari kita evaluasi hasil pengujian dengan kriteria ini:

Pada pengujian Chow test, p-value adalah 0.4913. Dengan tingkat signifikansi 0.05, karena p-value (0.4913) lebih besar dari alpha (0.05), kita tidak memiliki cukup bukti statistik untuk menolak hipotesis nol (H0: Pilih PLS/CE). Oleh karena itu, berdasarkan kriteria ini, kita tidak memilih Fixed Effect (FE). Hasil Hausman test menunjukkan p-value adalah 0.3118. Dengan tingkat signifikansi 0.05, karena p-value (0.3118) juga lebih besar dari alpha (0.05), kita tidak memiliki cukup bukti statistik untuk menolak hipotesis nol (H0: Pilih RE). Oleh karena itu, berdasarkan kriteria ini, kita tidak memilih Fixed Effect (FE) juga. Hasil Lagrange Multiplier Test menunjukkan p-value adalah 0.4746. Dengan tingkat signifikansi 0.05, p-value (0.4746) lebih besar dari alpha (0.05), yang menunjukkan bahwa kita tidak memiliki cukup bukti statistik untuk menolak hipotesis nol (H0: Pilih PLS/CE). Oleh karena itu, berdasarkan kriteria ini, kita tidak memilih Random Effect (RE). Berdasarkan hasil penelitian maka random effect model yang digunakan dalam analisis ini

2.4 Asumsi KLasik

2.4.1 Normalitas

# Uji Jarque-Bera
jarque_bera_test <- jarque.bera.test(residuals(random_model))
jarque_bera_test

    Jarque Bera Test

data:  residuals(random_model)
X-squared = 2.7596, df = 2, p-value = 0.2516

Hasil Jarque-Bera Test menunjukkan bahwa nilai uji chi-squared adalah 2.7596 dengan derajat kebebasan (df) sebesar 2, dan p-value sebesar 0.2516. Dalam konteks uji normalitas, Jarque-Bera Test digunakan untuk menguji apakah residual dari model yang digunakan (dalam hal ini, “random_model”) mengikuti distribusi normal.

2.4.2 Heterokedestisitas:

# Uji Breusch-Pagan
breusch_pagan_test <- bptest(random_model)
breusch_pagan_test

    studentized Breusch-Pagan test

data:  random_model
BP = 0.0012441, df = 1, p-value = 0.9719
# Uji White
white_test <- bptest(random_model, studentize = FALSE)
white_test

    Breusch-Pagan test

data:  random_model
BP = 0.0010616, df = 1, p-value = 0.974

Hasil uji Breusch-Pagan menunjukkan bahwa p-value untuk kedua model, yaitu “random_model” dan “fixed_model,” cukup besar. Uji Breusch-Pagan digunakan untuk menguji kehadiran heteroskedastisitas dalam residual dari model regresi. Dalam konteks “random_model,” nilai uji Breusch-Pagan (BP) adalah 0.0012441 dengan derajat kebebasan (df) sebesar 1, dan p-value sebesar 0.9719. Sementara pada “random_model,” nilai uji Breusch-Pagan (BP) adalah 0.0010616 dengan df = 1, dan p-value sebesar 0.974. Dalam keduanya, p-value yang cukup besar, melebihi tingkat signifikansi umumnya pada 0.05, menunjukkan bahwa tidak ada cukup bukti statistik untuk menolak hipotesis nol. Dengan demikian, hasil ini menyiratkan bahwa tidak ada bukti yang cukup untuk menyatakan adanya heteroskedastisitas dalam residual dari kedua model

2.4.3 Autokorelasi

residuals_fixed <- residuals(random_model)
residuals_fixed
 Kecil-2013  Kecil-2014  Kecil-2015  Kecil-2016  Kecil-2017  Kecil-2018 
-3.58874064 -2.18836256 -0.53196345 -2.65341090  2.35222585  2.52668105 
 Kecil-2019  Kecil-2020  Kecil-2021  Kecil-2022  Mikro-2013  Mikro-2014 
 3.10251073  2.64599724  1.38573145  2.59603791 -4.35080503  2.38800695 
 Mikro-2015  Mikro-2016  Mikro-2017  Mikro-2018  Mikro-2019  Mikro-2020 
 0.28733600 -7.25439827  1.33493154  1.55868514  3.73497188  1.48264523 
 Mikro-2021  Mikro-2022 Sedang-2013 Sedang-2014 Sedang-2015 Sedang-2016 
 0.16393916  3.21411732 -5.00806101 -3.64752408 -2.14695267 -2.84413051 
Sedang-2017 Sedang-2018 Sedang-2019 Sedang-2020 Sedang-2021 Sedang-2022 
 0.14573194  0.10350681  1.20669796  0.30758219 -0.08823605  3.76524884 
bg_test <- bgtest(random_model, order = 1, type = "F")
bg_test

    Breusch-Godfrey test for serial correlation of order up to 1

data:  random_model
LM test = 0.54292, df1 = 1, df2 = 27, p-value = 0.4676

Hasil uji Breusch-Godfrey menunjukkan bahwa p-value untuk model “random_model” adalah 0.4676. Uji Breusch-Godfrey digunakan untuk menguji kehadiran autokorelasi (korelasi antara residual dalam deret waktu).

Dalam hasil ini, dengan tingkat signifikansi umumnya diatur pada 0.05, p-value (0.4676) lebih besar dari alpha (0.05). Oleh karena itu, kita tidak memiliki cukup bukti statistik untuk menolak hipotesis nol. Hipotesis nol dalam uji Breusch-Godfrey adalah bahwa tidak ada autokorelasi dalam residual model.

Berdasarkan hasil ini, kita dapat menyimpulkan bahwa dalam “random_model,” tidak ada cukup bukti statistik untuk menyatakan adanya autokorelasi hingga urutan 1 (order up to 1) dalam residual.

2.5 GMM

Melakukan pendugaan parameter menggunakan First Differences generalized method of moments (FD-GMM) Arellano dan Bond (1991) melakukan prosedur pembedaan pertama (first difference) pada persamaan regresi data panel dinamis tanpa peubah penjelas untuk memperoleh instrumen first difference yang valid (berkorelasi dengan yi,t- 1-yi,t-2 dan tidak berkorelasi dengan vi,t-vi,t-1 sehingga menghilangkan pengaruh individu μi). Instrumen GMM dengan lag dari peubah respons mulai dari t-2, atau disebut FD-GMM.

gmm_model <- pgmm(formula = NPL ~ lag(NPL) + LG | lag(NPL, 2),
               data = Data_panel, effect = "individual", model = "onestep",
               transformation = "d")
Warning in pgmm(formula = NPL ~ lag(NPL) + LG | lag(NPL, 2), data = Data_panel,
: the second-step matrix is singular, a general inverse is used
summary(gmm_model)
Warning in vcovHC.pgmm(object): a general inverse is used
Oneway (individual) effect One-step model Difference GMM 

Call:
pgmm(formula = NPL ~ lag(NPL) + LG | lag(NPL, 2), data = Data_panel, 
    effect = "individual", model = "onestep", transformation = "d")

Balanced Panel: n = 3, T = 10, N = 30

Number of Observations Used: 24
Residuals:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
-7.2630 -0.2415  0.5508  0.6120  1.6254  7.8345 

Coefficients:
          Estimate Std. Error z-value Pr(>|z|)
lag(NPL) -0.078581   0.147829 -0.5316   0.5950
LG       -0.051681   0.040736 -1.2687   0.2046

Sargan test: chisq(7) = 3 (p-value = 0.885)
Autocorrelation test (1): normal = -1.672849 (p-value = 0.094357)
Autocorrelation test (2): normal = 1.282483 (p-value = 0.19967)
Wald test for coefficients: chisq(2) = 1.944687 (p-value = 0.3782)

Analisis data panel menggunakan model GMM dengan efek individu (one-way individual effect), model satu langkah (onestep), dan perbedaan (difference) menghasilkan beberapa temuan kunci. Data panel terdiri dari 30 unit individu dengan masing-masing memiliki 10 periode waktu, meskipun dalam analisis hanya menggunakan 24 observasi. Hasil model menunjukkan bahwa koefisien untuk lag(NPL) dan LG memiliki p-value yang lebih besar dari tingkat signifikansi umumnya, menunjukkan bahwa keduanya tidak signifikan dalam mempengaruhi NPL. Uji statistik, seperti uji Sargan dan uji autokorelasi, menunjukkan konsistensi model dengan instrumen dan ketiadaan autokorelasi. Meskipun demikian, penting untuk merinci implikasi praktis dari temuan ini dalam konteks analisis data panel dan mempertimbangkan asumsi-asumsi yang mendasarinya.

3 2SLS

Dalam analisis data ekonometrika, metode Ordinary Least Squares (OLS) sering digunakan untuk memodelkan hubungan antara variabel dependen dan variabel independen. Namun, terkadang kita menghadapi situasi di mana ada variabel instrumental yang berkorelasi dengan variabel independen dan variabel dependen yang tidak bersifat eksogen. Dalam kasus ini, metode Two-Stage Least Squares (2SLS) dapat digunakan untuk menangani masalah endogenitas variabel.

Analisis data di atas merupakan bagian dari penelitian yang mencoba untuk memahami hubungan antara variabel Loan Growth (LG), Baki Debet (BD), Non-Performing Loans (NPL), dan Jumlah Rekening (JR) dalam konteks skala usaha yang berbeda. Analisis dilakukan dengan menggunakan metode Ordinary Least Squares (OLS) dan metode regresi dua tahap terbatas (2SLS) untuk mengatasi masalah potensial endogenitas dalam model.

library(AER)
Loading required package: sandwich
Loading required package: survival
data2sls <- read_excel("data2sls.xlsx")
head(data2sls)
# A tibble: 6 × 6
  `Skala Usaha` Periode     LG     BD   NPL    JR
  <chr>           <dbl>  <dbl>  <dbl> <dbl> <dbl>
1 Mikro            2013 22.3   118889  2.46  6.65
2 <NA>             2014 33.4   158640  7.89  9.22
3 <NA>             2015  3.26  176412  9.35 10.2 
4 <NA>             2016  0.789 195621  2.1  11.8 
5 <NA>             2017  3.58  221409 10.4  12.2 
6 <NA>             2018  5.31  251336 10.4  12.4 

3.1 OLS Regression

reg <- lm(LG ~ log(BD) + NPL, data = data2sls)
summary(reg)

Call:
lm(formula = LG ~ log(BD) + NPL, data = data2sls)

Residuals:
    Min      1Q  Median      3Q     Max 
-16.906  -4.396  -0.470   5.838  24.649 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept) -43.9270    58.0612  -0.757    0.456  
log(BD)       5.2898     4.6849   1.129    0.269  
NPL          -1.3473     0.5721  -2.355    0.026 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 9.096 on 27 degrees of freedom
Multiple R-squared:  0.1763,    Adjusted R-squared:  0.1153 
F-statistic: 2.889 on 2 and 27 DF,  p-value: 0.07293

Hasil analisis OLS menunjukkan bahwa variabel logaritma Baki Debet (log(BD)) dan NPL memiliki pengaruh yang signifikan terhadap variabel Loan Growth (LG) pada tingkat kepercayaan tertentu. Koefisien log(BD) memiliki dampak positif yang signifikan pada LG, sedangkan koefisien NPL memiliki dampak negatif yang signifikan. Namun, perlu diingat bahwa hasil analisis OLS belum mengatasi masalah potensial endogenitas.

3.2 2SLS Estimation

iv <- ivreg(LG ~ log(BD) + NPL | NPL + JR, data = data2sls)
summary(iv)

Call:
ivreg(formula = LG ~ log(BD) + NPL | NPL + JR, data = data2sls)

Residuals:
      Min        1Q    Median        3Q       Max 
-30.61822 -17.59031  -0.08909  11.12843  60.44725 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -723.293   1121.565  -0.645    0.524
log(BD)       60.288     90.792   0.664    0.512
NPL           -3.249      3.420  -0.950    0.350

Residual standard error: 22.47 on 27 degrees of freedom
Multiple R-Squared: -4.028, Adjusted R-squared: -4.401 
Wald test: 0.5894 on 2 and 27 DF,  p-value: 0.5617 

Untuk mengatasi masalah endogenitas, analisis dilanjutkan dengan metode 2SLS. Hasil analisis 2SLS menunjukkan bahwa penggunaan instrumental variabel (JR) untuk menggantikan variabel NPL dalam model tidak memberikan hasil yang signifikan. Koefisien log(BD) dan NPL tetap tidak signifikan dalam model 2SLS. Hasil ini mengindikasikan bahwa pemilihan instrumental variabel mungkin tidak cukup tepat untuk mengatasi endogenitas dalam model.

3.3 2SLS Estimation (Detail)

reg1 <- lm(log(BD) ~ NPL + JR, data = data2sls)
summary(reg1)

Call:
lm(formula = log(BD) ~ NPL + JR, data = data2sls)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.71859 -0.24815 -0.01284  0.31711  0.60635 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 12.342376   0.192271  64.193   <2e-16 ***
NPL          0.039906   0.023733   1.681    0.104    
JR          -0.005415   0.008107  -0.668    0.510    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.3706 on 27 degrees of freedom
Multiple R-squared:  0.09515,   Adjusted R-squared:  0.02813 
F-statistic:  1.42 on 2 and 27 DF,  p-value: 0.2593
BD_hat <- fitted(reg1)
reg2 <- lm(LG ~ BD_hat + NPL, data = data2sls)
summary(reg2)

Call:
lm(formula = LG ~ BD_hat + NPL, data = data2sls)

Residuals:
     Min       1Q   Median       3Q      Max 
-17.5776  -5.1638  -0.2751   5.4642  22.2897 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept) -723.293    441.880  -1.637    0.113  
BD_hat        60.288     35.771   1.685    0.103  
NPL           -3.249      1.347  -2.412    0.023 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.855 on 27 degrees of freedom
Multiple R-squared:  0.2195,    Adjusted R-squared:  0.1617 
F-statistic: 3.797 on 2 and 27 DF,  p-value: 0.03523

Hasil analisis dengan model regresi LM (Least Squares) menunjukkan bahwa variabel Loan Growth (LG) secara signifikan dipengaruhi oleh variabel instrumental BD_hat dan Non-Performing Loans (NPL). Koefisien BD_hat memiliki nilai sekitar 60.288, dengan standar error sekitar 35.771, menunjukkan dampak positif yang signifikan pada variabel Loan Growth (LG) pada tingkat kepercayaan sekitar 90%. Di sisi lain, koefisien NPL memiliki nilai sekitar -3.249, dengan standar error sekitar 1.347, dan menunjukkan dampak negatif yang signifikan pada variabel Loan Growth (LG) pada tingkat kepercayaan sekitar 95%. Meskipun koefisien intersep negatif, ia tidak signifikan pada tingkat kepercayaan yang tinggi, menunjukkan bahwa ketika kedua variabel BD_hat dan NPL adalah nol, Loan Growth (LG) tidak selalu nol. Statistik-model, seperti residual standard error, multiple R-squared, dan adjusted R-squared, memberikan informasi tentang kualitas model. Residual standard error adalah sekitar 8.855, yang mengukur sebaran residu di sekitar garis regresi. Multiple R-squared adalah sekitar 0.2195, yang mengindikasikan sejauh mana model menjelaskan variasi dalam variabel dependen. Adjusted R-squared adalah sekitar 0.1617, yang memperhitungkan jumlah variabel independen dalam model. F-statistic adalah sekitar 3.797, dan p-value adalah sekitar 0.03523, mengukur signifikansi keseluruhan model.