Author:
- G1401221027 Nabil Ibni Nawawi
lapply(c("kableExtra","tidyverse","plm","tinytex","tseries","lmtest",
"broom", "stargazer", "RColorBrewer"), library, character.only = T)[[1]]
## Warning: package 'kableExtra' was built under R version 4.3.3
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'readr' was built under R version 4.3.3
## Warning: package 'forcats' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.5.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::group_rows() masks kableExtra::group_rows()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## Warning: package 'plm' was built under R version 4.3.3
##
## Attaching package: 'plm'
##
## The following objects are masked from 'package:dplyr':
##
## between, lag, lead
## Warning: package 'tinytex' was built under R version 4.3.2
## Warning: package 'tseries' was built under R version 4.3.2
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## Warning: package 'lmtest' was built under R version 4.3.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.2
##
## Attaching package: 'zoo'
##
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
##
## Please cite as:
##
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
## [1] "kableExtra" "stats" "graphics" "grDevices" "utils"
## [6] "datasets" "methods" "base"
Data
Data yang digunakan adalah data Tingkat Pengangguran Terbuka atau TPT Dengan 5 Peubah bebas. Data ini berjenis data panel dengan individunya adalah 27 Kab/Kota di Provinsi Jawa Barat selama 6 tahun (Tahun 2019-2024) dengan peubah-peubah sebagai berikut:
TPT : Tingkat Pengangguran Terbuka (%)
PPP : Pengeluaran per Kapita Disesuaikan (000 Rp)
TPAK : Tingkat Partisipasi Angkatan Kerja (%)
IPM : Indeks Pembangunan Manusia
Laju_PDRB : Laju Pertumbuhan Produk Domestik Regional Bruto (%)
UHH : Usia Harapan Hidup (Tahun)
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
data <- read_xlsx("C:/Users/Nabil Ibni Nawawi/Documents/KULIAH/Semester 7/Data laporan individu.xlsx")
# Ganti nama "Kab/kota" menjadi "Kab_Kota"
data <- data %>%
rename(Kab_Kota = "Kab/kota")
glimpse(data)
## Rows: 162
## Columns: 8
## $ Kab_Kota <chr> "Bogor", "Bogor", "Bogor", "Bogor", "Bogor", "Bogor", "Sukab…
## $ Tahun <dbl> 2019, 2020, 2021, 2022, 2023, 2024, 2019, 2020, 2021, 2022, …
## $ TPT <dbl> 9.11, 14.29, 12.22, 10.64, 8.47, 7.34, 8.05, 9.60, 9.51, 7.7…
## $ PPP <dbl> 10683, 10317, 10410, 10860, 11153, 11563, 8973, 8823, 8850, …
## $ TPAK <dbl> 65.41, 62.65, 62.55, 63.75, 64.22, 66.30, 62.65, 61.56, 64.9…
## $ IPM <dbl> 70.65, 70.40, 70.60, 71.20, 71.78, 73.02, 66.87, 66.88, 67.0…
## $ Laju_PDRB <dbl> 5.85, -1.76, 3.55, 5.25, 5.19, 5.21, 5.75, -0.92, 3.74, 5.12…
## $ UHH <dbl> 71.01, 71.17, 71.36, 71.65, 71.92, 74.67, 70.73, 70.97, 71.2…
data %>% head(6)
Memunculkan 6 data teratas yaitu Kabupaten Bogor dari tahun 2019-2024
Metodologi
Metodologi yang digunakan adalah sebagai berikut:
Eksplorasi Data
Menduga parameter model CEM
Menduga parameter model FEM
Melakukan Uji Chow
Menduga Parameter model REM
Melakukan Uji Hausman
Pengujian asumsi terhadap Model terpilih
Jika asumsi tidak terpenuhi, akan dilakukan penanganan asumsi
Interpretasi model terbaik
Eksplorasi Data
ggplot(data=data, aes(x=Tahun, y=TPT, group = Kab_Kota, colour = `Kab_Kota`))+ theme_bw()+
geom_line(size=1.2) +
geom_point( size=3, shape=19, fill="red") +
labs(colour="Kab/kota di Jawa Barat", title = "Tingkat Pengangguran Terbuka di Provinsi Jaa Barat", subtitle = "Tahun 2019-2024") +
theme(plot.title = element_text(hjust = 0.5,face = "bold"), plot.subtitle = element_text(hjust = 0.5))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Pemeriksaan Multikolinearitas
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## The following object is masked from 'package:purrr':
##
## some
model1 <- lm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data%>%filter(Tahun==2019))
model2 <- lm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data%>%filter(Tahun==2020))
model3 <- lm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data%>%filter(Tahun==2021))
model4 <- lm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data%>%filter(Tahun==2022))
model5 <- lm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data%>%filter(Tahun==2023))
model6 <- lm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data%>%filter(Tahun==2024))
model7 <- lm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data)
Multikol <- rbind(as.vector(vif(model1)),as.vector(vif(model2)),as.vector(vif(model3)),
as.vector(vif(model4)),as.vector(vif(model5)),as.vector(vif(model6)),
as.vector(vif(model7))
)
rownames(Multikol) <- c("Tahun 2019","Tahun 2020","Tahun 2021","Tahun 2022","Tahun 2023","Tahun 2024","Tahun 2019-2024")
colnames(Multikol) <- c("PPP","TPAK","IPM","Laju_PDRB","UHH")
Multikol
## PPP TPAK IPM Laju_PDRB UHH
## Tahun 2019 1.614983 1.130421 4.295582 1.265116 3.728583
## Tahun 2020 7.737058 1.281353 10.956850 1.424642 3.702810
## Tahun 2021 7.232151 1.223194 11.474664 1.127248 3.520951
## Tahun 2022 6.851901 1.157600 10.597876 1.103759 3.427951
## Tahun 2023 6.965912 1.280379 10.750549 1.135291 3.536625
## Tahun 2024 6.698210 1.559521 10.912721 1.114671 4.355190
## Tahun 2019-2024 2.638796 1.149296 4.128022 1.065506 2.326944
Pada model7 yaitu gabungan semua tahun tidak ada multikolinearitas
Common-Effect Model
cem <- plm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data = data, model = "pooling")
summary(cem)
## Pooling Model
##
## Call:
## plm(formula = TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data = data,
## model = "pooling")
##
## Balanced Panel: n = 27, T = 6, N = 162
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -4.1624758 -1.0181231 0.0012771 0.9971749 3.7896946
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) 2.4964e+01 7.4711e+00 3.3414 0.001043 **
## PPP -3.7483e-05 7.1742e-05 -0.5225 0.602083
## TPAK -3.7927e-01 3.7090e-02 -10.2256 < 2.2e-16 ***
## IPM 4.7038e-02 5.5597e-02 0.8461 0.398813
## Laju_PDRB -3.3390e-01 5.1188e-02 -6.5230 9.11e-10 ***
## UHH 8.9451e-02 1.2233e-01 0.7312 0.465724
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 933.39
## Residual Sum of Squares: 413.3
## R-Squared: 0.55721
## Adj. R-Squared: 0.54301
## F-statistic: 39.2617 on 5 and 156 DF, p-value: < 2.22e-16
Fixed-Effect Model
FEM Individual
fem <- plm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH,
index = c("Kab_Kota", "Tahun"),
model = "within", effect = "individual", data = data)
summary(fem)
## Oneway (individual) effect Within Model
##
## Call:
## plm(formula = TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data = data,
## effect = "individual", model = "within", index = c("Kab_Kota",
## "Tahun"))
##
## Balanced Panel: n = 27, T = 6, N = 162
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -2.530954 -0.530904 0.030307 0.423286 1.977777
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## PPP -1.9881e-05 4.7358e-05 -0.4198 0.675322
## TPAK -1.1196e-01 3.8572e-02 -2.9027 0.004348 **
## IPM -6.3644e-01 2.1572e-01 -2.9503 0.003767 **
## Laju_PDRB -2.5426e-01 3.1981e-02 -7.9503 7.853e-13 ***
## UHH 5.7192e-02 1.6720e-01 0.3421 0.732861
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 306.07
## Residual Sum of Squares: 92.335
## R-Squared: 0.69832
## Adj. R-Squared: 0.62638
## F-statistic: 60.1827 on 5 and 130 DF, p-value: < 2.22e-16
Nilai intersep dari setiap individu
summary(fixef(fem, effect="individual"))
## Estimate Std. Error t-value Pr(>|t|)
## Bandung 57.8073 6.4744 8.9285 3.539e-15 ***
## Bandung Barat 57.3496 6.0273 9.5150 < 2.2e-16 ***
## Bekasi 61.5530 6.7478 9.1219 1.195e-15 ***
## Bogor 59.9756 6.3092 9.5060 < 2.2e-16 ***
## Ciamis 54.5968 6.3129 8.6485 1.689e-14 ***
## Cianjur 55.6998 5.7632 9.6647 < 2.2e-16 ***
## Cirebon 57.8816 6.1406 9.4260 < 2.2e-16 ***
## Garut 55.0061 5.8519 9.3997 2.493e-16 ***
## Indramayu 55.3306 5.9701 9.2679 5.248e-16 ***
## Karawang 59.7677 6.3055 9.4786 < 2.2e-16 ***
## Kota Bandung 66.3795 7.6677 8.6571 1.611e-14 ***
## Kota Banjar 56.6183 6.4798 8.7377 1.028e-14 ***
## Kota Bekasi 65.6410 7.6579 8.5717 2.588e-14 ***
## Kota Bogor 63.5726 6.9992 9.0829 1.488e-15 ***
## Kota Cimahi 65.1765 7.2114 9.0380 1.916e-15 ***
## Kota Cirebon 61.4103 6.9094 8.8880 4.441e-15 ***
## Kota Depok 63.9377 7.6030 8.4096 6.348e-14 ***
## Kota Sukabumi 61.2742 6.8417 8.9559 3.035e-15 ***
## Kota Tasikmalaya 58.4771 6.6175 8.8367 5.914e-15 ***
## Kuningan 58.6202 6.1057 9.6009 < 2.2e-16 ***
## Majalengka 53.4871 5.9632 8.9695 2.813e-15 ***
## Pangandaran 52.6101 5.9985 8.7705 8.560e-15 ***
## Purwakarta 58.9544 6.3391 9.3000 4.378e-16 ***
## Subang 57.3188 6.0723 9.4393 < 2.2e-16 ***
## Sukabumi 55.8397 5.8974 9.4685 < 2.2e-16 ***
## Sumedang 58.5567 6.4185 9.1231 1.187e-15 ***
## Tasikmalaya 52.4882 5.8423 8.9841 2.592e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Nilai diatas adalah nilai pengaruh konstan dari masing-masing individu pada model.
FEM TIME
Efek komponen sisaaan satu arah pada waktu.
fem_time <- plm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH,
index = c("Kab_Kota", "Tahun"),
model = "within", effect = "time", data = data)
summary(fem_time)
## Oneway (time) effect Within Model
##
## Call:
## plm(formula = TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data = data,
## effect = "time", model = "within", index = c("Kab_Kota",
## "Tahun"))
##
## Balanced Panel: n = 27, T = 6, N = 162
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -3.856457 -1.036173 0.094455 0.934954 3.893045
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## PPP -2.0687e-05 7.1282e-05 -0.2902 0.772049
## TPAK -3.3556e-01 3.6785e-02 -9.1221 4.351e-16 ***
## IPM -3.5110e-02 5.8917e-02 -0.5959 0.552120
## Laju_PDRB -3.1587e-01 1.3630e-01 -2.3175 0.021822 *
## UHH 5.2153e-01 1.6364e-01 3.1869 0.001748 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 698.67
## Residual Sum of Squares: 359.39
## R-Squared: 0.48561
## Adj. R-Squared: 0.45154
## F-statistic: 28.5101 on 5 and 151 DF, p-value: < 2.22e-16
Nilai Intersep dari setiap waktu
summary(fixef(fem_time, effect="time"))
## Estimate Std. Error t-value Pr(>|t|)
## 2019 -3.3986 10.2129 -0.3328 0.7398
## 2020 -3.5679 10.1110 -0.3529 0.7247
## 2021 -2.6996 10.2050 -0.2645 0.7917
## 2022 -3.4169 10.2845 -0.3322 0.7402
## 2023 -3.9289 10.3212 -0.3807 0.7040
## 2024 -5.2883 10.5967 -0.4990 0.6185
FEM TWO WAYS
fem_twoways <- plm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH,
index = c("Kab_Kota", "Tahun"),
model = "within", effect = "twoways", data = data)
summary(fem_twoways)
## Twoways effects Within Model
##
## Call:
## plm(formula = TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data = data,
## effect = "twoways", model = "within", index = c("Kab_Kota",
## "Tahun"))
##
## Balanced Panel: n = 27, T = 6, N = 162
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -2.222890 -0.436116 0.038384 0.427058 1.999620
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## PPP -9.6683e-05 4.2087e-05 -2.2972 0.02327 *
## TPAK -7.9904e-02 3.3212e-02 -2.4058 0.01760 *
## IPM -1.4441e-01 4.2357e-01 -0.3409 0.73372
## Laju_PDRB -8.0353e-02 7.3896e-02 -1.0874 0.27896
## UHH 6.3306e-02 2.3909e-01 0.2648 0.79162
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 71.353
## Residual Sum of Squares: 63.924
## R-Squared: 0.10412
## Adj. R-Squared: -0.15389
## F-statistic: 2.90552 on 5 and 125 DF, p-value: 0.016216
Nilai Intersep dari setiap individu dan waktu
data.frame(summary(fixef(fem_twoways, effect="twoways")))
Uji-Chow
Uji Chow adalah uji formal untuk menguji ada atau tidaknya pengaruh spesifik individu dan pengaruh spesifik waktu pada data panel.
Hipotesis pada uji ini yaitu :
- Untuk menguji pengaruh individu
\[ \begin{aligned} H_{01} &: \text{Tidak ada pengaruh spesifik individu} \\ H_{11} &: \text{Ada pengaruh spesifik individu} \end{aligned} \]
- Untuk menguji pengaruh waktu
\[ \begin{aligned} H_{02} &: \text{Tidak ada pengaruh spesifik waktu} \\ H_{12} &: \text{Ada pengaruh spesifik waktu} \end{aligned} \]
Statsitik Uji yang digunakan :
- Pengaruh individu
\[ \begin{aligned} F_{Hitung} = \frac{JKG_{MG} - JKG_{MPTI}}{JKG_{MPTI}} . \frac{NT-N-K}{N-1} \end{aligned} \]
- Pengaruh Waktu
\[ \begin{aligned} F_{Hitung} = \frac{JKG_{MG} - JKG_{MPTW}}{JKG_{MPTW}} . \frac{N-T-K}{T-1} \end{aligned} \]
Uji Chow
\[ \begin{aligned} H_0 &: \text{Model Common Effect} \\ H_1 &: \text{Model Fixed Effect} \end{aligned} \]
\(H_0\) akan ditolak apabila
p-value lebih kecil dari alpha yaitu 0.05
pooltest(cem, fem)
##
## F statistic
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## F = 17.38, df1 = 26, df2 = 130, p-value < 2.2e-16
## alternative hypothesis: unstability
Nilai p-value sebesar \(2.2e-16\) berarti keputusan Tolak
H0 atau model fixed effect lebih layak digunakan pada data ini.
Uji pengaruh individu / waktu
Selanjutnya karena yang terpilih adalah model Fixed-Effect akan dilihat komponen yang memiliki pengaruh tetap apakah individu, waktu, atau keduanya.
Efek Individu dan Waktu
plmtest(fem, type = "bp", effect = "twoways")
##
## Lagrange Multiplier Test - two-ways effects (Breusch-Pagan)
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## chisq = 141.57, df = 2, p-value < 2.2e-16
## alternative hypothesis: significant effects
Efek Individu dan Waktu
plmtest(fem, type = "bp", effect = "individual")
##
## Lagrange Multiplier Test - (Breusch-Pagan)
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## chisq = 136.71, df = 1, p-value < 2.2e-16
## alternative hypothesis: significant effects
Efek Waktu
plmtest(fem, type = "bp", effect = "time")
##
## Lagrange Multiplier Test - time effects (Breusch-Pagan)
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## chisq = 4.8679, df = 1, p-value = 0.02736
## alternative hypothesis: significant effects
Dari ketiga uji diatas didapat nilai p-value yang lebih kecil dari 0.05 yang berarti keputusannya adalah Tolak \(H_0\) atau terdapat pengaruh yang signifikan dari individu maupun waktu. Sehingga akan diduga parameter pengaruh twoways pada Random Effect Model.
pFtest(fem_twoways, fem)
##
## F test for twoways effects
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## F = 11.111, df1 = 5, df2 = 125, p-value = 7.188e-09
## alternative hypothesis: significant effects
Random-Effect Model
Model pengaruh acak mengasumsikan tidak ada korelasi antara pengaruh spesifik individu dan pengaruh spesifik waktu dengan peubah bebas. Asumsi ini membuat komponen sisaan dari pengaruh spesifik individu dan pengaruh spesifik waktu dimasukan kedalam sisaan.
REM Generalized Least Square
# Ini akan menampilkan berapa jumlah "Kab_kota" unik
length(unique(data$Kab_Kota))
## [1] 27
rem_gls <- plm(TPT ~ PPP + TPAK + UHH + Laju_PDRB,
index = c("Kab_Kota", "Tahun"),
model = "random", effect = "twoways", data = data)
summary(rem_gls)
## Twoways effects Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = TPT ~ PPP + TPAK + UHH + Laju_PDRB, data = data,
## effect = "twoways", model = "random", index = c("Kab_Kota",
## "Tahun"))
##
## Balanced Panel: n = 27, T = 6, N = 162
##
## Effects:
## var std.dev share
## idiosyncratic 0.50781 0.71260 0.224
## individual 1.73280 1.31636 0.765
## time 0.02471 0.15721 0.011
## theta: 0.7842 (id) 0.3426 (time) 0.3363 (total)
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -1.638030 -0.536556 -0.032285 0.477151 2.395001
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 3.5686e+01 6.3720e+00 5.6003 2.139e-08 ***
## PPP -5.1324e-05 4.3534e-05 -1.1789 0.23843
## TPAK -1.8116e-01 3.4635e-02 -5.2306 1.690e-07 ***
## UHH -1.9050e-01 9.0708e-02 -2.1002 0.03572 *
## Laju_PDRB -2.9524e-01 3.8189e-02 -7.7311 1.066e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 202
## Residual Sum of Squares: 109.64
## R-Squared: 0.45724
## Adj. R-Squared: 0.44341
## Chisq: 132.262 on 4 DF, p-value: < 2.22e-16
rem_gls2 <- plm(TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH,
index = c("Kab_Kota", "Tahun"),
model = "random", effect = "twoways", random.method = "walhus", data = data)
summary(rem_gls2)
## Twoways effects Random Effect Model
## (Wallace-Hussain's transformation)
##
## Call:
## plm(formula = TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH, data = data,
## effect = "twoways", model = "random", random.method = "walhus",
## index = c("Kab_Kota", "Tahun"))
##
## Balanced Panel: n = 27, T = 6, N = 162
##
## Effects:
## var std.dev share
## idiosyncratic 0.8452 0.9193 0.332
## individual 1.5195 1.2327 0.597
## time 0.1813 0.4258 0.071
## theta: 0.7087 (id) 0.6163 (time) 0.5635 (total)
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -1.788411 -0.568696 -0.019345 0.565388 2.521512
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 2.0622e+01 7.9613e+00 2.5902 0.009591 **
## PPP -8.1536e-05 4.7074e-05 -1.7321 0.083259 .
## TPAK -1.7893e-01 3.4477e-02 -5.1898 2.105e-07 ***
## IPM 1.4791e-01 6.8700e-02 2.1530 0.031316 *
## Laju_PDRB -2.7165e-01 5.5268e-02 -4.9151 8.874e-07 ***
## UHH -1.2979e-01 1.3702e-01 -0.9473 0.343496
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 159.13
## Residual Sum of Squares: 111.69
## R-Squared: 0.29815
## Adj. R-Squared: 0.27565
## Chisq: 66.2696 on 5 DF, p-value: 6.11e-13
Cek Signifikansi Pengaruh Individu
#efek individu
plmtest(rem_gls,type = "bp", effect="individu")
##
## Lagrange Multiplier Test - (Breusch-Pagan)
##
## data: TPT ~ PPP + TPAK + UHH + Laju_PDRB
## chisq = 129.46, df = 1, p-value < 2.2e-16
## alternative hypothesis: significant effects
#efek individu
plmtest(rem_gls2,type = "bp", effect="individu")
##
## Lagrange Multiplier Test - (Breusch-Pagan)
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## chisq = 136.71, df = 1, p-value < 2.2e-16
## alternative hypothesis: significant effects
Karena nilai p-value < 0.05, maka tolak \(H_0\) atau pengaruh individu signifikan terhadap model.
Cek Signifikansi Pengaruh Waktu
#efek waktu
plmtest(rem_gls,type = "bp", effect="time")
##
## Lagrange Multiplier Test - time effects (Breusch-Pagan)
##
## data: TPT ~ PPP + TPAK + UHH + Laju_PDRB
## chisq = 6.1288, df = 1, p-value = 0.0133
## alternative hypothesis: significant effects
Karena nilai p-value < 0.05, maka tolak \(H_0\) atau pengaruh waktu signifikan terhadap model. Artinya, model twoways tepat digunakan untuk metode REM.
#efek waktu
plmtest(rem_gls2,type = "bp", effect="time")
##
## Lagrange Multiplier Test - time effects (Breusch-Pagan)
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## chisq = 4.8679, df = 1, p-value = 0.02736
## alternative hypothesis: significant effects
Karena nilai p-value < 0.05, maka tolak \(H_0\) atau pengaruh waktu signifikan terhadap model. Artinya, model twoways tepat digunakan untuk metode REM.
tidy_ranef <- tidy(ranef(rem_gls, effect="individual"))
## Warning: 'tidy.numeric' is deprecated.
## See help("Deprecated")
kable(tidy_ranef, digits=3, caption = "Pengaruh Acak Individu",
col.names = c("Kab/kota", "Pengaruh Acak Individu"))
| Kab/kota | Pengaruh Acak Individu |
|---|---|
| Bandung | -1.015 |
| Bandung Barat | 0.664 |
| Bekasi | 1.402 |
| Bogor | 1.613 |
| Ciamis | -3.199 |
| Cianjur | 0.681 |
| Cirebon | 0.657 |
| Garut | -0.597 |
| Indramayu | -0.796 |
| Karawang | 1.428 |
| Kota Bandung | 2.038 |
| Kota Banjar | -2.261 |
| Kota Bekasi | 1.365 |
| Kota Bogor | 2.083 |
| Kota Cimahi | 2.799 |
| Kota Cirebon | 0.533 |
| Kota Depok | -0.118 |
| Kota Sukabumi | 0.411 |
| Kota Tasikmalaya | -1.016 |
| Kuningan | 1.464 |
| Majalengka | -2.798 |
| Pangandaran | -3.064 |
| Purwakarta | 0.424 |
| Subang | 0.517 |
| Sukabumi | -0.166 |
| Sumedang | -0.008 |
| Tasikmalaya | -3.040 |
tidy_ranef <- tidy(ranef(rem_gls2, effect="individual"))
## Warning: 'tidy.numeric' is deprecated.
## See help("Deprecated")
kable(tidy_ranef, digits=3, caption = "Pengaruh Acak Individu",
col.names = c("Kab/kota", "Pengaruh Acak Individu"))
| Kab/kota | Pengaruh Acak Individu |
|---|---|
| Bandung | -1.112 |
| Bandung Barat | 1.079 |
| Bekasi | 0.944 |
| Bogor | 1.772 |
| Ciamis | -2.943 |
| Cianjur | 1.506 |
| Cirebon | 0.963 |
| Garut | 0.116 |
| Indramayu | -0.203 |
| Karawang | 1.536 |
| Kota Bandung | 0.715 |
| Kota Banjar | -2.118 |
| Kota Bekasi | 0.010 |
| Kota Bogor | 1.350 |
| Kota Cimahi | 1.812 |
| Kota Cirebon | 0.050 |
| Kota Depok | -1.318 |
| Kota Sukabumi | 0.034 |
| Kota Tasikmalaya | -1.156 |
| Kuningan | 1.648 |
| Majalengka | -2.117 |
| Pangandaran | -2.486 |
| Purwakarta | 0.644 |
| Subang | 0.880 |
| Sukabumi | 0.494 |
| Sumedang | -0.013 |
| Tasikmalaya | -2.085 |
Output diatas merupakan pengaruh acak dari setiap unit individu, nilai tersebut tersebut menunjukkan seberapa besar perbedaan nilai komponen error acak masing-masing unit indvidu terhadap nilai intersep umum.
tidy_ranef <- tidy(ranef(rem_gls, effect="time"))
## Warning: 'tidy.numeric' is deprecated.
## See help("Deprecated")
kable(tidy_ranef, digits=3, caption = "Pengaruh Acak Waktu",
col.names = c("Kab/Kota", "Pengaruh Acak Waktu"))
| Kab/Kota | Pengaruh Acak Waktu |
|---|---|
| 2019 | -0.108 |
| 2020 | -0.007 |
| 2021 | 0.499 |
| 2022 | 0.054 |
| 2023 | -0.172 |
| 2024 | -0.266 |
tidy_ranef <- tidy(ranef(rem_gls2, effect="time"))
## Warning: 'tidy.numeric' is deprecated.
## See help("Deprecated")
kable(tidy_ranef, digits=3, caption = "Pengaruh Acak Waktu",
col.names = c("Kab/Kota", "Pengaruh Acak Waktu"))
| Kab/Kota | Pengaruh Acak Waktu |
|---|---|
| 2019 | -0.080 |
| 2020 | 0.237 |
| 2021 | 0.854 |
| 2022 | 0.061 |
| 2023 | -0.368 |
| 2024 | -0.704 |
Output diatas merupakan pengaruh acak dari setiap unit waktu, nilai tersebut tersebut menunjukkan seberapa besar perbedaan nilai komponen error acak masing-masing unit waktu terhadap nilai intersep umum.
FEM vs REM
Pada bagian sebelumnya, cukup bukti yang menyatakan bahwa model FEM
lebih baik daripada model CEM. Oleh karena itu, tahap selanjutnya akan
dibandingkan kebaikan model FEM jika dibanding model REM. Uji yang
digunakan adalah uji Hausman dengan menggunakan fungsi
phtest(FEM,REM).
Pengujian ini dilakukan untuk memilih model antara model pengaruh tetap atau model pengaruh acak yang sesuai untuk menggambarkan suatu data panel. Uji Hausman didasarkan pada perbedaan penduga model pengaruh tetap \(\hat{\beta}_{MPT}\) dengan penduga model pengaruh acak \(\hat{\beta}_{MPA}\). Kedua penduga konsisten dalam kondisi \(H_0\), tetapi \(\hat{\beta}_{MPA}\) akan bias dan tidak konsisten pada \(H_1\). Pengujian hipotesisnya adalah:
\(H_0\): Model pengaruh acak (REM) adalah model yang tepat
\(H_1\): Model pengaruh tetap (FEM) adalah model yang tepat
#fem dengan rem gls
phtest(fem_twoways, rem_gls)
##
## Hausman Test
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## chisq = 55.774, df = 4, p-value = 2.236e-11
## alternative hypothesis: one model is inconsistent
Karena nilai p-value yang diperoleh kurang dari dari alpha 5%, maka Tolak H0 yang mengindikasikan bahwa model yang sesuai adalah model FEM.
#fem dengan rem gls2
phtest(fem_twoways, rem_gls2)
##
## Hausman Test
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## chisq = 38.416, df = 5, p-value = 3.113e-07
## alternative hypothesis: one model is inconsistent
Karena nilai p-value yang diperoleh kurang dari dari alpha 5%, maka Tolak H0 yang mengindikasikan bahwa model yang sesuai adalah model FEM.
Uji Diagnostik Sisaan
res <- residuals(fem_twoways)
Uji Normalitas
jarque.bera.test(res)
##
## Jarque Bera Test
##
## data: res
## X-squared = 4.5678, df = 2, p-value = 0.1019
Tak Tolak \(H_0\) sisaan menyebar normal.
# Histogram
ggplot(as.data.frame(res), aes(x = res)) +
geom_histogram(aes(y = after_stat(density)), color = "white", fill = "steelblue") +
geom_density(color = "red", linewidth = 1) +
theme_minimal()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Uji Autokorelasi
pbgtest(fem_twoways)
##
## Breusch-Godfrey/Wooldridge test for serial correlation in panel models
##
## data: TPT ~ PPP + TPAK + IPM + Laju_PDRB + UHH
## chisq = 27.879, df = 6, p-value = 9.903e-05
## alternative hypothesis: serial correlation in idiosyncratic errors
Tolak \(H_0\) terdapat autokorelasi antar sisaan
Uji Kehomogenan
bptest(fem_twoways)
##
## studentized Breusch-Pagan test
##
## data: fem_twoways
## BP = 2.1981, df = 5, p-value = 0.8211
Tak tolak \(H_0\)