library(readxl)
library(ggplot2)
library(tseries)Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
library(forecast)library(readxl)
library(ggplot2)
library(tseries)Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
library(forecast)Dalam analisis ini menggunakan Data Inflasi Indonesia dari tahun 2016 sampai dengan tahun 2020, bersumber dari Badan Pusat Statistik (BPS) Indonesia.
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)Pengujian stasioneritas digunakan untuk menentukan apakah data time series yang digunakan memiliki karakteristik stasioner atau tidak. Kestasioneran sangat penting dalam analisis data time series karena ketidakstasioneran data dapat menghambat kemampuan kita untuk melakukan peramalan. Hasil pengujian untuk adanya unit root pada semua variabel yang dimasukkan dalam model menunjukkan bahwa tidak ada unit root atau dapat dikatakan bahwa semua variabel bersifat stasioner pada tingkatnya. Dalam analisis ini, uji dilakukan menggunakan dua metode, yaitu uji Augmented Dickey-Fuller (ADF) dengan menggunakan fungsi adf.test dan uji Kwiatkowski-Phillips-Schmidt-Shin (KPSS) dengan 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.
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.
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.
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 singkatan dari Root Mean Squared Error, yang merupakan metrik evaluasi yang umum digunakan untuk mengukur kesalahan model. Dalam kasus ini, RMSE memiliki nilai sekitar 0.2821743, yang mengindikasikan bahwa rata-rata selisih antara prediksi dan nilai aktual adalah sekitar 0.2821743.
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)Model ARIMA yang telah disiapkan akan digunakan untuk melakukan perkiraan tingkat inflasi untuk tahun 2022, dan kemudian akan dibandingkan dengan data inflasi sebenarnya yang tercatat pada tahun tersebut.
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)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.
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(readxl)
data1 <- read_excel("datahendrik2.xlsx", sheet = "Lembar1")
View(data1)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 waktu. 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.
panel1 <- pdata.frame(x = data1, index = c("Code", "Years"))
panel1 Code Years GDP TO TI
IDN-2000 IDN 2000 1845.228 71.43688 0.9255639
IDN-2001 IDN 2001 1885.680 69.79321 2.0186139
IDN-2002 IDN 2002 1943.645 59.07946 2.1341357
IDN-2003 IDN 2003 2009.490 53.61649 2.3870198
IDN-2004 IDN 2004 2083.883 59.76129 2.6002859
IDN-2005 IDN 2005 2174.915 63.98794 3.6020248
IDN-2006 IDN 2006 2264.936 56.65713 4.7648131
IDN-2007 IDN 2007 2377.255 54.82925 5.7862747
IDN-2008 IDN 2008 2487.611 58.56140 7.9174794
IDN-2009 IDN 2009 2569.874 45.51212 6.9200000
IDN-2010 IDN 2010 2695.868 46.70127 10.9200000
IDN-2011 IDN 2011 2826.480 50.18001 12.2800000
IDN-2012 IDN 2012 2959.514 49.58290 14.5200000
IDN-2013 IDN 2013 3086.323 48.63737 14.9400000
IDN-2014 IDN 2014 3203.484 48.08018 17.1400000
IDN-2015 IDN 2015 3322.582 41.93764 22.0627426
IDN-2016 IDN 2016 3453.049 37.42134 25.4473537
IDN-2017 IDN 2017 3591.780 39.35550 32.3358062
IDN-2018 IDN 2018 3741.305 43.07431 39.9046386
IDN-2019 IDN 2019 3892.422 37.62778 47.6906490
IDN-2020 IDN 2020 3780.122 32.97218 53.7264945
IDN-2021 IDN 2021 3892.962 40.19775 62.1044784
IDN-2022 IDN 2022 4073.610 45.39331 66.4846128
MYS-2000 MYS 2000 6461.981 220.40679 21.3847312
MYS-2001 MYS 2001 6330.618 203.36464 26.6959725
MYS-2002 MYS 2002 6506.107 199.35623 32.3382043
MYS-2003 MYS 2003 6716.632 194.19513 34.9711523
MYS-2004 MYS 2004 7004.127 210.37427 42.2522656
MYS-2005 MYS 2005 7209.606 203.85464 48.6291703
MYS-2006 MYS 2006 7444.015 202.57715 51.6379890
MYS-2007 MYS 2007 7742.566 192.46551 55.7000000
MYS-2008 MYS 2008 7948.935 176.66832 55.8000000
MYS-2009 MYS 2009 7675.226 162.55897 55.9000000
MYS-2010 MYS 2010 8101.394 157.94476 56.3000000
MYS-2011 MYS 2011 8393.950 154.93768 61.0000000
MYS-2012 MYS 2012 8711.282 147.84175 65.8000000
MYS-2013 MYS 2013 8976.531 142.72099 57.0575123
MYS-2014 MYS 2014 9369.087 138.31223 63.6654259
MYS-2015 MYS 2015 9699.585 131.37007 71.0640678
MYS-2016 MYS 2016 9984.148 126.89901 78.7883099
MYS-2017 MYS 2017 10416.025 133.15517 80.1404790
MYS-2018 MYS 2018 10777.749 130.40263 81.2010486
MYS-2019 MYS 2019 11114.543 123.02856 84.1871450
MYS-2020 MYS 2020 10374.190 116.82859 89.5550119
MYS-2021 MYS 2021 10575.877 130.56985 96.7514278
MYS-2022 MYS 2022 11371.970 140.74555 97.3986404
PHL-2000 PHL 2000 1831.699 85.15337 1.9822532
PHL-2001 PHL 2001 1848.015 84.90039 2.5240057
PHL-2002 PHL 2002 1877.562 83.84480 4.3322757
PHL-2003 PHL 2003 1933.648 87.57464 4.8576723
PHL-2004 PHL 2004 2020.130 87.12528 5.2436285
PHL-2005 PHL 2005 2079.332 83.84567 5.3976363
PHL-2006 PHL 2006 2149.006 80.85054 5.7405863
PHL-2007 PHL 2007 2246.690 73.64498 5.9700000
PHL-2008 PHL 2008 2300.856 67.68107 6.2200000
PHL-2009 PHL 2009 2291.623 60.88659 9.0000000
PHL-2010 PHL 2010 2415.784 66.10428 25.0000000
PHL-2011 PHL 2011 2464.684 60.79584 29.0000000
PHL-2012 PHL 2012 2589.134 57.84201 30.8000000
PHL-2013 PHL 2013 2717.680 55.82478 32.7000000
PHL-2014 PHL 2014 2843.844 57.46817 34.7000000
PHL-2015 PHL 2015 2974.297 59.14159 36.9000000
PHL-2016 PHL 2016 3130.911 61.77607 39.2000000
PHL-2017 PHL 2017 3289.472 68.16837 41.6000000
PHL-2018 PHL 2018 3439.101 72.16340 44.1000000
PHL-2019 PHL 2019 3589.614 68.84184 43.0266119
PHL-2020 PHL 2020 3195.539 58.16956 47.1119081
PHL-2021 PHL 2021 3328.042 63.48461 52.6757381
PHL-2022 PHL 2022 3527.981 72.41669 55.2300000
THA-2000 THA 2000 3511.440 121.29796 3.6890413
THA-2001 THA 2001 3599.096 120.26797 5.5563261
THA-2002 THA 2002 3786.338 114.96974 7.5312503
THA-2003 THA 2003 4023.813 116.69282 9.2990272
THA-2004 THA 2004 4241.902 127.41187 10.6773033
THA-2005 THA 2005 4385.281 137.85387 15.0260044
THA-2006 THA 2006 4568.556 134.08695 17.1607147
THA-2007 THA 2007 4780.303 129.87323 20.0300000
THA-2008 THA 2008 4826.577 140.43701 18.2000000
THA-2009 THA 2009 4758.934 119.26942 20.1000000
THA-2010 THA 2010 5082.254 127.25052 22.4000000
THA-2011 THA 2011 5091.958 139.67541 23.6699256
THA-2012 THA 2012 5425.685 137.67494 26.4600000
THA-2013 THA 2013 5537.742 132.46227 28.9400000
THA-2014 THA 2014 5561.698 130.90550 34.8900000
THA-2015 THA 2015 5708.794 124.83966 39.3161267
THA-2016 THA 2016 5878.754 120.57523 47.5049656
THA-2017 THA 2017 6099.198 120.89143 52.8919293
THA-2018 THA 2018 6336.240 120.84186 56.8174809
THA-2019 THA 2019 6453.894 109.68951 66.6524195
THA-2020 THA 2020 6048.100 97.79969 77.8437407
THA-2021 THA 2021 6127.590 117.24343 85.2695667
THA-2022 THA 2022 6278.173 133.91343 87.9772810
VNM-2000 VNM 2000 1183.854 111.41709 0.2542483
VNM-2001 VNM 2001 1244.307 111.95594 1.2656512
VNM-2002 VNM 2002 1309.430 116.69687 1.8549992
VNM-2003 VNM 2003 1385.449 124.32795 3.7802808
VNM-2004 VNM 2004 1474.741 133.01650 7.6424085
VNM-2005 VNM 2005 1570.193 130.71485 12.7399293
VNM-2006 VNM 2006 1663.560 138.31362 17.2545617
VNM-2007 VNM 2007 1765.123 154.60538 20.7554448
VNM-2008 VNM 2008 1846.867 154.31748 23.9200000
VNM-2009 VNM 2009 1926.624 134.70632 26.5500000
VNM-2010 VNM 2010 2028.606 113.97770 30.6500000
VNM-2011 VNM 2011 2135.782 125.26059 35.0700000
VNM-2012 VNM 2012 2229.320 123.22413 36.8000000
VNM-2013 VNM 2013 2327.933 130.84634 38.5000000
VNM-2014 VNM 2014 2451.159 135.41051 41.0000000
VNM-2015 VNM 2015 2595.235 144.91422 45.0000000
VNM-2016 VNM 2016 2741.053 145.40951 53.0000000
VNM-2017 VNM 2017 2903.028 160.98007 58.1400000
VNM-2018 VNM 2018 3090.772 164.66394 69.8479287
VNM-2019 VNM 2019 3288.353 164.70422 68.6615802
VNM-2020 VNM 2020 3352.060 163.24586 70.3000001
VNM-2021 VNM 2021 3409.025 186.46818 74.2099999
VNM-2022 VNM 2022 3655.463 200.03000 78.5899992
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.
common_model <- plm(log(GDP) ~ TO + TI, data = panel1, model = "pooling")
summary(common_model)Pooling Model
Call:
plm(formula = log(GDP) ~ TO + TI, data = panel1, model = "pooling")
Balanced Panel: n = 5, T = 23, N = 115
Residuals:
Min. 1st Qu. Median 3rd Qu. Max.
-0.835599 -0.169365 0.048872 0.347082 0.509312
Coefficients:
Estimate Std. Error t-value Pr(>|t|)
(Intercept) 7.43310355 0.09273722 80.1523 < 2.2e-16 ***
TO 0.00254422 0.00080981 3.1417 0.002149 **
TI 0.01396556 0.00144756 9.6477 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Total Sum of Squares: 37.238
Residual Sum of Squares: 16.42
R-Squared: 0.55905
Adj. R-Squared: 0.55118
F-statistic: 70.9998 on 2 and 112 DF, p-value: < 2.22e-16
fixed_model <- plm(log(GDP) ~ TO + TI, data = panel1, model = "within", effect = "individual")
summary(fixed_model)Oneway (individual) effect Within Model
Call:
plm(formula = log(GDP) ~ TO + TI, data = panel1, effect = "individual",
model = "within")
Balanced Panel: n = 5, T = 23, N = 115
Residuals:
Min. 1st Qu. Median 3rd Qu. Max.
-0.3474330 -0.0551852 0.0067417 0.0705186 0.1707003
Coefficients:
Estimate Std. Error t-value Pr(>|t|)
TO 0.00089345 0.00050089 1.7837 0.07727 .
TI 0.01028105 0.00044378 23.1670 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Total Sum of Squares: 6.9048
Residual Sum of Squares: 1.1325
R-Squared: 0.83599
Adj. R-Squared: 0.82687
F-statistic: 275.238 on 2 and 108 DF, p-value: < 2.22e-16
random_model <- plm(log(GDP) ~ TO + TI, data = panel1, model = "random")
summary(random_model)Oneway (individual) effect Random Effect Model
(Swamy-Arora's transformation)
Call:
plm(formula = log(GDP) ~ TO + TI, data = panel1, model = "random")
Balanced Panel: n = 5, T = 23, N = 115
Effects:
var std.dev share
idiosyncratic 0.01049 0.10240 0.053
individual 0.18636 0.43169 0.947
theta: 0.9506
Residuals:
Min. 1st Qu. Median 3rd Qu. Max.
-0.3331037 -0.0584859 0.0094111 0.0720834 0.1679431
Coefficients:
Estimate Std. Error z-value Pr(>|z|)
(Intercept) 7.73853259 0.20255357 38.2049 < 2e-16 ***
TO 0.00093284 0.00049769 1.8743 0.06088 .
TI 0.01030541 0.00044328 23.2480 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Total Sum of Squares: 6.9788
Residual Sum of Squares: 1.1756
R-Squared: 0.83155
Adj. R-Squared: 0.82855
Chisq: 552.899 on 2 DF, p-value: < 2.22e-16
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: log(GDP) ~ TO + TI
F = 364.47, df1 = 4, df2 = 108, p-value < 2.2e-16
alternative hypothesis: unstability
# Uji Hausman
hausman_test <- phtest(fixed_model, random_model)
hausman_test
Hausman Test
data: log(GDP) ~ TO + TI
chisq = 0.12288, df = 2, p-value = 0.9404
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: log(GDP) ~ TO + TI
chisq = 980.86, df = 1, p-value < 2.2e-16
alternative hypothesis: significant effects
Hasil Chow test menunjukkan bahwa F-statistik adalah 364.47 dengan df1 = 4, df2 = 108, dan p-value yang jauh lebih kecil dari tingkat signifikansi 0.05 (p-value < 2.2e-16). Hipotesis nol (H0) dalam Chow test adalah untuk memilih model Common Effect (CE/PLS), sementara hipotesis alternatif (H1) adalah untuk memilih model Fixed Effect (FE). Dengan p-value yang sangat kecil, kita memiliki cukup bukti statistik untuk menolak hipotesis nol, yang berarti kita lebih cenderung memilih model Fixed Effect (FE) daripada Common Effect (CE/PLS) berdasarkan kriteria ini.
Hasil Hausman test menunjukkan bahwa chisquare adalah 0.12288 dengan df = 2, dan p-value = 0.9404. Hipotesis nol dalam Hausman test adalah untuk memilih model Random Effect (RE), sementara hipotesis alternatif adalah untuk memilih model Fixed Effect (FE). Dengan p-value yang lebih besar dari tingkat signifikansi 0.05, kita tidak memiliki cukup bukti statistik untuk menolak hipotesis nol. Hasil ini menunjukkan bahwa model Random Effect (RE) lebih sesuai berdasarkan kriteria ini.
Hasil Lagrange Multiplier Test menunjukkan bahwa chisquare adalah 980.86 dengan df = 1, dan p-value yang sangat kecil (p-value < 2.2e-16). Hipotesis nol dalam uji ini adalah untuk memilih model Common Effect (CE/PLS), sementara hipotesis alternatif adalah untuk memilih model Random Effect (RE). Dengan p-value yang sangat kecil, kita memiliki cukup bukti statistik untuk menolak hipotesis nol, yang menunjukkan bahwa model Random Effect (RE) lebih sesuai berdasarkan kriteria ini.
# Uji Jarque-Bera
jarque_bera_test <- jarque.bera.test(residuals(random_model))
jarque_bera_test
Jarque Bera Test
data: residuals(random_model)
X-squared = 15.598, df = 2, p-value = 0.0004102
Berdasarkan hasil ini, kita dapat menyimpulkan bahwa residual dari “random_model” tidak mengikuti distribusi normal. Hasil uji normalitas yang signifikan ini mengindikasikan ketidaknormalan dalam distribusi residual model. Hal ini perlu dipertimbangkan dalam evaluasi kecocokan model statistik. Jika asumsi distribusi normal tidak terpenuhi, analisis lebih lanjut atau transformasi data mungkin diperlukan untuk memperbaiki kecocokan model.
# Uji Breusch-Pagan
breusch_pagan_test <- bptest(random_model)
breusch_pagan_test
studentized Breusch-Pagan test
data: random_model
BP = 42.1, df = 2, p-value = 7.211e-10
# Uji White
white_test <- bptest(random_model, studentize = FALSE)
white_test
Breusch-Pagan test
data: random_model
BP = 24.993, df = 2, p-value = 3.74e-06
Hasil uji Breusch-Pagan menunjukkan nilai uji BP sebesar 42.1 dengan derajat kebebasan (df) sebesar 2, dan p-value yang sangat rendah (p-value = 7.211e-10). P-value yang sangat rendah, jauh lebih kecil dari tingkat signifikansi umumnya yang diatur pada 0.05, mengindikasikan adanya heteroskedastisitas dalam residual model “random_model.”
Hasil uji white yang kedua juga menunjukkan adanya heteroskedastisitas dalam model “random_model.” Nilai uji BP adalah 24.993 dengan df = 2, dan p-value yang sangat rendah (p-value = 3.74e-06).
library(car)
vif(lm(log(GDP) ~ TO + TI, data = panel1)) TO TI
1.142106 1.142106
Berdasarakan Analisis, jika nilai VIF melebihi 10, ini dapat dianggap sebagai tanda adanya multikolinearitas yang signifikan. Dalam kasus ini, dengan VIF sekitar 1.142106, nilai-nilai VIF ini tidak menunjukkan adanya multikolinearitas yang signifikan. Oleh karena itu, dalam hal ini, tingkat multikolinearitas cenderung rendah dan tidak memerlukan tindakan khusus.
residuals_fixed <- residuals(random_model)
residuals_fixed IDN-2000 IDN-2001 IDN-2002 IDN-2003 IDN-2004
-0.2383848328 -0.2264302575 -0.1873498738 -0.1515440608 -0.1231220795
IDN-2005 IDN-2006 IDN-2007 IDN-2008 IDN-2009
-0.0946312528 -0.0592190954 -0.0196404896 0.0002915399 0.0552778896
IDN-2010 IDN-2011 IDN-2012 IDN-2013 IDN-2014
0.0608102867 0.0908618004 0.1143276370 0.1528366129 0.1679430836
IDN-2015 IDN-2016 IDN-2017 IDN-2018 IDN-2019
0.1594452267 0.1672940328 0.1338915991 0.0932092377 0.0576488715
IDN-2020 IDN-2021 IDN-2022 MYS-2000 MYS-2001
-0.0294853914 -0.0931500718 -0.0977764862 0.1085139621 0.0491389927
MYS-2002 MYS-2003 MYS-2004 MYS-2005 MYS-2006
0.0220761323 0.0316025598 -0.0166123051 -0.0473324161 -0.0451517504
MYS-2007 MYS-2008 MYS-2009 MYS-2010 MYS-2011
-0.0382571294 0.0017534087 -0.0211555895 0.0330650102 0.0229096812
MYS-2012 MYS-2013 MYS-2014 MYS-2015 MYS-2016
0.0171708676 0.1420372475 0.1208547718 0.0857520562 0.0392368441
MYS-2017 MYS-2018 MYS-2019 MYS-2020 MYS-2021
0.0618130648 0.0875894121 0.0944659278 -0.0240019828 -0.0917277820
MYS-2022 PHL-2000 PHL-2001 PHL-2002 PHL-2003
-0.0353139454 -0.1228508285 -0.1193298300 -0.1211182241 -0.1005775753
PHL-2004 PHL-2005 PHL-2006 PHL-2007 PHL-2008
-0.0603824791 -0.0300253532 0.0021933162 0.0510031854 0.0778135074
PHL-2009 PHL-2010 PHL-2011 PHL-2012 PHL-2013
0.0514815434 -0.0655088401 -0.0817385172 -0.0482729444 -0.0175165997
PHL-2014 PHL-2015 PHL-2016 PHL-2017 PHL-2018
0.0057175782 0.0263357969 0.0514920244 0.0701992796 0.0851918372
PHL-2019 PHL-2020 PHL-2021 PHL-2022 THA-2000
0.1421866397 -0.0062473315 -0.0279144798 -0.0042278581 -0.0337630379
THA-2001 THA-2002 THA-2003 THA-2004 THA-2005
-0.0273890103 0.0079176614 0.0489232891 0.0775021584 0.0561882004
THA-2006 THA-2007 THA-2008 THA-2009 THA-2010
0.0786466735 0.0983149699 0.1169530942 0.1030048344 0.1375884734
THA-2011 THA-2012 THA-2013 THA-2014 THA-2015
0.1148185854 0.1514135879 0.1511614488 0.0956129579 0.0817627649
THA-2016 THA-2017 THA-2018 THA-2019 THA-2020
0.0306884456 0.0116910598 0.0094110518 -0.0631404965 -0.2323198523
THA-2021 THA-2022 VNM-2000 VNM-2001 VNM-2002
-0.3139266779 -0.3331036714 -0.2185633663 -0.1796858853 -0.1391681161
VNM-2003 VNM-2004 VNM-2005 VNM-2006 VNM-2007
-0.1096955761 -0.0951432770 -0.0828118023 -0.0786644946 -0.0706795907
VNM-2008 VNM-2009 VNM-2010 VNM-2011 VNM-2012
-0.0577526518 -0.0242832292 0.0043805402 -0.0002102244 0.0267248255
VNM-2013 VNM-2014 VNM-2015 VNM-2016 VNM-2017
0.0453792661 0.0669385596 0.0739674596 0.0457271954 0.0356448222
VNM-2018 VNM-2019 VNM-2020 VNM-2021 VNM-2022
-0.0257801383 0.0483739756 0.0520380760 0.0069323092 0.0189400009
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 = 1309.6, df1 = 1, df2 = 111, p-value < 2.2e-16
Hasil dari uji Breusch-Godfrey untuk autokorelasi serial hingga orde 1 (serial correlation of order 1) dalam model “random_model” menunjukkan hasil yang signifikan:
Nilai uji LM (Lagrange Multiplier) adalah 1309.6 dengan df1 = 1 dan df2 = 111.
P-value yang dihasilkan sangat rendah, yakni p-value < 2.2e-16.
Dalam analisis ini, p-value yang sangat rendah mengindikasikan adanya autokorelasi serial yang signifikan dalam residual model “random_model.” Autokorelasi serial terjadi ketika terdapat pola korelasi antara nilai residual pada waktu sebelumnya dengan nilai residual pada waktu sekarang.
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 = log(GDP) ~ lag(log(GDP)) + TO + TI | lag(log(GDP), 2),
data = panel1, effect = "individual", model = "onestep",
transformation = "d")Warning in pgmm(formula = log(GDP) ~ lag(log(GDP)) + TO + TI | lag(log(GDP), :
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 = log(GDP) ~ lag(log(GDP)) + TO + TI | lag(log(GDP),
2), data = panel1, effect = "individual", model = "onestep",
transformation = "d")
Balanced Panel: n = 5, T = 23, N = 115
Number of Observations Used: 105
Residuals:
Min. 1st Qu. Median Mean 3rd Qu. Max.
-0.1511261 -0.0077259 -0.0007966 0.0017458 0.0083757 0.1588813
Coefficients:
Estimate Std. Error z-value Pr(>|z|)
lag(log(GDP)) 1.03501623 0.04519381 22.9017 < 2.2e-16 ***
TO 0.00075781 0.00022887 3.3112 0.0009291 ***
TI -0.00034504 0.00023948 -1.4408 0.1496423
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Sargan test: chisq(20) = 5 (p-value = 0.99972)
Autocorrelation test (1): normal = -1.695909 (p-value = 0.089903)
Autocorrelation test (2): normal = -1.208524 (p-value = 0.22685)
Wald test for coefficients: chisq(3) = 3125.115 (p-value = < 2.22e-16)
Model One-way (individual) effect One-step GMM telah dijalankan pada data panel yang seimbang dengan lima unit individu dan dua puluh tiga periode waktu, menghasilkan hasil yang informatif. Koefisien lag(log(GDP)) memiliki estimasi yang tinggi dan signifikan secara statistik, menunjukkan pengaruh yang kuat dari variabel lag(log(GDP)) terhadap log(GDP) saat ini. Begitu juga, koefisien untuk variabel TO juga signifikan, menandakan pengaruh yang kuat dari TO terhadap variabel dependen. Namun, variabel TI tidak memiliki pengaruh yang signifikan dalam model ini, karena p-value lebih besar dari tingkat signifikansi 0.05. Uji Sargan menunjukkan bahwa model ini konsisten secara over-identifying restrictions, dan uji autokorelasi tidak menunjukkan autokorelasi yang signifikan dalam residual. Hasil uji Wald menunjukkan bahwa setidaknya satu dari koefisien dalam model ini signifikan.
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.
Dalam konteks penggunaan bahasa pemrograman R, kita dapat menggunakan paket AER untuk melakukan analisis 2SLS. Setelah memuat dataset yang relevan, seperti dataset “mroz” dari paket wooldridge, kita dapat membangun model 2SLS menggunakan fungsi ivreg() yang disediakan oleh paket AER. Dalam penelitian ini, dataset “mroz” dari paket “wooldridge” digunakan sebagai landasan dalam analisis data ekonometrika. Dengan memuat paket “AER” dan “wooldridge” dalam bahasa pemrograman R, dataset ini dapat diakses dan digunakan untuk memahami hubungan antara variabel dependen dan independen dalam konteks pendapatan dan tingkat pendidikan perempuan. Langkah awal melibatkan impor dataset dan melihat sebagian awal dari data dengan perintah “head(hprice3)” untuk memverifikasi bahwa dataset telah dimuat dengan benar. Dataset ini memberikan dasar yang kuat untuk analisis ekonometrika selanjutnya, yang akan membantu dalam mendapatkan pemahaman yang lebih dalam tentang faktor-faktor yang memengaruhi pendapatan perempuan dan implikasinya dalam konteks ekonomi.
library(AER)Loading required package: sandwich
Loading required package: survival
library(wooldridge)
data("hprice3")
head(hprice3) year age agesq nbh cbd inst linst price rooms area land baths dist
1 1978 48 2304 4 3000 1000 6.9078 60000 7 1660 4578 1 10700
2 1978 83 6889 4 4000 1000 6.9078 40000 6 2612 8370 2 11000
3 1978 58 3364 4 4000 1000 6.9078 34000 6 1144 5000 1 11500
4 1978 11 121 4 4000 1000 6.9078 63900 5 1136 10000 1 11900
5 1978 48 2304 4 4000 2000 7.6009 44000 5 1868 10000 1 12100
6 1978 78 6084 4 3000 2000 7.6009 46000 6 1780 9500 3 10000
ldist lprice y81 larea lland linstsq
1 9.277999 11.00210 0 7.414573 8.429017 47.71770
2 9.305651 10.59663 0 7.867871 9.032409 47.71770
3 9.350102 10.43412 0 7.042286 8.517193 47.71770
4 9.384294 11.06507 0 7.035269 9.210340 47.71770
5 9.400961 10.69195 0 7.532624 9.210340 57.77368
6 9.210340 10.73640 0 7.484369 9.159047 57.77368
colSums(is.na(hprice3)) year age agesq nbh cbd inst linst price rooms area
0 0 0 0 0 0 0 0 0 0
land baths dist ldist lprice y81 larea lland linstsq
0 0 0 0 0 0 0 0 0
reg <- lm(lprice ~ larea + cbd, data=hprice3)
summary(reg)
Call:
lm(formula = lprice ~ larea + cbd, data = hprice3)
Residuals:
Min 1Q Median 3Q Max
-1.20256 -0.18267 -0.01855 0.22190 0.80735
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.204e+00 4.068e-01 12.793 < 2e-16 ***
larea 7.947e-01 5.424e-02 14.650 < 2e-16 ***
cbd 8.664e-06 2.061e-06 4.203 3.42e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.323 on 318 degrees of freedom
Multiple R-squared: 0.4601, Adjusted R-squared: 0.4567
F-statistic: 135.5 on 2 and 318 DF, p-value: < 2.2e-16
Tingkatkan kelengkapan analisis dalam artikel yang sedang dibahas, kita perlu mempertimbangkan konsep pengendalian endogenitas dalam konteks estimasi model regresi. Analisis yang dipersembahkan mencakup dua langkah penting: regresi Ordinary Least Squares (OLS) dan estimasi Two-Stage Least Squares (2SLS). Dalam langkah pertama, analisis OLS menunjukkan hubungan signifikan antara variabel dependen (lprice) dan dua variabel independen, yaitu larea (logaritma luas rumah) dan variabel cbd. Hasil ini mengindikasikan bahwa peningkatan luas rumah dan variabel cbd secara signifikan berkontribusi terhadap peningkatan harga properti.
iv <- ivreg(lprice ~ larea + cbd | cbd + linst, data = hprice3)
summary(iv)
Call:
ivreg(formula = lprice ~ larea + cbd | cbd + linst, data = hprice3)
Residuals:
Min 1Q Median 3Q Max
-1.563286 -0.230741 -0.008881 0.265870 1.388035
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.037e+00 2.529e+00 -0.805 0.421
larea 1.764e+00 3.386e-01 5.211 3.39e-07 ***
cbd 7.871e-07 3.961e-06 0.199 0.843
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.4573 on 318 degrees of freedom
Multiple R-Squared: -0.08221, Adjusted R-squared: -0.08902
Wald test: 27.64 on 2 and 318 DF, p-value: 8.545e-12
Namun, penilaian OLS dapat dipengaruhi oleh masalah endogenitas, yang timbul ketika variabel independen berkorelasi dengan gangguan dalam model. Untuk mengatasi masalah ini, tahap kedua analisis 2SLS diterapkan. Pada tahap pertama 2SLS, variabel instrumen (linst) diperkenalkan, dan melalui regresi variabel larea terhadap cbd dan linst, kita mengamati bahwa variabel instrumen tersebut berperan penting dalam menggambarkan hubungan antara larea dan cbd.
reg1 <- lm(larea ~ cbd+ linst, data = hprice3)
summary(reg1)
Call:
lm(formula = larea ~ cbd + linst, data = hprice3)
Residuals:
Min 1Q Median 3Q Max
-0.99043 -0.19631 0.04878 0.20963 0.87945
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.648e+00 4.400e-01 12.837 < 2e-16 ***
cbd -9.053e-06 4.606e-06 -1.966 0.0502 .
linst 2.207e-01 5.315e-02 4.153 4.22e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.3252 on 318 degrees of freedom
Multiple R-squared: 0.09482, Adjusted R-squared: 0.08913
F-statistic: 16.66 on 2 and 318 DF, p-value: 1.321e-07
larea_hat <- fitted(reg1)reg2 <- lm(lprice ~ larea_hat + cbd, data = hprice3)
summary(reg2)
Call:
lm(formula = lprice ~ larea_hat + cbd, data = hprice3)
Residuals:
Min 1Q Median 3Q Max
-1.25208 -0.25838 -0.04987 0.28636 1.19439
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.037e+00 2.191e+00 -0.930 0.353
larea_hat 1.764e+00 2.932e-01 6.016 4.92e-09 ***
cbd 7.871e-07 3.431e-06 0.229 0.819
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.396 on 318 degrees of freedom
Multiple R-squared: 0.1881, Adjusted R-squared: 0.183
F-statistic: 36.85 on 2 and 318 DF, p-value: 4.05e-15
Hasil tahap kedua 2SLS mengindikasikan bahwa analisis ini mampu memberikan estimasi koefisien yang konsisten, yang merupakan langkah kritis dalam menyelesaikan masalah endogenitas. Dengan kata lain, analisis 2SLS menghasilkan estimasi yang lebih handal dan akurat untuk mengidentifikasi dampak larea dan cbd terhadap harga properti, dengan mempertimbangkan peran variabel instrumen yang relevan.