P02_STA1353_Common Effect Model

Common Effect Model

Common Effect Model (CEM) atau model gabungan merupakan model yang paling sederhana dalam regresi data panel. CEM tidak memerhatikan pengaruh spesifik individu maupun pengaruh spesifik waktu sehingga mengasumsikan koefisien regresi (intersep ataupun kemiringan) yang konstan antar individu dan waktu. Persamaan model yang digunakan mengikuti bentuk regresi linier dengan komponen sisaan hanya berasal dari komponen sisaan pendugaan. Metode pendugaan parameter pada model ini sama dengan model regresi linier biasa yaitu menggunakan metodek kuadrat terkecil (MKT) dengan menggabungkan data lintas individu dan data deret waktu menjadi satu kesatuan data yang utuh (Gujarati 2004). Persamaan pool model dapat dituliskan sebagai berikut.

\[ y_{it}=\alpha + \beta_1x_{1,it}+\beta_2x_{2,it}+...+\beta_kx_{k,it}+\epsilon_{it} \]

dengan \(y_{it}\) merupakan peubah respon pada individu ke-i dan waktu ke-t, \(\alpha\) merupakan koefisien intersep, \(\beta_k\) merupakan koefisien pada peubah penjelas ke-k, \(x_{k,it}\) merupakan peubah penjelas ke-k pada individu ke-i dan waktu ke-t, dan \(\epsilon_{it}\) merupakan sisaan untuk individu ke-i dan waktu ke-t.

Ilustrasi

Data yang digunakan berasal dari Data Publikasi Badan Pusat Statistik di https://www.bps.go.id/indikator/. Data tersebut merupakan data kabupatenkota di kawasan timur Indonesia tahun 2014 sampai 2021 sebanyak 185 individu. Data terdiri atas data jumlah kemiskinan (jiwa) sebagai peubah respon dan data peubah penjelas yaitu PDRB (miliar rupiah), rata-rata lama sekolah (tahun), pengeluaran perkapita, dan harapan lama sekolah.

Data dapat diakses pada link ini.

Data

library(readxl)
dataa <- read_excel("C:/Users/LENOVO/Documents/DIAH/datapanel.xlsx") 
knitr::kable(head(dataa))
KabKota Tahun JPM PDRB RLS PPD HLS Provinsi
Jembrana 2014 15800 9020 7.30 10944 11.48 Bali
Jembrana 2015 15830 10198 7.54 11168 11.88 Bali
Jembrana 2016 14530 11168 7.59 11343 12.27 Bali
Jembrana 2017 14780 12169 7.62 11468 12.40 Bali
Jembrana 2018 14350 13206 7.95 11666 12.61 Bali
Jembrana 2019 13550 14141 8.22 11902 12.63 Bali
dplyr::glimpse(dataa)
## Rows: 1,480
## Columns: 8
## $ KabKota  <chr> "Jembrana", "Jembrana", "Jembrana", "Jembrana", "Jembrana", "…
## $ Tahun    <dbl> 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2014, 2015, 2…
## $ JPM      <dbl> 15800, 15830, 14530, 14780, 14350, 13550, 12600, 14240, 24400…
## $ PDRB     <dbl> 9020, 10198, 11168, 12169, 13206, 14141, 13465, 13510, 15066,…
## $ RLS      <dbl> 7.30, 7.54, 7.59, 7.62, 7.95, 8.22, 8.23, 8.35, 7.91, 8.07, 8…
## $ PPD      <dbl> 10944, 11168, 11343, 11468, 11666, 11902, 11790, 11675, 13492…
## $ HLS      <dbl> 11.48, 11.88, 12.27, 12.40, 12.61, 12.63, 12.65, 12.92, 12.04…
## $ Provinsi <chr> "Bali", "Bali", "Bali", "Bali", "Bali", "Bali", "Bali", "Bali…
summary(dataa)
##    KabKota              Tahun           JPM              PDRB       
##  Length:1480        Min.   :2014   Min.   :  3550   Min.   :   134  
##  Class :character   1st Qu.:2016   1st Qu.: 14138   1st Qu.:  2417  
##  Mode  :character   Median :2018   Median : 24295   Median :  5087  
##                     Mean   :2018   Mean   : 31015   Mean   :  9116  
##                     3rd Qu.:2019   3rd Qu.: 37365   3rd Qu.: 11448  
##                     Max.   :2021   Max.   :222190   Max.   :190318  
##       RLS              PPD             HLS          Provinsi        
##  Min.   : 0.630   Min.   : 3607   Min.   : 2.16   Length:1480       
##  1st Qu.: 6.860   1st Qu.: 7053   1st Qu.:11.89   Class :character  
##  Median : 7.740   Median : 8358   Median :12.57   Mode  :character  
##  Mean   : 7.668   Mean   : 8783   Mean   :12.37                     
##  3rd Qu.: 8.652   3rd Qu.:10279   3rd Qu.:13.22                     
##  Max.   :12.510   Max.   :19992   Max.   :16.89

