Analisis panel faktor-faktor memengaruhi tingkat pengangguran terbuka di Jawa Barat Tahun 2019-2024

Nabil Ibni Nawawi

2025-11-11

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:

  1. Eksplorasi Data

  2. Menduga parameter model CEM

  3. Menduga parameter model FEM

  4. Melakukan Uji Chow

  5. Menduga Parameter model REM

  6. Melakukan Uji Hausman

  7. Pengujian asumsi terhadap Model terpilih

  8. Jika asumsi tidak terpenuhi, akan dilakukan penanganan asumsi

  9. 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"))
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"))
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"))
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"))
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\)

LS0tDQp0aXRsZTogIkFuYWxpc2lzIHBhbmVsIGZha3Rvci1mYWt0b3IgbWVtZW5nYXJ1aGkgdGluZ2thdCBwZW5nYW5nZ3VyYW4gdGVyYnVrYSBkaSBKYXdhIEJhcmF0IFRhaHVuIDIwMTktMjAyNCINCmF1dGhvcjogIk5hYmlsIElibmkgTmF3YXdpIg0KZGF0ZTogIjIwMjUtMTEtMTEiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OmRvd25jdXRlOg0KICAgIGRvd25jdXRlX3RoZW1lOiAiY2hhb3MiDQogICAgc2VsZl9jb250YWluZWQ6IHRydWUNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdG9jX2RlcHRoOiAzDQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogICAgY29kZV9mb2xkaW5nOiBzaG93DQogICAgdGhlbWU6IGNlcnVsZWFuDQogICAgaGlnaGxpZ2h0OiAia2F0ZSINCi0tLQ0KDQo8cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCioqQXV0aG9yOioqDQoNCjwvcD4NCg0KLSAgIEcxNDAxMjIxMDI3IE5hYmlsIElibmkgTmF3YXdpDQoNCmBgYHtyfQ0KbGFwcGx5KGMoImthYmxlRXh0cmEiLCJ0aWR5dmVyc2UiLCJwbG0iLCJ0aW55dGV4IiwidHNlcmllcyIsImxtdGVzdCIsIA0KICAgICAgICAgImJyb29tIiwgInN0YXJnYXplciIsICJSQ29sb3JCcmV3ZXIiKSwgbGlicmFyeSwgY2hhcmFjdGVyLm9ubHkgPSBUKVtbMV1dDQpgYGANCg0KDQojIERhdGENCg0KRGF0YSB5YW5nIGRpZ3VuYWthbiBhZGFsYWggZGF0YSBUaW5na2F0IFBlbmdhbmdndXJhbiBUZXJidWthIGF0YXUgVFBUIERlbmdhbiA1IFBldWJhaCBiZWJhcy4gRGF0YSBpbmkgYmVyamVuaXMgZGF0YSBwYW5lbCBkZW5nYW4gaW5kaXZpZHVueWEgYWRhbGFoIDI3IEthYi9Lb3RhIGRpIFByb3ZpbnNpIEphd2EgQmFyYXQgc2VsYW1hIDYgdGFodW4gKFRhaHVuIDIwMTktMjAyNCkgZGVuZ2FuIHBldWJhaC1wZXViYWggc2ViYWdhaSBiZXJpa3V0Og0KDQotICAgVFBUIDogVGluZ2thdCBQZW5nYW5nZ3VyYW4gVGVyYnVrYSAoJSkNCg0KLSAgIFBQUCA6IFBlbmdlbHVhcmFuIHBlciBLYXBpdGEgRGlzZXN1YWlrYW4gKDAwMCBScCkNCg0KLSAgIFRQQUsgOiBUaW5na2F0IFBhcnRpc2lwYXNpIEFuZ2thdGFuIEtlcmphICglKQ0KDQotICAgSVBNIDogSW5kZWtzIFBlbWJhbmd1bmFuIE1hbnVzaWENCg0KLSAgIExhanVfUERSQiA6IExhanUgUGVydHVtYnVoYW4gUHJvZHVrIERvbWVzdGlrIFJlZ2lvbmFsIEJydXRvICglKQ0KDQotICAgVUhIIDogVXNpYSBIYXJhcGFuIEhpZHVwIChUYWh1bikNCg0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHhsKQ0KZGF0YSA8LSByZWFkX3hsc3goIkM6L1VzZXJzL05hYmlsIElibmkgTmF3YXdpL0RvY3VtZW50cy9LVUxJQUgvU2VtZXN0ZXIgNy9EYXRhIGxhcG9yYW4gaW5kaXZpZHUueGxzeCIpDQpgYGANCg0KYGBge3J9DQojIEdhbnRpIG5hbWEgIkthYi9rb3RhIiBtZW5qYWRpICJLYWJfS290YSINCmRhdGEgPC0gZGF0YSAlPiUgDQogIHJlbmFtZShLYWJfS290YSA9ICJLYWIva290YSIpDQpgYGANCg0KDQpgYGB7cn0NCmdsaW1wc2UoZGF0YSkNCmBgYA0KDQpgYGB7cn0NCmRhdGEgJT4lIGhlYWQoNikNCmBgYA0KDQpNZW11bmN1bGthbiA2IGRhdGEgdGVyYXRhcyB5YWl0dSBLYWJ1cGF0ZW4gQm9nb3IgZGFyaSB0YWh1biAyMDE5LTIwMjQNCg0KIyBNZXRvZG9sb2dpDQoNCk1ldG9kb2xvZ2kgeWFuZyBkaWd1bmFrYW4gYWRhbGFoIHNlYmFnYWkgYmVyaWt1dDoNCg0KMS4gIEVrc3Bsb3Jhc2kgRGF0YQ0KDQoyLiAgTWVuZHVnYSBwYXJhbWV0ZXIgbW9kZWwgQ0VNDQoNCjMuICBNZW5kdWdhIHBhcmFtZXRlciBtb2RlbCBGRU0NCg0KNC4gIE1lbGFrdWthbiBVamkgQ2hvdw0KDQo1LiAgTWVuZHVnYSBQYXJhbWV0ZXIgbW9kZWwgUkVNDQoNCjYuICBNZWxha3VrYW4gVWppIEhhdXNtYW4NCg0KNy4gIFBlbmd1amlhbiBhc3Vtc2kgdGVyaGFkYXAgTW9kZWwgdGVycGlsaWgNCg0KOC4gIEppa2EgYXN1bXNpIHRpZGFrIHRlcnBlbnVoaSwgYWthbiBkaWxha3VrYW4gcGVuYW5nYW5hbiBhc3Vtc2kNCg0KOS4gIEludGVycHJldGFzaSBtb2RlbCB0ZXJiYWlrDQoNCiMgRWtzcGxvcmFzaSBEYXRhDQoNCmBgYHtyfQ0KZ2dwbG90KGRhdGE9ZGF0YSwgYWVzKHg9VGFodW4sIHk9VFBULCBncm91cCA9IEthYl9Lb3RhLCBjb2xvdXIgPSBgS2FiX0tvdGFgKSkrIHRoZW1lX2J3KCkrDQogIGdlb21fbGluZShzaXplPTEuMikgKw0KICBnZW9tX3BvaW50KCBzaXplPTMsIHNoYXBlPTE5LCBmaWxsPSJyZWQiKSArIA0KICBsYWJzKGNvbG91cj0iS2FiL2tvdGEgZGkgSmF3YSBCYXJhdCIsIHRpdGxlID0gIlRpbmdrYXQgUGVuZ2FuZ2d1cmFuIFRlcmJ1a2EgZGkgUHJvdmluc2kgSmFhIEJhcmF0Iiwgc3VidGl0bGUgPSAiVGFodW4gMjAxOS0yMDI0IikgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41LGZhY2UgPSAiYm9sZCIpLCBwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCmBgYA0KDQojIyBQZW1lcmlrc2FhbiBNdWx0aWtvbGluZWFyaXRhcw0KDQpgYGB7cn0NCmxpYnJhcnkoY2FyKQ0KbW9kZWwxIDwtIGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIGRhdGElPiVmaWx0ZXIoVGFodW49PTIwMTkpKQ0KbW9kZWwyIDwtIGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIGRhdGElPiVmaWx0ZXIoVGFodW49PTIwMjApKQ0KbW9kZWwzIDwtIGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIGRhdGElPiVmaWx0ZXIoVGFodW49PTIwMjEpKQ0KbW9kZWw0IDwtIGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIGRhdGElPiVmaWx0ZXIoVGFodW49PTIwMjIpKQ0KbW9kZWw1IDwtIGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIGRhdGElPiVmaWx0ZXIoVGFodW49PTIwMjMpKQ0KbW9kZWw2IDwtIGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIGRhdGElPiVmaWx0ZXIoVGFodW49PTIwMjQpKQ0KbW9kZWw3IDwtIGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIGRhdGEpDQoNCg0KTXVsdGlrb2wgPC0gcmJpbmQoYXMudmVjdG9yKHZpZihtb2RlbDEpKSxhcy52ZWN0b3IodmlmKG1vZGVsMikpLGFzLnZlY3Rvcih2aWYobW9kZWwzKSksDQogICAgICAgICAgIGFzLnZlY3Rvcih2aWYobW9kZWw0KSksYXMudmVjdG9yKHZpZihtb2RlbDUpKSxhcy52ZWN0b3IodmlmKG1vZGVsNikpLA0KICAgICAgICAgICBhcy52ZWN0b3IodmlmKG1vZGVsNykpDQogICAgICAgICAgICkNCg0Kcm93bmFtZXMoTXVsdGlrb2wpIDwtIGMoIlRhaHVuIDIwMTkiLCJUYWh1biAyMDIwIiwiVGFodW4gMjAyMSIsIlRhaHVuIDIwMjIiLCJUYWh1biAyMDIzIiwiVGFodW4gMjAyNCIsIlRhaHVuIDIwMTktMjAyNCIpDQoNCmNvbG5hbWVzKE11bHRpa29sKSA8LSBjKCJQUFAiLCJUUEFLIiwiSVBNIiwiTGFqdV9QRFJCIiwiVUhIIikNCg0KTXVsdGlrb2wNCmBgYA0KDQpQYWRhIG1vZGVsNyB5YWl0dSBnYWJ1bmdhbiBzZW11YSB0YWh1biB0aWRhayBhZGEgbXVsdGlrb2xpbmVhcml0YXMNCg0KDQojIENvbW1vbi1FZmZlY3QgTW9kZWwNCg0KYGBge3J9DQpjZW0gPC0gcGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIGRhdGEgPSBkYXRhLCBtb2RlbCA9ICJwb29saW5nIikNCnN1bW1hcnkoY2VtKQ0KYGBgDQoNCiMgRml4ZWQtRWZmZWN0IE1vZGVsDQoNCiMjIEZFTSBJbmRpdmlkdWFsDQoNCmBgYHtyfQ0KZmVtIDwtIHBsbShUUFQgfiBQUFAgKyBUUEFLICsgSVBNICsgTGFqdV9QRFJCICsgVUhILCANCiAgICAgICAgICAgICAgICAgIGluZGV4ID0gYygiS2FiX0tvdGEiLCAiVGFodW4iKSwgDQogICAgICAgICAgICAgICAgICBtb2RlbCA9ICJ3aXRoaW4iLCBlZmZlY3QgPSAiaW5kaXZpZHVhbCIsIGRhdGEgPSBkYXRhKQ0Kc3VtbWFyeShmZW0pDQpgYGANCg0KTmlsYWkgaW50ZXJzZXAgZGFyaSBzZXRpYXAgaW5kaXZpZHUNCg0KYGBge3J9DQpzdW1tYXJ5KGZpeGVmKGZlbSwgZWZmZWN0PSJpbmRpdmlkdWFsIikpDQpgYGANCg0KTmlsYWkgZGlhdGFzIGFkYWxhaCBuaWxhaSBwZW5nYXJ1aCBrb25zdGFuIGRhcmkgbWFzaW5nLW1hc2luZyBpbmRpdmlkdSBwYWRhIG1vZGVsLg0KDQojIyBGRU0gVElNRQ0KDQpFZmVrIGtvbXBvbmVuIHNpc2FhYW4gc2F0dSBhcmFoIHBhZGEgd2FrdHUuDQoNCmBgYHtyfQ0KZmVtX3RpbWUgPC0gcGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIA0KICAgICAgICAgICAgICAgICAgaW5kZXggPSBjKCJLYWJfS290YSIsICJUYWh1biIpLCANCiAgICAgICAgICAgICAgICAgIG1vZGVsID0gIndpdGhpbiIsIGVmZmVjdCA9ICJ0aW1lIiwgZGF0YSA9IGRhdGEpDQpzdW1tYXJ5KGZlbV90aW1lKQ0KYGBgDQoNCk5pbGFpIEludGVyc2VwIGRhcmkgc2V0aWFwIHdha3R1DQoNCmBgYHtyfQ0Kc3VtbWFyeShmaXhlZihmZW1fdGltZSwgZWZmZWN0PSJ0aW1lIikpDQpgYGANCg0KIyMgRkVNIFRXTyBXQVlTDQoNCmBgYHtyfQ0KZmVtX3R3b3dheXMgPC0gcGxtKFRQVCB+IFBQUCArIFRQQUsgKyBJUE0gKyBMYWp1X1BEUkIgKyBVSEgsIA0KICAgICAgICAgICAgICAgICAgaW5kZXggPSBjKCJLYWJfS290YSIsICJUYWh1biIpLCANCiAgICAgICAgICAgICAgICAgIG1vZGVsID0gIndpdGhpbiIsIGVmZmVjdCA9ICJ0d293YXlzIiwgZGF0YSA9IGRhdGEpDQpzdW1tYXJ5KGZlbV90d293YXlzKQ0KYGBgDQoNCk5pbGFpIEludGVyc2VwIGRhcmkgc2V0aWFwIGluZGl2aWR1IGRhbiB3YWt0dQ0KDQpgYGB7cn0NCmRhdGEuZnJhbWUoc3VtbWFyeShmaXhlZihmZW1fdHdvd2F5cywgZWZmZWN0PSJ0d293YXlzIikpKQ0KYGBgDQoNCiMgVWppLUNob3cNCg0KVWppIENob3cgYWRhbGFoIHVqaSBmb3JtYWwgdW50dWsgbWVuZ3VqaSBhZGEgYXRhdSB0aWRha255YSBwZW5nYXJ1aCBzcGVzaWZpayBpbmRpdmlkdSBkYW4gcGVuZ2FydWggc3Blc2lmaWsgd2FrdHUgcGFkYSBkYXRhIHBhbmVsLg0KDQpIaXBvdGVzaXMgcGFkYSB1amkgaW5pIHlhaXR1IDoNCg0KLSAgIFVudHVrIG1lbmd1amkgcGVuZ2FydWggaW5kaXZpZHUNCg0KJCQNClxiZWdpbnthbGlnbmVkfQ0KSF97MDF9ICY6IFx0ZXh0e1RpZGFrIGFkYSBwZW5nYXJ1aCBzcGVzaWZpayBpbmRpdmlkdX0gXFwNCkhfezExfSAmOiBcdGV4dHtBZGEgcGVuZ2FydWggc3Blc2lmaWsgaW5kaXZpZHV9DQpcZW5ke2FsaWduZWR9DQokJA0KDQotICAgVW50dWsgbWVuZ3VqaSBwZW5nYXJ1aCB3YWt0dQ0KDQokJA0KXGJlZ2lue2FsaWduZWR9DQpIX3swMn0gJjogXHRleHR7VGlkYWsgYWRhIHBlbmdhcnVoIHNwZXNpZmlrIHdha3R1fSBcXA0KSF97MTJ9ICY6IFx0ZXh0e0FkYSBwZW5nYXJ1aCBzcGVzaWZpayB3YWt0dX0NClxlbmR7YWxpZ25lZH0NCiQkDQoNClN0YXRzaXRpayBVamkgeWFuZyBkaWd1bmFrYW4gOg0KDQotICAgUGVuZ2FydWggaW5kaXZpZHUNCg0KJCQNClxiZWdpbnthbGlnbmVkfQ0KRl97SGl0dW5nfSA9IFxmcmFje0pLR197TUd9IC0gSktHX3tNUFRJfX17SktHX3tNUFRJfX0gLiBcZnJhY3tOVC1OLUt9e04tMX0NClxlbmR7YWxpZ25lZH0NCiQkDQoNCi0gICBQZW5nYXJ1aCBXYWt0dQ0KDQokJA0KXGJlZ2lue2FsaWduZWR9DQpGX3tIaXR1bmd9ID0gXGZyYWN7SktHX3tNR30gLSBKS0dfe01QVFd9fXtKS0dfe01QVFd9fSAuIFxmcmFje04tVC1LfXtULTF9DQpcZW5ke2FsaWduZWR9DQokJA0KDQojIyBVamkgQ2hvdw0KDQokJA0KXGJlZ2lue2FsaWduZWR9DQpIXzAgJjogXHRleHR7TW9kZWwgQ29tbW9uIEVmZmVjdH0gXFwNCkhfMSAmOiBcdGV4dHtNb2RlbCBGaXhlZCBFZmZlY3R9DQpcZW5ke2FsaWduZWR9DQokJA0KDQokSF8wJCBha2FuIGRpdG9sYWsgYXBhYmlsYSBgcC12YWx1ZWAgbGViaWgga2VjaWwgZGFyaSBgYWxwaGFgIHlhaXR1IDAuMDUNCg0KYGBge3J9DQpwb29sdGVzdChjZW0sIGZlbSkNCmBgYA0KDQpOaWxhaSBgcC12YWx1ZWAgc2ViZXNhciAkMi4yZS0xNiQgYmVyYXJ0aSBrZXB1dHVzYW4gKlRvbGFrIEgwKiBhdGF1IG1vZGVsIGZpeGVkIGVmZmVjdCBsZWJpaCBsYXlhayBkaWd1bmFrYW4gcGFkYSBkYXRhIGluaS4NCg0KIyMgVWppIHBlbmdhcnVoIGluZGl2aWR1IC8gd2FrdHUNCg0KU2VsYW5qdXRueWEga2FyZW5hIHlhbmcgdGVycGlsaWggYWRhbGFoIG1vZGVsIEZpeGVkLUVmZmVjdCBha2FuIGRpbGloYXQga29tcG9uZW4geWFuZyBtZW1pbGlraSBwZW5nYXJ1aCB0ZXRhcCBhcGFrYWggaW5kaXZpZHUsIHdha3R1LCBhdGF1IGtlZHVhbnlhLg0KDQojIyMgRWZlayBJbmRpdmlkdSBkYW4gV2FrdHUNCg0KYGBge3J9DQpwbG10ZXN0KGZlbSwgdHlwZSA9ICJicCIsIGVmZmVjdCA9ICJ0d293YXlzIikNCmBgYA0KDQojIyMgRWZlayBJbmRpdmlkdSBkYW4gV2FrdHUNCg0KYGBge3J9DQpwbG10ZXN0KGZlbSwgdHlwZSA9ICJicCIsIGVmZmVjdCA9ICJpbmRpdmlkdWFsIikNCmBgYA0KDQojIyMgRWZlayBXYWt0dQ0KDQpgYGB7cn0NCnBsbXRlc3QoZmVtLCB0eXBlID0gImJwIiwgZWZmZWN0ID0gInRpbWUiKQ0KYGBgDQoNCkRhcmkga2V0aWdhIHVqaSBkaWF0YXMgZGlkYXBhdCBuaWxhaSAqcC12YWx1ZSogeWFuZyBsZWJpaCBrZWNpbCBkYXJpIDAuMDUgeWFuZyBiZXJhcnRpIGtlcHV0dXNhbm55YSBhZGFsYWggVG9sYWsgJEhfMCQgYXRhdSB0ZXJkYXBhdCBwZW5nYXJ1aCB5YW5nIHNpZ25pZmlrYW4gZGFyaSBpbmRpdmlkdSBtYXVwdW4gd2FrdHUuIFNlaGluZ2dhIGFrYW4gZGlkdWdhIHBhcmFtZXRlciBwZW5nYXJ1aCB0d293YXlzIHBhZGEgUmFuZG9tIEVmZmVjdCBNb2RlbC4NCg0KDQpgYGB7cn0NCnBGdGVzdChmZW1fdHdvd2F5cywgZmVtKQ0KYGBgDQoNCiMgUmFuZG9tLUVmZmVjdCBNb2RlbA0KDQpNb2RlbCBwZW5nYXJ1aCBhY2FrIG1lbmdhc3Vtc2lrYW4gdGlkYWsgYWRhIGtvcmVsYXNpIGFudGFyYSBwZW5nYXJ1aCBzcGVzaWZpayBpbmRpdmlkdSBkYW4gcGVuZ2FydWggc3Blc2lmaWsgd2FrdHUgZGVuZ2FuIHBldWJhaCBiZWJhcy4gQXN1bXNpIGluaSBtZW1idWF0IGtvbXBvbmVuIHNpc2FhbiBkYXJpIHBlbmdhcnVoIHNwZXNpZmlrIGluZGl2aWR1IGRhbiBwZW5nYXJ1aCBzcGVzaWZpayB3YWt0dSBkaW1hc3VrYW4ga2VkYWxhbSBzaXNhYW4uDQoNCiMjIFJFTSBHZW5lcmFsaXplZCBMZWFzdCBTcXVhcmUNCg0KYGBge3J9DQojIEluaSBha2FuIG1lbmFtcGlsa2FuIGJlcmFwYSBqdW1sYWggIkthYl9rb3RhIiB1bmlrDQpsZW5ndGgodW5pcXVlKGRhdGEkS2FiX0tvdGEpKQ0KYGBgDQoNCg0KYGBge3J9DQpyZW1fZ2xzIDwtIHBsbShUUFQgfiBQUFAgKyBUUEFLICsgVUhIICsgTGFqdV9QRFJCLCANCiAgICAgICAgICAgICAgICAgIGluZGV4ID0gYygiS2FiX0tvdGEiLCAiVGFodW4iKSwgDQogICAgICAgICAgICAgICAgICBtb2RlbCA9ICJyYW5kb20iLCBlZmZlY3QgPSAidHdvd2F5cyIsIGRhdGEgPSBkYXRhKQ0Kc3VtbWFyeShyZW1fZ2xzKQ0KYGBgDQoNCg0KYGBge3J9DQpyZW1fZ2xzMiA8LSBwbG0oVFBUIH4gUFBQICsgVFBBSyArIElQTSArIExhanVfUERSQiArIFVISCwgDQogICAgICAgICAgICAgICAgICBpbmRleCA9IGMoIkthYl9Lb3RhIiwgIlRhaHVuIiksIA0KICAgICAgICAgICAgICAgICAgbW9kZWwgPSAicmFuZG9tIiwgZWZmZWN0ID0gInR3b3dheXMiLCByYW5kb20ubWV0aG9kID0gIndhbGh1cyIsIGRhdGEgPSBkYXRhKQ0Kc3VtbWFyeShyZW1fZ2xzMikNCmBgYA0KDQojIyBDZWsgU2lnbmlmaWthbnNpIFBlbmdhcnVoIEluZGl2aWR1DQoNCmBgYHtyfQ0KI2VmZWsgaW5kaXZpZHUgDQpwbG10ZXN0KHJlbV9nbHMsdHlwZSA9ICJicCIsIGVmZmVjdD0iaW5kaXZpZHUiKQ0KYGBgDQoNCmBgYHtyfQ0KI2VmZWsgaW5kaXZpZHUgDQpwbG10ZXN0KHJlbV9nbHMyLHR5cGUgPSAiYnAiLCBlZmZlY3Q9ImluZGl2aWR1IikNCmBgYA0KDQpLYXJlbmEgbmlsYWkgcC12YWx1ZSA8IDAuMDUsIG1ha2EgdG9sYWsgJEhfMCQgYXRhdSBwZW5nYXJ1aCBpbmRpdmlkdSBzaWduaWZpa2FuIHRlcmhhZGFwIG1vZGVsLg0KDQojIyBDZWsgU2lnbmlmaWthbnNpIFBlbmdhcnVoIFdha3R1DQoNCmBgYHtyfQ0KI2VmZWsgd2FrdHUgDQpwbG10ZXN0KHJlbV9nbHMsdHlwZSA9ICJicCIsIGVmZmVjdD0idGltZSIpDQpgYGANCg0KS2FyZW5hIG5pbGFpIHAtdmFsdWUgPCAwLjA1LCBtYWthIHRvbGFrICRIXzAkIGF0YXUgcGVuZ2FydWggd2FrdHUgc2lnbmlmaWthbiB0ZXJoYWRhcCBtb2RlbC4gQXJ0aW55YSwgbW9kZWwgdHdvd2F5cyB0ZXBhdCBkaWd1bmFrYW4gdW50dWsgbWV0b2RlIFJFTS4NCg0KYGBge3J9DQojZWZlayB3YWt0dSANCnBsbXRlc3QocmVtX2dsczIsdHlwZSA9ICJicCIsIGVmZmVjdD0idGltZSIpDQpgYGANCkthcmVuYSBuaWxhaSBwLXZhbHVlIDwgMC4wNSwgbWFrYSB0b2xhayAkSF8wJCBhdGF1IHBlbmdhcnVoIHdha3R1IHNpZ25pZmlrYW4gdGVyaGFkYXAgbW9kZWwuIEFydGlueWEsIG1vZGVsIHR3b3dheXMgdGVwYXQgZGlndW5ha2FuIHVudHVrIG1ldG9kZSBSRU0uDQoNCmBgYHtyfQ0KdGlkeV9yYW5lZiA8LSB0aWR5KHJhbmVmKHJlbV9nbHMsIGVmZmVjdD0iaW5kaXZpZHVhbCIpKQ0Ka2FibGUodGlkeV9yYW5lZiwgZGlnaXRzPTMsIGNhcHRpb24gPSAiUGVuZ2FydWggQWNhayBJbmRpdmlkdSIsIA0KICAgICAgY29sLm5hbWVzID0gYygiS2FiL2tvdGEiLCAiUGVuZ2FydWggQWNhayBJbmRpdmlkdSIpKQ0KYGBgDQoNCmBgYHtyfQ0KdGlkeV9yYW5lZiA8LSB0aWR5KHJhbmVmKHJlbV9nbHMyLCBlZmZlY3Q9ImluZGl2aWR1YWwiKSkNCmthYmxlKHRpZHlfcmFuZWYsIGRpZ2l0cz0zLCBjYXB0aW9uID0gIlBlbmdhcnVoIEFjYWsgSW5kaXZpZHUiLCANCiAgICAgIGNvbC5uYW1lcyA9IGMoIkthYi9rb3RhIiwgIlBlbmdhcnVoIEFjYWsgSW5kaXZpZHUiKSkNCmBgYA0KDQpPdXRwdXQgZGlhdGFzIG1lcnVwYWthbiBwZW5nYXJ1aCBhY2FrIGRhcmkgc2V0aWFwIHVuaXQgaW5kaXZpZHUsIG5pbGFpIHRlcnNlYnV0IHRlcnNlYnV0IG1lbnVuanVra2FuIHNlYmVyYXBhIGJlc2FyIHBlcmJlZGFhbiBuaWxhaSBrb21wb25lbiBlcnJvciBhY2FrIG1hc2luZy1tYXNpbmcgdW5pdCBpbmR2aWR1IHRlcmhhZGFwIG5pbGFpIGludGVyc2VwIHVtdW0uDQoNCmBgYHtyfQ0KdGlkeV9yYW5lZiA8LSB0aWR5KHJhbmVmKHJlbV9nbHMsIGVmZmVjdD0idGltZSIpKQ0Ka2FibGUodGlkeV9yYW5lZiwgZGlnaXRzPTMsIGNhcHRpb24gPSAiUGVuZ2FydWggQWNhayBXYWt0dSIsIA0KICAgICAgY29sLm5hbWVzID0gYygiS2FiL0tvdGEiLCAiUGVuZ2FydWggQWNhayBXYWt0dSIpKQ0KYGBgDQoNCmBgYHtyfQ0KdGlkeV9yYW5lZiA8LSB0aWR5KHJhbmVmKHJlbV9nbHMyLCBlZmZlY3Q9InRpbWUiKSkNCmthYmxlKHRpZHlfcmFuZWYsIGRpZ2l0cz0zLCBjYXB0aW9uID0gIlBlbmdhcnVoIEFjYWsgV2FrdHUiLCANCiAgICAgIGNvbC5uYW1lcyA9IGMoIkthYi9Lb3RhIiwgIlBlbmdhcnVoIEFjYWsgV2FrdHUiKSkNCmBgYA0KDQpPdXRwdXQgZGlhdGFzIG1lcnVwYWthbiBwZW5nYXJ1aCBhY2FrIGRhcmkgc2V0aWFwIHVuaXQgd2FrdHUsIG5pbGFpIHRlcnNlYnV0IHRlcnNlYnV0IG1lbnVuanVra2FuIHNlYmVyYXBhIGJlc2FyIHBlcmJlZGFhbiBuaWxhaSBrb21wb25lbiBlcnJvciBhY2FrIG1hc2luZy1tYXNpbmcgdW5pdCB3YWt0dSB0ZXJoYWRhcCBuaWxhaSBpbnRlcnNlcCB1bXVtLg0KDQojIEZFTSB2cyBSRU0NCg0KUGFkYSBiYWdpYW4gc2ViZWx1bW55YSwgY3VrdXAgYnVrdGkgeWFuZyBtZW55YXRha2FuIGJhaHdhIG1vZGVsIEZFTSBsZWJpaCBiYWlrIGRhcmlwYWRhIG1vZGVsIENFTS4gT2xlaCBrYXJlbmEgaXR1LCB0YWhhcCBzZWxhbmp1dG55YSBha2FuIGRpYmFuZGluZ2thbiBrZWJhaWthbiBtb2RlbCBGRU0gamlrYSBkaWJhbmRpbmcgbW9kZWwgUkVNLiBVamkgeWFuZyBkaWd1bmFrYW4gYWRhbGFoIHVqaSBgSGF1c21hbmAgZGVuZ2FuIG1lbmdndW5ha2FuIGZ1bmdzaSBgcGh0ZXN0KEZFTSxSRU0pYC4NCg0KUGVuZ3VqaWFuIGluaSBkaWxha3VrYW4gdW50dWsgbWVtaWxpaCBtb2RlbCBhbnRhcmEgbW9kZWwgcGVuZ2FydWggdGV0YXAgYXRhdSBtb2RlbCBwZW5nYXJ1aCBhY2FrIHlhbmcgc2VzdWFpIHVudHVrIG1lbmdnYW1iYXJrYW4gc3VhdHUgZGF0YSBwYW5lbC4gVWppIEhhdXNtYW4gZGlkYXNhcmthbiBwYWRhIHBlcmJlZGFhbiBwZW5kdWdhIG1vZGVsIHBlbmdhcnVoIHRldGFwICRcaGF0e1xiZXRhfV97TVBUfSQgZGVuZ2FuIHBlbmR1Z2EgbW9kZWwgcGVuZ2FydWggYWNhayAkXGhhdHtcYmV0YX1fe01QQX0kLiBLZWR1YSBwZW5kdWdhIGtvbnNpc3RlbiBkYWxhbSBrb25kaXNpICRIXzAkLCB0ZXRhcGkgJFxoYXR7XGJldGF9X3tNUEF9JCBha2FuIGJpYXMgZGFuIHRpZGFrIGtvbnNpc3RlbiBwYWRhICRIXzEkLiBQZW5ndWppYW4gaGlwb3Rlc2lzbnlhIGFkYWxhaDoNCg0KJEhfMCQ6IE1vZGVsIHBlbmdhcnVoIGFjYWsgKFJFTSkgYWRhbGFoIG1vZGVsIHlhbmcgdGVwYXQNCg0KJEhfMSQ6IE1vZGVsIHBlbmdhcnVoIHRldGFwIChGRU0pIGFkYWxhaCBtb2RlbCB5YW5nIHRlcGF0DQoNCmBgYHtyfQ0KI2ZlbSBkZW5nYW4gcmVtIGdscw0KcGh0ZXN0KGZlbV90d293YXlzLCByZW1fZ2xzKQ0KYGBgDQoNCkthcmVuYSBuaWxhaSBwLXZhbHVlIHlhbmcgZGlwZXJvbGVoIGt1cmFuZyBkYXJpIGRhcmkgYWxwaGEgNSUsIG1ha2EgVG9sYWsgSDAgeWFuZyBtZW5naW5kaWthc2lrYW4gYmFod2EgKiptb2RlbCB5YW5nIHNlc3VhaSBhZGFsYWggbW9kZWwgRkVNKiouDQoNCmBgYHtyfQ0KI2ZlbSBkZW5nYW4gcmVtIGdsczINCnBodGVzdChmZW1fdHdvd2F5cywgcmVtX2dsczIpDQpgYGANCg0KS2FyZW5hIG5pbGFpIHAtdmFsdWUgeWFuZyBkaXBlcm9sZWgga3VyYW5nIGRhcmkgZGFyaSBhbHBoYSA1JSwgbWFrYSBUb2xhayBIMCB5YW5nIG1lbmdpbmRpa2FzaWthbiBiYWh3YSAqKm1vZGVsIHlhbmcgc2VzdWFpIGFkYWxhaCBtb2RlbCBGRU0qKi4NCg0KIyBVamkgRGlhZ25vc3RpayBTaXNhYW4NCg0KYGBge3J9DQpyZXMgPC0gcmVzaWR1YWxzKGZlbV90d293YXlzKQ0KYGBgDQoNCiMjIFVqaSBOb3JtYWxpdGFzDQoNCmBgYHtyfQ0KamFycXVlLmJlcmEudGVzdChyZXMpDQpgYGANClRhayBUb2xhayAkSF8wJCBzaXNhYW4gbWVueWViYXIgbm9ybWFsLg0KDQpgYGB7cn0NCiMgSGlzdG9ncmFtIA0KZ2dwbG90KGFzLmRhdGEuZnJhbWUocmVzKSwgYWVzKHggPSByZXMpKSArDQogIGdlb21faGlzdG9ncmFtKGFlcyh5ID0gYWZ0ZXJfc3RhdChkZW5zaXR5KSksIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9ICJzdGVlbGJsdWUiKSArDQogIGdlb21fZGVuc2l0eShjb2xvciA9ICJyZWQiLCBsaW5ld2lkdGggPSAxKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQoNCiMjIFVqaSBBdXRva29yZWxhc2kNCg0KYGBge3J9DQpwYmd0ZXN0KGZlbV90d293YXlzKQ0KYGBgDQpUb2xhayAkSF8wJCB0ZXJkYXBhdCBhdXRva29yZWxhc2kgYW50YXIgc2lzYWFuDQoNCiMjIFVqaSBLZWhvbW9nZW5hbg0KDQpgYGB7cn0NCmJwdGVzdChmZW1fdHdvd2F5cykNCmBgYA0KVGFrIHRvbGFrICRIXzAkDQoNCg==