Data terdiri dari 1480 unit pengamatan pada level kabupaten/kota dengan series amatan dari 2014 hingga 2021.

Eksplorasi Data

Jumlah Penduduk Miskin di wilayah timur sepanjang tahun 2014 - 2018

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
dataprovtimur <- dataa %>% 
  dplyr::select(c(Provinsi, Tahun, JPM))%>%
  group_by(Tahun) %>%
 summarise(across(where(is.numeric),sum))

dataprovtimur
## # A tibble: 8 × 2
##   Tahun     JPM
##   <dbl>   <dbl>
## 1  2014 5909092
## 2  2015 5919737
## 3  2016 5785240
## 4  2017 5764370
## 5  2018 5648650
## 6  2019 5596240
## 7  2020 5564170
## 8  2021 5714440
library(ggplot2)
library(hrbrthemes)
## NOTE: Either Arial Narrow or Roboto Condensed fonts are required to use these themes.
##       Please use hrbrthemes::import_roboto_condensed() to install Roboto Condensed and
##       if Arial Narrow is not on your system, please see https://bit.ly/arialnarrow
# Plot
dataprovtimur %>%
  tail(10) %>%
  ggplot( aes(x=Tahun, y=JPM)) +
    geom_line( color="Blue") +
    geom_point(shape=21, color="black", fill="#69b3a2", size=3) +
  scale_x_continuous(limits = c(2014, 2021), breaks = seq(2014, 2021, 1))+
    theme_ipsum() +
  theme(plot.title=element_text(size=15))+
    labs(title="Jumlah Penduduk Miskin di Wilayah Timur", subtitle =" Tahun 2014 - 2021")

Berdasarkan grafik di atas dapat dapat dilihat bahwa jumlah penduduk miskin pada wilayah timur cenderung mengalami penurunan pada rentang waktu 2014 hingga 2020. Namun jumlah penduduk miskin terlihat meningkat di tahun 2021 yang bersamaan dengan kejadian pandemi Covid 19.

Selanjutnya akan dilihat pola dari jumlah penduduk miskin setiap tahun pada setiap unit individu pada level provinsi.

dataProv <- dataa %>% 
  dplyr::select(c(Provinsi, Tahun, JPM))%>%
  group_by(Provinsi,Tahun) %>%
 summarise(across(where(is.numeric),sum))
## `summarise()` has grouped output by 'Provinsi'. You can override using the
## `.groups` argument.
knitr::kable(dataProv)
Provinsi Tahun JPM
Bali 2014 196000
Bali 2015 196720
Bali 2016 178180
Bali 2017 180130
Bali 2018 171770
Bali 2019 163850
Bali 2020 165210
Bali 2021 201950
Gorontalo 2014 195000
Gorontalo 2015 206840
Gorontalo 2016 203190
Gorontalo 2017 205360
Gorontalo 2018 198520
Gorontalo 2019 186030
Gorontalo 2020 185020
Gorontalo 2021 186300
Maluku 2014 307000
Maluku 2015 328400
Maluku 2016 327720
Maluku 2017 320500
Maluku 2018 320090
Maluku 2019 317690
Maluku 2020 318170
Maluku 2021 321810
Maluku Utara 2014 116641
Maluku Utara 2015 79900
Maluku Utara 2016 74670
Maluku Utara 2017 76460
Maluku Utara 2018 81460
Maluku Utara 2019 84600
Maluku Utara 2020 86360
Maluku Utara 2021 87170
NTB 2014 816600
NTB 2015 823890
NTB 2016 804450
NTB 2017 793780
NTB 2018 737460
NTB 2019 735950
NTB 2020 713880
NTB 2021 746650
NTT 2014 1008841
NTT 2015 1159840
NTT 2016 1149920
NTT 2017 1150810
NTT 2018 1142160
NTT 2019 1146340
NTT 2020 1153760
NTT 2021 1169320
Papua 2014 864200
Papua 2015 892530
Papua 2016 911330
Papua 2017 897670
Papua 2018 917650
Papua 2019 926360
Papua 2020 911400
Papua 2021 920460
Papua Barat 2014 289482
Papua Barat 2015 225370
Papua Barat 2016 225810
Papua Barat 2017 228380
Papua Barat 2018 214460
Papua Barat 2019 211540
Papua Barat 2020 208590
Papua Barat 2021 219080
Sulawesi Barat 2014 186541
Sulawesi Barat 2015 160480
Sulawesi Barat 2016 152730
Sulawesi Barat 2017 149750
Sulawesi Barat 2018 151780
Sulawesi Barat 2019 151410
Sulawesi Barat 2020 152010
Sulawesi Barat 2021 157190
Sulawesi Selatan 2014 806400
Sulawesi Selatan 2015 797720
Sulawesi Selatan 2016 807030
Sulawesi Selatan 2017 813060
Sulawesi Selatan 2018 792650
Sulawesi Selatan 2019 767820
Sulawesi Selatan 2020 776840
Sulawesi Selatan 2021 784980
Sulawesi Tengah 2014 450982
Sulawesi Tengah 2015 421620
Sulawesi Tengah 2016 420520
Sulawesi Tengah 2017 417870
Sulawesi Tengah 2018 420220
Sulawesi Tengah 2019 410370
Sulawesi Tengah 2020 398720
Sulawesi Tengah 2021 404450
Sulawesi Tenggara 2014 473705
Sulawesi Tenggara 2015 417887
Sulawesi Tenggara 2016 326870
Sulawesi Tenggara 2017 331710
Sulawesi Tenggara 2018 307130
Sulawesi Tenggara 2019 302580
Sulawesi Tenggara 2020 301820
Sulawesi Tenggara 2021 318730
Sulawesi Utara 2014 197700
Sulawesi Utara 2015 208540
Sulawesi Utara 2016 202820
Sulawesi Utara 2017 198890
Sulawesi Utara 2018 193300
Sulawesi Utara 2019 191700
Sulawesi Utara 2020 192390
Sulawesi Utara 2021 196350
dataProv %>% 
  mutate(provinsi = forcats::fct_reorder2(Provinsi, Tahun, JPM)) %>%
ggplot(mapping = aes(y = JPM, x = Tahun ,group = provinsi, colour=provinsi)) +
   geom_line(size=1.2) +
  geom_point(shape=21, size=2) +
  scale_x_continuous(limits = c(2014, 2021), breaks = seq(2014, 2021, 1))+
  theme(plot.title=element_text(size=12))+
    labs(title="Jumlah Penduduk Miskin Per Provinsi", subtitle =" Tahun 2014-2021")+
  theme_minimal()

Berdasarkan grafik di atas dapat dilihat jumlah penduduk miskin di setiap provinsi pada wilayah timur cenderung mengalami penurunan pada rentang waktu 2014 hingga 2020. Namun jumlah penduduk miskin terlihat meningkat di tahun 2021 yang bersamaan dengan kejadian pandemi Covid 19. Gambaran ini sejalan dengan pola yang terjadi pada plot pola pergerakan jumlah penduduk miskin sebelumnya. Provinsi NTT, Papua, Sulawesi Selatan, dan NTB merupakan empat provinsi yang memiliki jumlah penduduk miskin tertinggi pada kurun waktu tersebut. Sedangkan provinsi Maluku Utara, Sulawesi Barat dan Bali merupakan provinsi dengan jumlah penduduk miskin yang lebih rendah dibandingkan sembilan provinsi lainnya di wilayah timur.

Untuk melihat rataan jumlah penduduk antar provinsi pada kurun waktu tersebut dapat diamati melalui grafik dibawah ini.

dataProv1 <- dataProv %>% 
  dplyr::select(-Tahun) %>%
  group_by(Provinsi) %>%
 summarise(across(where(is.numeric),mean)) %>%
  arrange(JPM)
dataProv1
## # A tibble: 13 × 2
##    Provinsi               JPM
##    <chr>                <dbl>
##  1 Maluku Utara        85908.
##  2 Sulawesi Barat     157736.
##  3 Bali               181726.
##  4 Gorontalo          195782.
##  5 Sulawesi Utara     197711.
##  6 Papua Barat        227839 
##  7 Maluku             320172.
##  8 Sulawesi Tenggara  347554 
##  9 Sulawesi Tengah    418094 
## 10 NTB                771582.
## 11 Sulawesi Selatan   793312.
## 12 Papua              905200 
## 13 NTT               1135124.
dataProv1 %>%
  mutate(Prov = forcats::fct_reorder(Provinsi, JPM)) %>%
ggplot(aes(x = Prov, y = JPM)) +
 geom_bar(stat="identity", fill="#6D67E4", alpha=.6, width=.6) +
  geom_text(aes(label =round(JPM)), hjust= -0.1, size=3)+
  ylim(c(0, 1200000))+
  coord_flip()+
  theme_minimal()+ 
   labs(title = 'Rata-Rata Jumlah Penduduk Miskin Per Provinsi')

Model OLS

ols <- lm(JPM~PDRB+RLS+PPD+HLS,data=dataa)
summary(ols)
## 
## Call:
## lm(formula = JPM ~ PDRB + RLS + PPD + HLS, data = dataa)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -77297 -14405  -4944   9493 167510 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.315e+04  4.517e+03   2.911  0.00366 ** 
## PDRB         4.584e-01  5.134e-02   8.930  < 2e-16 ***
## RLS         -1.025e+04  5.952e+02 -17.228  < 2e-16 ***
## PPD         -4.802e-02  3.614e-01  -0.133  0.89430    
## HLS          7.495e+03  5.716e+02  13.113  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23630 on 1475 degrees of freedom
## Multiple R-squared:  0.2136, Adjusted R-squared:  0.2115 
## F-statistic: 100.2 on 4 and 1475 DF,  p-value: < 2.2e-16
library(performance)
multicollinearity(ols)
## # Check for Multicollinearity
## 
## Low Correlation
## 
##  Term  VIF   VIF 95% CI Increased SE Tolerance Tolerance 95% CI
##  PDRB 1.47 [1.39, 1.58]         1.21      0.68     [0.63, 0.72]
##   RLS 3.35 [3.07, 3.65]         1.83      0.30     [0.27, 0.33]
##   PPD 2.46 [2.27, 2.67]         1.57      0.41     [0.37, 0.44]
##   HLS 2.86 [2.63, 3.11]         1.69      0.35     [0.32, 0.38]
model_performance(ols,metrics = "all")
## # Indices of model performance
## 
## AIC       |      AICc |       BIC |    R2 | R2 (adj.) |      RMSE |     Sigma
## -----------------------------------------------------------------------------
## 34014.982 | 34015.039 | 34046.781 | 0.214 |     0.212 | 23589.462 | 23629.410

Nilai VIF < 10 mengindikasikan tidak terdapat multikolinieritas. Nilai \(R^2_{adj}\) pada model ini sebesar 21,2%.

Diagnostik Sisaan

Kenormalan Sisaan

Hipotesis:

\(H_0\) : sisaan menyebar normal
\(H_1\) : sisaan tidak menyebar normal

res.ols <- residuals(ols)
yhat.ols <- fitted(ols)


#normality
library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
jarque.bera.test(res.ols)
## 
##  Jarque Bera Test
## 
## data:  res.ols
## X-squared = 6600.7, df = 2, p-value < 2.2e-16
#histogram
hist(res.ols, 
     xlab = "sisaan",
     col = "steelblue", 
     breaks=30,  
     prob = TRUE) 
lines(density(res.ols), # density plot
 lwd = 2, # thickness of line
 col = "chocolate3")

#plotqqnorm
qqnorm(res.ols,datax=T, col="blue")
qqline(rnorm(length(res.ols),mean(res.ols),sd(res.ols)),datax=T, col="red")

Hasil uji normalitas memberikan nilai p-value kurang dari \(\alpha\) (5%) , sehingga tolak H0 yang menandakan sisaan belum menyebar normal. Plot histogram dan QQ normal juga menunjukkan bahwa sisaan belum menyebar normal.

Kebebasan antar Sisaan

Hipotesis:

\(H_0\) : sisaan saling bebas
\(H_1\) : sisaan tidak saling bebas

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
dwtest(ols)
## 
##  Durbin-Watson test
## 
## data:  ols
## DW = 0.23289, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0

Nilai p-value kurang dari \(\alpha\) (5%) sehingga tolak H0 sehingga dapat dikatakan bahwa sisaan tidak saling bebas atau terdapat gejala autokorelasi pada model.

Kehomogenan Ragam Sisaan

Hipotesis:

\(H_0\) : sisaan memiliki ragam homogen
\(H_1\) : sisaan tidak memiliki ragam homogen

bptest(ols)
## 
##  studentized Breusch-Pagan test
## 
## data:  ols
## BP = 134.57, df = 4, p-value < 2.2e-16

Nilai p-value kurang dari \(\alpha\) (5%) sehingga tolak H0 sehingga dapat dikatakan bahwa sisaan belum homogen.

#Hasil plot menunjukkan ragam tidak homogen
plot(yhat.ols,res.ols, 
     xlab = "fitted value", 
     ylab = "residuals")

Model CEM

library(plm)
## 
## Attaching package: 'plm'
## The following objects are masked from 'package:dplyr':
## 
##     between, lag, lead
common <- plm(JPM~PDRB+RLS+PPD+HLS,data=dataa,model="pooling")

summary(common)
## Pooling Model
## 
## Call:
## plm(formula = JPM ~ PDRB + RLS + PPD + HLS, data = dataa, model = "pooling")
## 
## Balanced Panel: n = 185, T = 8, N = 1480
## 
## Residuals:
##     Min.  1st Qu.   Median  3rd Qu.     Max. 
## -77296.6 -14405.2  -4943.7   9492.8 167510.1 
## 
## Coefficients:
##                Estimate  Std. Error  t-value  Pr(>|t|)    
## (Intercept)  1.3149e+04  4.5171e+03   2.9109  0.003658 ** 
## PDRB         4.5841e-01  5.1336e-02   8.9295 < 2.2e-16 ***
## RLS         -1.0254e+04  5.9516e+02 -17.2285 < 2.2e-16 ***
## PPD         -4.8023e-02  3.6137e-01  -0.1329  0.894297    
## HLS          7.4953e+03  5.7157e+02  13.1135 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    1.0473e+12
## Residual Sum of Squares: 8.2356e+11
## R-Squared:      0.21364
## Adj. R-Squared: 0.21151
## F-statistic: 100.183 on 4 and 1475 DF, p-value: < 2.22e-16
summary(ols)
## 
## Call:
## lm(formula = JPM ~ PDRB + RLS + PPD + HLS, data = dataa)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -77297 -14405  -4944   9493 167510 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.315e+04  4.517e+03   2.911  0.00366 ** 
## PDRB         4.584e-01  5.134e-02   8.930  < 2e-16 ***
## RLS         -1.025e+04  5.952e+02 -17.228  < 2e-16 ***
## PPD         -4.802e-02  3.614e-01  -0.133  0.89430    
## HLS          7.495e+03  5.716e+02  13.113  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23630 on 1475 degrees of freedom
## Multiple R-squared:  0.2136, Adjusted R-squared:  0.2115 
## F-statistic: 100.2 on 4 and 1475 DF,  p-value: < 2.2e-16
library(performance)
multicollinearity(common)
## # Check for Multicollinearity
## 
## Low Correlation
## 
##  Term  VIF   VIF 95% CI Increased SE Tolerance Tolerance 95% CI
##  PDRB 1.47 [1.39, 1.58]         1.21      0.68     [0.63, 0.72]
##   RLS 3.35 [3.07, 3.65]         1.83      0.30     [0.27, 0.33]
##   PPD 2.46 [2.27, 2.67]         1.57      0.41     [0.37, 0.44]
##   HLS 2.86 [2.63, 3.11]         1.69      0.35     [0.32, 0.38]
model_performance(common,metrics = "all")
## # Indices of model performance
## 
## AIC       |      AICc |       BIC |    R2 | R2 (adj.) |      RMSE |     Sigma
## -----------------------------------------------------------------------------
## 34014.982 | 34015.039 | 34046.781 | 0.214 |     0.212 | 23589.462 | 23629.410

Hasil pendugaan parameter dengan menggunakan model OLS dan model CEM memiliki nilai yang sama.

ols$coefficients
##   (Intercept)          PDRB           RLS           PPD           HLS 
##  1.314881e+04  4.584063e-01 -1.025370e+04 -4.802323e-02  7.495309e+03
common$coefficients
##   (Intercept)          PDRB           RLS           PPD           HLS 
##  1.314881e+04  4.584063e-01 -1.025370e+04 -4.802323e-02  7.495309e+03

Diagnostik Sisaan

Kenormalan Sisaan

Hipotesis:

\(H_0\) : sisaan menyebar normal
\(H_1\) : sisaan tidak menyebar normal

res.cem <- residuals(common)
yhat.cem <- fitted(common)

#normality
library(tseries)
jarque.bera.test(res.cem)
## 
##  Jarque Bera Test
## 
## data:  res.cem
## X-squared = 6600.7, df = 2, p-value < 2.2e-16
shapiro.test(res.cem)
## 
##  Shapiro-Wilk normality test
## 
## data:  res.cem
## W = 0.85831, p-value < 2.2e-16
#histogram
hist(res.cem, 
     xlab = "sisaan",
     col = "steelblue", 
     breaks=30,  
     prob = TRUE) 
lines(density(res.cem), # density plot
 lwd = 2, # thickness of line
 col = "chocolate3")

#plotqqnorm
res.cem1 <- as.numeric(res.cem)
qqnorm(res.cem1,datax=T, col="blue")
qqline(rnorm(length(res.cem1),mean(res.cem1),sd(res.cem1)),datax=T, col="red")

Kebebasan antar Sisaan

pbgtest(common)
## 
##  Breusch-Godfrey/Wooldridge test for serial correlation in panel models
## 
## data:  JPM ~ PDRB + RLS + PPD + HLS
## chisq = 1153.6, df = 8, p-value < 2.2e-16
## alternative hypothesis: serial correlation in idiosyncratic errors

Kehomogenan Ragam

bptest(common)
## 
##  studentized Breusch-Pagan test
## 
## data:  common
## BP = 134.57, df = 4, p-value < 2.2e-16

Ketiga asumsi sisaan tidak terpenuhi, oleh karena itu akan mencoba melakukan transformasi logaritma natural pada seluruh peubah.

Transformasi Logaritma Natural pada Seluruh Peubah

common1 <- plm(log(JPM)~log(PDRB)+log(RLS)+log(PPD)+log(HLS), data=dataa, model="pooling")

summary(common1)
## Pooling Model
## 
## Call:
## plm(formula = log(JPM) ~ log(PDRB) + log(RLS) + log(PPD) + log(HLS), 
##     data = dataa, model = "pooling")
## 
## Balanced Panel: n = 185, T = 8, N = 1480
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -2.386016 -0.418585 -0.018865  0.453462  1.710436 
## 
## Coefficients:
##              Estimate Std. Error  t-value  Pr(>|t|)    
## (Intercept) 11.610960   0.716536  16.2043 < 2.2e-16 ***
## log(PDRB)    0.476109   0.022684  20.9888 < 2.2e-16 ***
## log(RLS)    -1.567425   0.104153 -15.0493 < 2.2e-16 ***
## log(PPD)    -0.755473   0.095486  -7.9119 4.938e-15 ***
## log(HLS)     1.731967   0.166756  10.3862 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    848.55
## Residual Sum of Squares: 561.59
## R-Squared:      0.33818
## Adj. R-Squared: 0.33639
## F-statistic: 188.428 on 4 and 1475 DF, p-value: < 2.22e-16
multicollinearity(common1)
## # Check for Multicollinearity
## 
## Low Correlation
## 
##       Term  VIF   VIF 95% CI Increased SE Tolerance Tolerance 95% CI
##  log(PDRB) 2.28 [2.11, 2.47]         1.51      0.44     [0.40, 0.47]
##   log(RLS) 4.72 [4.32, 5.18]         2.17      0.21     [0.19, 0.23]
##   log(PPD) 3.20 [2.94, 3.49]         1.79      0.31     [0.29, 0.34]
##   log(HLS) 4.13 [3.78, 4.52]         2.03      0.24     [0.22, 0.26]
model_performance(common1,metrics = "all")
## # Indices of model performance
## 
## AIC       |      AICc |       BIC |    R2 | R2 (adj.) |  RMSE | Sigma
## ---------------------------------------------------------------------
## 32545.875 | 32545.932 | 32577.674 | 0.338 |     0.336 | 0.616 | 0.617

Diagnostik Sisaan

res.cem <- residuals(common1)
yhat.cem <- fitted(common1)


#normality
library(tseries)
jarque.bera.test(res.cem)
## 
##  Jarque Bera Test
## 
## data:  res.cem
## X-squared = 9.2687, df = 2, p-value = 0.009713
shapiro.test(res.cem)
## 
##  Shapiro-Wilk normality test
## 
## data:  res.cem
## W = 0.99439, p-value = 2.263e-05
#histogram
hist(res.cem, 
     xlab = "sisaan",
     col = "steelblue", 
     breaks=30,  
     prob = TRUE) 
lines(density(res.cem), # density plot
 lwd = 2, # thickness of line
 col = "chocolate3")

#plotqqnorm
res.cem1 <- as.numeric(res.cem)
qqnorm(res.cem1,datax=T, col="blue")
qqline(rnorm(length(res.cem1),mean(res.cem1),sd(res.cem1)),datax=T, col="red")

pbgtest(common1)
## 
##  Breusch-Godfrey/Wooldridge test for serial correlation in panel models
## 
## data:  log(JPM) ~ log(PDRB) + log(RLS) + log(PPD) + log(HLS)
## chisq = 991.42, df = 8, p-value < 2.2e-16
## alternative hypothesis: serial correlation in idiosyncratic errors
bptest(common1)
## 
##  studentized Breusch-Pagan test
## 
## data:  common1
## BP = 121.77, df = 4, p-value < 2.2e-16

Berdasarkan hasil analsis data panel dengan pendugaan parameter model menggunakan metode OLS dan juga CEM dimana pendugaan yang dilakukan adalah menggunakan Ordinary Least Square (OLS) menunjukkan bahwa asumsi-asumsi dari model belum terpenuhi meski telah dilakukan proses transformasi data dengan logaritma natural. Oleh karena itu selanjutnya dilakukan pemodelan data panel model CEM dengan menggunakan metode Generalized Least Square (GLS).

Model CEM GLS

common.gls <- pggls(log(JPM)~log(PDRB)+log(RLS)+log(PPD)+log(HLS), data=dataa, model="pooling")

summary(common.gls)
## Oneway (individual) effect General FGLS model
## 
## Call:
## pggls(formula = log(JPM) ~ log(PDRB) + log(RLS) + log(PPD) + 
##     log(HLS), data = dataa, model = "pooling")
## 
## Balanced Panel: n = 185, T = 8, N = 1480
## 
## Residuals:
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -1.808699 -0.498167  0.007753 -0.020844  0.448219  2.097529 
## 
## Coefficients:
##              Estimate Std. Error z-value  Pr(>|z|)    
## (Intercept) 11.008978   0.653751 16.8397 < 2.2e-16 ***
## log(PDRB)    0.077955   0.021810  3.5743 0.0003511 ***
## log(RLS)    -0.264480   0.066925 -3.9519 7.754e-05 ***
## log(PPD)    -0.131579   0.078995 -1.6657 0.0957804 .  
## log(HLS)     0.047574   0.118775  0.4005 0.6887558    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Total Sum of Squares: 848.55
## Residual Sum of Squares: 760.71
## Multiple R-squared: 0.10352
multicollinearity(common.gls)
## # Check for Multicollinearity
## 
## Low Correlation
## 
##       Term  VIF   VIF 95% CI Increased SE Tolerance Tolerance 95% CI
##  log(PDRB) 1.42 [1.33, 1.52]         1.19      0.71     [0.66, 0.75]
##   log(RLS) 1.36 [1.28, 1.46]         1.17      0.74     [0.69, 0.78]
##   log(PPD) 1.35 [1.28, 1.45]         1.16      0.74     [0.69, 0.78]
##   log(HLS) 1.39 [1.31, 1.49]         1.18      0.72     [0.67, 0.77]

Diagnostik Sisaan

res.gls <- residuals(common.gls)

#normality
library(tseries)
jarque.bera.test(res.gls)
## 
##  Jarque Bera Test
## 
## data:  res.gls
## X-squared = 4.5408, df = 2, p-value = 0.1033
shapiro.test(res.gls)
## 
##  Shapiro-Wilk normality test
## 
## data:  res.gls
## W = 0.99564, p-value = 0.0002855
#histogram
hist(res.gls, 
     xlab = "sisaan",
     col = "steelblue", 
     breaks=30,  
     prob = TRUE) 
lines(density(res.gls), # density plot
 lwd = 2, # thickness of line
 col = "chocolate3")

#plotqqnorm
res.gls1 <- as.numeric(res.gls)
qqnorm(res.gls1,datax=T, col="blue")
qqline(rnorm(length(res.gls1),mean(res.gls1),sd(res.gls1)),datax=T, col="red")

bptest(common.gls)
## 
##  studentized Breusch-Pagan test
## 
## data:  common.gls
## BP = 121.77, df = 4, p-value < 2.2e-16

Informasi Tambahan (silakan dieksplorasi):

Dalam mengestimasi parameter model CEM, terdapat 4 metode estimasi yang dapat digunakan (Srihardianti et al. 2016), yaitu

  • Ordinary Least Square (OLS), jika bersifat homoskedastik dan tidak ada cross-sectional correlation;

  • Weighted Least Square (WLS), jika bersifat heteroskedastik dan tidak ada cross-sectional correlation;

  • Seemingly Uncorrelated Regression (SUR), jika bersifat heteroskedastik dan ada cross-sectional correlation; dan

  • Feasible Generalized Least Square (FGLS) dengan proses autoregressive (AR), jika bersifat heteroskedastik dan ada korelasi antar waktu pada residualnya. Pada regresi data panel, estimator yang digunakan adalah FGLS yang memiliki 2 tahap estimasi yang berbeda dengan OLS. Sehingga pengujian asumsi klasik, seperti homoskedastisitas dan non-autokorelasi, tidak dapat digunakan dalam estimator ini karena tidak lagi relevan dengan konsep pengujian asumsi klasik pada regresi OLS. Namun, pengujian multikolinieritas dan normalitas akan tetap dilakukan.

Referensi

  1. Gujarati DN. 2004. Basic Econometrics 4th ed. New York:McGraw-Hill.
  2. Srihardianti M, Mustafid, Prahutama A. 2016. Metode regresi data panel untuk peramalan konsumsi energi di Indonesia. Jurnal Gaussian. 5(3):475-485.
  3. Pustaka lain yang relevan