#Input Data

library(readxl)
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
df10 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2010")
df11 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2011")
df12 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2012")
df13 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2013")
df14 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2014")
df15 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2015")
#df16 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
#    sheet = "2016")
df17 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2017")
df18 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2018")
df19 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2019")
#df20 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
#    sheet = "2020")
df21 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2021")
## New names:
## • `DISIC2` -> `DISIC2...4`
## • `RENUM2` -> `RENUM2...65`
## • `DISIC2` -> `DISIC2...83`
## • `RENUM2` -> `RENUM2...86`
df22 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Data Gabungan.xlsx", 
    sheet = "2022")

Anafer

Model 1

Select Data

df1_10 <- df10 %>% select(DISIC510,VTLVCU10,LTLNOU10,V1101,V1115,RIMVCU10,RDNVCU10)
df1_11 <- df11 %>% select(DISIC511,VTLVCU11,LTLNOU11,V1101,V1115,RIMVCU11,RDNVCU11)
df1_12 <- df12 %>% select(DISIC512,VTLVCU12,LTLNOU12,V1101,V1115,RIMVCU12,RDNVCU12)
df1_13 <- df13 %>% select(DISIC513,VTLVCU13,LTLNOU13,V1101,V1115,RIMVCU13,RDNVCU13)
df1_14 <- df14 %>% select(DISIC514,VTLVCU14,LTLNOU14,V1101,V1115,RIMVCU14,RDNVCU14)
df1_15 <- df15 %>% select(DISIC515,VTLVCU15,LTLNOU15,V1101,V1115,RIMVCU15,RDNVCU15)
df1_17 <- df17 %>% select(DISIC517,VTLVCU17,LTLNOU17,V1101,V1115,RIMVCU17,RDNVCU17)
df1_18 <- df18 %>% select(DISIC518,VTLVCU18,LTLNOU18,V1101,V1115,RIMVCU18,RDNVCU18)
df1_19 <- df19 %>% select(DISIC519,VTLVCU19,LTLNOU19,V1101,V1115,RIMVCU19,RDNVCU19)
df1_21 <- df21 %>% select(DISIC2...4,VTLVCU21,LTLNOU21,V1101,V1115,RIMVCU21, RDNVCU21)
df1_22 <- df22 %>% select(DISIC222,VTLVCU22,LTLNOU22,V1101,V1125,RIMVCU22, RDNVCU22)

Impor Data FDI (KBLI 2 digit)

FDI <- read_excel("~/KULIAH/DRAFT/DATA RAW/Tahunan(1).xlsx")
FDI <- FDI %>%
  rename(
    FDI2010 = `2010`,
    FDI2011 = `2011`,
    FDI2012 = `2012`,
    FDI2013 = `2013`,
    FDI2014 = `2014`,
    FDI2015 = `2015`,
    FDI2016 = `2016`,
    FDI2017 = `2017`,
    FDI2018 = `2018`,
    FDI2019 = `2019`,
    FDI2020 = `2020`,
    FDI2021 = `2021`,
    FDI2022 = `2022`
  )
FDI <- FDI %>% select (KBLI,FDI2010, FDI2011, FDI2012, FDI2013, FDI2014, FDI2015, FDI2016, FDI2017,FDI2018, FDI2019, FDI2020, FDI2021, FDI2022)
FDI <- FDI[10:33,]
head(FDI)
## # A tibble: 6 × 14
##    KBLI  FDI2010 FDI2011 FDI2012 FDI2013 FDI2014 FDI2015 FDI2016 FDI2017 FDI2018
##   <dbl>    <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
## 1    10   1.84e7  1.55e7  2.00e7  2.73e7  4.27e7  3.27e7  5.17e7  5.17e7  5.17e7
## 2    11   1.36e6  1.52e6  2.02e6  2.88e6  3.68e6  6.69e6  6.92e6  7.53e6  3.69e6
## 3    12   4.74e6  8.62e5  5.23e6  4.91e6  6.85e6  4.20e6  2.38e6  5.62e6  1.26e6
## 4    13   1.37e6  4.00e6  7.43e6  7.91e6  4.30e6  6.27e6  4.99e6  1.06e7  5.80e6
## 5    14   4.25e5  1.48e6  1.28e6  1.62e6  1.66e6  1.88e6  2.63e6  2.23e6  1.89e6
## 6    15   1.19e6  2.31e6  1.51e6  9.95e5  2.35e6  2.03e6  2.05e6  5.12e6  3.55e6
## # ℹ 4 more variables: FDI2019 <dbl>, FDI2020 <dbl>, FDI2021 <dbl>,
## #   FDI2022 <dbl>
library(dplyr)
library(tidyr)
FDI_long <- FDI %>%
  pivot_longer(
    cols = starts_with("FDI"),
    names_to = "tahun",
    values_to = "FDI"
  ) %>%
  mutate(
    tahun = gsub("FDI", "", tahun),
    tahun = as.numeric(tahun),
    KBLI = as.character(KBLI)
  )
head(FDI_long)
## # A tibble: 6 × 3
##   KBLI  tahun       FDI
##   <chr> <dbl>     <dbl>
## 1 10     2010 18447133.
## 2 10     2011 15499749.
## 3 10     2012 19956409.
## 4 10     2013 27338303.
## 5 10     2014 42680887.
## 6 10     2015 32656565.

TFP Sektoral(Agregasi Data)

# 2010
df10_agg <- df1_10 %>%
  group_by(DISIC510) %>%
  summarise(
    OUTPUT10_sum = sum(VTLVCU10, na.rm = TRUE)/1000,
    TK10_sum = sum(LTLNOU10, na.rm = TRUE),
    MODAL10_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER10_sum   = (sum(RIMVCU10, na.rm =TRUE) + sum(RDNVCU10, na.rm =TRUE))/1000
  )
# 2011
df11_agg <- df1_11 %>%
  group_by(DISIC511) %>%
  summarise(
    OUTPUT11_sum = sum(VTLVCU11, na.rm = TRUE)/1000,
    TK11_sum = sum(LTLNOU11, na.rm = TRUE),
    MODAL11_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER11_sum   = (sum(RIMVCU11, na.rm =TRUE) + sum(RDNVCU11, na.rm =TRUE))/1000
  )
# 2012
df12_agg <- df1_12 %>%
  group_by(DISIC512) %>%
  summarise(
    OUTPUT12_sum = sum(VTLVCU12, na.rm = TRUE)/1000,
    TK12_sum = sum(LTLNOU12, na.rm = TRUE),
    MODAL12_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER12_sum   = (sum(RIMVCU12, na.rm =TRUE) + sum(RDNVCU12, na.rm =TRUE))/1000
  )
# 2013
df13_agg <- df1_13 %>%
  group_by(DISIC513) %>%
  summarise(
    OUTPUT13_sum = sum(VTLVCU13, na.rm = TRUE)/1000,
    TK13_sum = sum(LTLNOU13, na.rm = TRUE),
    MODAL13_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER13_sum   = (sum(RIMVCU13, na.rm =TRUE) + sum(RDNVCU13, na.rm =TRUE))/1000
  )
# 2014
df14_agg <- df1_14 %>%
  group_by(DISIC514) %>%
  summarise(
    OUTPUT14_sum = sum(VTLVCU14, na.rm = TRUE)/1000,
    TK14_sum = sum(LTLNOU14, na.rm = TRUE),
    MODAL14_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER14_sum   = (sum(RIMVCU14, na.rm =TRUE) + sum(RDNVCU14, na.rm =TRUE))/1000
  )
# 2015
df15_agg <- df1_15 %>%
  group_by(DISIC515) %>%
  summarise(
    OUTPUT15_sum = sum(VTLVCU15, na.rm = TRUE)/1000,
    TK15_sum = sum(LTLNOU15, na.rm = TRUE),
    MODAL15_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER15_sum   = (sum(RIMVCU15, na.rm =TRUE) + sum(RDNVCU15, na.rm =TRUE))/1000
  )

# 2017
df17_agg <- df1_17 %>%
  group_by(DISIC517) %>%
  summarise(
    OUTPUT17_sum = sum(VTLVCU17, na.rm = TRUE)/1000,
    TK17_sum = sum(LTLNOU17, na.rm = TRUE),
    MODAL17_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER17_sum   = (sum(RIMVCU17, na.rm =TRUE) + sum(RDNVCU17, na.rm =TRUE))/1000
  )
# 2018
df18_agg <- df1_18 %>%
  group_by(DISIC518) %>%
  summarise(
    OUTPUT18_sum = sum(VTLVCU18, na.rm = TRUE)/1000,
    TK18_sum = sum(LTLNOU18, na.rm = TRUE),
    MODAL18_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER18_sum   = (sum(RIMVCU18, na.rm =TRUE) + sum(RDNVCU18, na.rm =TRUE))/1000
  )
# 2019
df19_agg <- df1_19 %>%
  group_by(DISIC519) %>%
  summarise(
    OUTPUT19_sum = sum(VTLVCU19, na.rm = TRUE)/1000,
    TK19_sum = sum(LTLNOU19, na.rm = TRUE),
    MODAL19_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER19_sum   = (sum(RIMVCU19, na.rm =TRUE) + sum(RDNVCU19, na.rm =TRUE))/1000
  )

# 2021
df21_agg <- df1_21 %>%
  group_by(DISIC2...4) %>%
  summarise(
    OUTPUT21_sum = sum(VTLVCU21, na.rm = TRUE)/1000,
    TK21_sum = sum(LTLNOU21, na.rm = TRUE),
    MODAL21_sum    = (sum(V1115, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER21_sum   = (sum(RIMVCU21, na.rm =TRUE) + sum(RDNVCU21, na.rm =TRUE))/1000
  )
# 2022
df22_agg <- df1_22 %>%
  group_by(DISIC222) %>%
  summarise(
    OUTPUT22_sum = sum(VTLVCU22, na.rm = TRUE)/1000,
    TK22_sum = sum(LTLNOU22, na.rm = TRUE),
    MODAL22_sum    = (sum(V1125, na.rm = TRUE) - sum(V1101, na.rm =TRUE))/1000,
    MATER22_sum   = (sum(RIMVCU22, na.rm =TRUE) + sum(RDNVCU22, na.rm =TRUE))/1000,
  )

Menggabungkan Data

library(dplyr)
df10_agg <- df10_agg %>%
  rename(
    KBLI = DISIC510,
    Y = OUTPUT10_sum,
    L = TK10_sum,
    K = MODAL10_sum,
    M = MATER10_sum
  ) %>%
  mutate(tahun = 2010)

df11_agg <- df11_agg %>%
  rename(
    KBLI = DISIC511,
    Y = OUTPUT11_sum,
    L = TK11_sum,
    K = MODAL11_sum,
    M = MATER11_sum
  ) %>%
  mutate(tahun = 2011)

df12_agg <- df12_agg %>%
  rename(
    KBLI = DISIC512,
    Y = OUTPUT12_sum,
    L = TK12_sum,
    K = MODAL12_sum,
    M = MATER12_sum
  ) %>%
  mutate(tahun = 2012)

df13_agg <- df13_agg %>%
  rename(
    KBLI = DISIC513,
    Y = OUTPUT13_sum,
    L = TK13_sum,
    K = MODAL13_sum,
    M = MATER13_sum
  ) %>%
  mutate(tahun = 2013)

df14_agg <- df14_agg %>%
  rename(
    KBLI = DISIC514,
    Y = OUTPUT14_sum,
    L = TK14_sum,
    K = MODAL14_sum,
    M = MATER14_sum
  ) %>%
  mutate(tahun = 2014)

df15_agg <- df15_agg %>%
  rename(
    KBLI = DISIC515,
    Y = OUTPUT15_sum,
    L = TK15_sum,
    K = MODAL15_sum,
    M = MATER15_sum
  ) %>%
  mutate(tahun = 2015)

df17_agg <- df17_agg %>%
  rename(
    KBLI = DISIC517,
    Y = OUTPUT17_sum,
    L = TK17_sum,
    K = MODAL17_sum,
    M = MATER17_sum
  ) %>%
  mutate(tahun = 2017)

df18_agg <- df18_agg %>%
  rename(
    KBLI = DISIC518,
    Y = OUTPUT18_sum,
    L = TK18_sum,
    K = MODAL18_sum,
    M = MATER18_sum
  ) %>%
  mutate(tahun = 2018)

df19_agg <- df19_agg %>%
  rename(
    KBLI = DISIC519,
    Y = OUTPUT19_sum,
    L = TK19_sum,
    K = MODAL19_sum,
    M = MATER19_sum
  ) %>%
  mutate(tahun = 2019)

df21_agg <- df21_agg %>%
  rename(
    KBLI = DISIC2...4,
    Y = OUTPUT21_sum,
    L = TK21_sum,
    K = MODAL21_sum,
    M = MATER21_sum
  ) %>%
  mutate(tahun = 2021)

df22_agg <- df22_agg %>%
  rename(
    KBLI = DISIC222,
    Y = OUTPUT22_sum,
    L = TK22_sum,
    K = MODAL22_sum,
    M = MATER22_sum
  ) %>%
  mutate(tahun = 2022)

FDI <- FDI %>%
  rename(KBLI = KBLI) %>%   # eksplisit saja
  mutate(KBLI = as.character(KBLI))

df_all <- bind_rows(
  df10_agg,
  df11_agg,
  df12_agg,
  df13_agg,
  df14_agg,
  df15_agg,
  df17_agg,
  df18_agg,
  df19_agg,
  df21_agg,
  df22_agg) 
df_all <- left_join(df_all, FDI_long, by = c("tahun","KBLI"))

Imputasi tahun 2016 dan 2020

library(tidyr)
df_all <- df_all %>%
  group_by(KBLI) %>%
  complete(tahun = 2010:2022) %>%
  ungroup()

# Imputasi 2016 dan 2020 dari tahun setelahnya
df_all <- df_all %>%
  arrange(KBLI, tahun) %>%
  group_by(KBLI) %>%
  mutate(
    across(
      where(is.numeric) & !matches("tahun"),
      ~ifelse(
        tahun %in% c(2016, 2020) & is.na(.),
        dplyr::lead(.),
        .
      )
    )
  ) %>%
  ungroup()
View(df_all)

Imputasi NA

library(dplyr)
library(zoo)
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
df_all <- df_all %>%
  arrange(KBLI, tahun) %>%
  group_by(KBLI) %>%
  mutate(
    FDI = ifelse(KBLI == 33, na.approx(FDI, tahun, na.rm = FALSE), FDI),
    FDI = ifelse(KBLI == 33, na.locf(FDI, na.rm = FALSE), FDI),
    FDI = ifelse(KBLI == 33, na.locf(FDI, fromLast = TRUE, na.rm = FALSE), FDI)
  ) %>%
  ungroup()
#library(writexl)
#write_xlsx(df_all, path = "~/KULIAH/DRAFT/DATA RAW/DATA FIX/df_io.xlsx")

Persiapan Data Panel

dpm1<-df_all%>%
  mutate(
    lnY = log(Y),
    lnK = log(K),
    lnL = log(L),
    lnM = log(M),
    lnFDI = log(FDI)
  )
View(dpm1)

Simpan

#library(writexl)
#write_xlsx(dpm1, path = "~/KULIAH/DRAFT/DATA RAW/DATA FIX/df_m1.xlsx")

Pemilihan Model

library("plm")
## 
## Attaching package: 'plm'
## The following objects are masked from 'package:dplyr':
## 
##     between, lag, lead
cem<-plm(lnY ~ lnK+lnL+lnM+lnFDI, data = dpm1, index = c("KBLI", "tahun"), 
         model = "pooling")
fem<-plm(lnY ~ lnK+lnL+lnM+lnFDI, data = dpm1, index = c("KBLI", "tahun"),
         model = "within",effect = "individual")
rem<-plm(lnY ~ lnK+lnL+lnM+lnFDI, data = dpm1, index = c("KBLI", "tahun"),
         model = "random",effect = "individual")
cem
## 
## Model Formula: lnY ~ lnK + lnL + lnM + lnFDI
## 
## Coefficients:
## (Intercept)         lnK         lnL         lnM       lnFDI 
##    3.290301    0.048516    0.153977    0.557757    0.130647
fem
## 
## Model Formula: lnY ~ lnK + lnL + lnM + lnFDI
## 
## Coefficients:
##         lnK         lnL         lnM       lnFDI 
## -0.00022783  0.67195501  0.54990067  0.17744847
rem
## 
## Model Formula: lnY ~ lnK + lnL + lnM + lnFDI
## 
## Coefficients:
## (Intercept)         lnK         lnL         lnM       lnFDI 
##    0.019350    0.022668    0.372576    0.586718    0.171361
#Uji Chow
pooltest(cem,fem) #hasil tolak H0 FEM lebih baik
## 
##  F statistic
## 
## data:  lnY ~ lnK + lnL + lnM + lnFDI
## F = 15.451, df1 = 23, df2 = 284, p-value < 2.2e-16
## alternative hypothesis: unstability
#Uji Hausman
phtest(fem,rem) #Tolak H0 FEM lebih baik
## 
##  Hausman Test
## 
## data:  lnY ~ lnK + lnL + lnM + lnFDI
## chisq = 42.62, df = 4, p-value = 1.241e-08
## alternative hypothesis: one model is inconsistent

###Struktur Varians Kovarians

#Uji LM
library(lmtest)
bptest(fem) #Tolak H0, heteroskedastis
## 
##  studentized Breusch-Pagan test
## 
## data:  fem
## BP = 20.523, df = 4, p-value = 0.0003937
#Uji LambdaLM
pcdtest(fem, test = "lm") #Tolak H0, ada cross section dependence, metode SUR
## 
##  Breusch-Pagan LM test for cross-sectional dependence in panels
## 
## data:  lnY ~ lnK + lnL + lnM + lnFDI
## chisq = 521.67, df = 276, p-value < 2.2e-16
## alternative hypothesis: cross-sectional dependence

Model Panel Terpilih

m1<-pggls(lnY ~ lnK+lnL+lnM+lnFDI, data = dpm1, index = c("KBLI", "tahun"), model = "within",effect = "individual")
summary(m1)
## Oneway (individual) effect Within FGLS model
## 
## Call:
## pggls(formula = lnY ~ lnK + lnL + lnM + lnFDI, data = dpm1, effect = "individual", 
##     model = "within", index = c("KBLI", "tahun"))
## 
## Balanced Panel: n = 24, T = 13, N = 312
## 
## Residuals:
##         Min.      1st Qu.       Median      3rd Qu.         Max. 
## -1.172707197 -0.189271492  0.006782934  0.166748180  0.787111755 
## 
## Coefficients:
##       Estimate Std. Error z-value  Pr(>|z|)    
## lnK   0.022101   0.010544  2.0960   0.03608 *  
## lnL   0.741407   0.076182  9.7320 < 2.2e-16 ***
## lnM   0.426647   0.034396 12.4039 < 2.2e-16 ***
## lnFDI 0.117863   0.020949  5.6263 1.841e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Total Sum of Squares: 403.05
## Residual Sum of Squares: 26.699
## Multiple R-squared: 0.93376
#konstanta global
konst <- fixef(m1)
k<- mean(konst)
print(k)
## [1] -0.7342388
konst
##       10       11       12       13       14       15       16       17 
## -1.58792 -0.39599 -0.66989 -1.61301 -1.37460 -1.28088 -1.39062 -0.76296 
##       18       19       20       21       22       23       24       25 
## -0.37279  0.19710 -0.56630 -0.13708 -1.48703 -0.62005 -0.50723 -1.02384 
##       26       27       28       29       30       31       32       33 
## -0.91143 -0.18089 -0.12554 -0.14119 -0.29183 -1.18616 -1.30084  0.10924
ef<-konst-k
ef
##        10        11        12        13        14        15        16        17 
## -0.853679  0.338254  0.064345 -0.878771 -0.640358 -0.546639 -0.656382 -0.028721 
##        18        19        20        21        22        23        24        25 
##  0.361450  0.931339  0.167935  0.597159 -0.752789  0.114189  0.227005 -0.289605 
##        26        27        28        29        30        31        32        33 
## -0.177194  0.553346  0.608699  0.593050  0.442412 -0.451918 -0.566604  0.843477
# UJI t DAN UJI F MODEL PGLS/FGLS

# Koefisien
beta <- coef(m1)

V <- m1$vcov
# Standard error
se <- sqrt(diag(V))
# Jumlah observasi
N <- nrow(dpm1)
# Jumlah individu
n <- length(unique(dpm1$KBLI))
# Jumlah variabel independen
k <- length(beta)
# Derajat bebas
df <- N - n - k
df
## [1] 284
# Taraf signifikansi
alpha <- 0.05

# UJI PARSIAL (t)

t_hitung <- beta / se
t_tabel <- qt(
  1 - alpha/2,
  df
)
p_value_t <- 2 * pt(
  -abs(t_hitung),
  df
)

hasil_t <- data.frame(
  Variabel = names(beta),
  Koefisien = beta,
  Std_Error = se,
  t_hitung = t_hitung,
  t_tabel = t_tabel,
  p_value = p_value_t
)

print(hasil_t)
##       Variabel  Koefisien  Std_Error  t_hitung  t_tabel      p_value
## lnK        lnK 0.02210067 0.01054398  2.096047 1.968352 3.696293e-02
## lnL        lnL 0.74140659 0.07618216  9.732024 1.968352 1.669858e-19
## lnM        lnM 0.42664692 0.03439622 12.403889 1.968352 1.589789e-28
## lnFDI    lnFDI 0.11786314 0.02094861  5.626299 1.968352 4.411050e-08
# UJI SIMULTAN (F)

V <- m1$vcov

F_hitung <- as.numeric(
  t(beta) %*% solve(V) %*% beta / k
)

F_tabel <- qf(
  1 - alpha,
  df1 = k,
  df2 = df
)

p_value_F <- pf(
  F_hitung,
  df1 = k,
  df2 = df,
  lower.tail = FALSE
)

hasil_F <- data.frame(
  F_hitung = F_hitung,
  F_tabel = F_tabel,
  df1 = k,
  df2 = df,
  p_value = p_value_F
)

print(hasil_F)
##   F_hitung  F_tabel df1 df2       p_value
## 1 343.0543 2.403431   4 284 2.142028e-107
#adj rsquare
n <- length(residuals(m1))       # jumlah observasi
k <- length(coef(m1))  # jumlah variabel independen (tanpa intersep)
ssr <- sum(residuals(m1)^2)
ssr
## [1] 26.69949
y_actual <- model.frame(m1)[, 1]
sst <- sum((y_actual - mean(y_actual))^2)
sst
## [1] 403.0481
r2 <- 1 - ssr/sst
adj_r2 <- 1 - (1 - r2) * (n - 1) / (n - k - 1)
adj_r2
## [1] 0.9328929

Uji asumsi klasik

library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(plm)
re <- residuals(cem)
res <- residuals(m1)
#Multikol
m1_lm <- lm(lnY ~ lnK + lnL + lnM +lnFDI, data = dpm1)
vif(m1_lm) #<10 tidak ada multikol
##      lnK      lnL      lnM    lnFDI 
## 2.015790 2.423632 3.995135 2.269043
#Normalitas
jarque.bera.test(res) #gagal tolak h0, resid distribusi normal
## 
##  Jarque Bera Test
## 
## data:  res
## X-squared = 3.6919, df = 2, p-value = 0.1579
jarque.bera.test(re)
## 
##  Jarque Bera Test
## 
## data:  re
## X-squared = 11.368, df = 2, p-value = 0.0034

Membentuk TFP

cara awal

resid(m1)
##       10-2010       10-2011       10-2012       10-2013       10-2014 
## -0.1678255146 -0.2186469570 -0.2751200267 -0.1392386309 -0.1103071432 
##       10-2015       10-2016       10-2017       10-2018       10-2019 
##  0.0087761275  0.0147146294  0.0147146294  0.1473178711  0.0465440046 
##       10-2020       10-2021       10-2022       11-2010       11-2011 
##  0.2544032524  0.2544032524  0.1702645058 -0.2211415991 -0.2125739131 
##       11-2012       11-2013       11-2014       11-2015       11-2016 
## -0.0262084225  0.0540299703  0.1460627442  0.2344809590 -0.0531567274 
##       11-2017       11-2018       11-2019       11-2020       11-2021 
## -0.0531567274 -0.0808310119  0.0992357458  0.0442056515  0.0442056515 
##       11-2022       12-2010       12-2011       12-2012       12-2013 
##  0.0248476790 -0.5422270762 -0.2396627227 -0.2438138148 -0.0323616762 
##       12-2014       12-2015       12-2016       12-2017       12-2018 
##  0.0818259175  0.0973540083 -0.1328822447 -0.1328822447  0.0570768403 
##       12-2019       12-2020       12-2021       12-2022       13-2010 
## -0.0172283202  0.4040097490  0.4040097490  0.2967818355 -0.3212974218 
##       13-2011       13-2012       13-2013       13-2014       13-2015 
## -0.3887593944 -0.3941672148  0.0886512671 -0.0214173126 -0.1933739029 
##       13-2016       13-2017       13-2018       13-2019       13-2020 
##  0.0060534436  0.0060534436  0.0349009875  0.4531393339  0.3289896725 
##       13-2021       13-2022       14-2010       14-2011       14-2012 
##  0.3289896725  0.0722374258 -0.2536733407 -0.4902203244 -0.1482729430 
##       14-2013       14-2014       14-2015       14-2016       14-2017 
## -0.0931025176 -0.2503690631 -0.4847497062  0.5285903567  0.5285903567 
##       14-2018       14-2019       14-2020       14-2021       14-2022 
##  0.5121675116  0.5001313756 -0.1444011132 -0.1444011132 -0.0602894793 
##       15-2010       15-2011       15-2012       15-2013       15-2014 
## -0.4765739520 -0.3461293618 -0.3369821550 -0.0842955178  0.1028428959 
##       15-2015       15-2016       15-2017       15-2018       15-2019 
##  0.5313845328  0.2530072946  0.2530072946  0.3252170164  0.7403691106 
##       15-2020       15-2021       15-2022       16-2010       16-2011 
## -0.3665664615 -0.3665664615 -0.2287142352 -0.3876530305 -0.3164763247 
##       16-2012       16-2013       16-2014       16-2015       16-2016 
## -0.1640901879 -0.0845834722 -0.2210484839  0.3111544052  0.1449260505 
##       16-2017       16-2018       16-2019       16-2020       16-2021 
##  0.1449260505  0.0893790874  0.1847695402  0.0756130568  0.0756130568 
##       16-2022       17-2010       17-2011       17-2012       17-2013 
##  0.1474702520 -0.0538669405  0.0190372080 -0.1805430824 -0.1923833627 
##       17-2014       17-2015       17-2016       17-2017       17-2018 
## -0.3808133180 -0.2500454600  0.1667481802  0.1667481802  0.6952397473 
##       17-2019       17-2020       17-2021       17-2022       18-2010 
## -0.3213300698  0.1470993751  0.1470993751  0.0370101675  0.6062424158 
##       18-2011       18-2012       18-2013       18-2014       18-2015 
## -0.3482677374 -0.6122924124 -0.0926550247 -0.1601275657 -0.3321575310 
##       18-2016       18-2017       18-2018       18-2019       18-2020 
##  0.3765415138  0.3765415138  0.3334260986 -0.1871427195  0.0755789519 
##       18-2021       18-2022       19-2010       19-2011       19-2012 
##  0.0755789519 -0.1112664551 -0.4170542814 -0.5193806333 -1.1727071971 
##       19-2013       19-2014       19-2015       19-2016       19-2017 
## -0.8102671246 -0.5996652171  0.0222118050  0.4555182447  0.4555182447 
##       19-2018       19-2019       19-2020       19-2021       19-2022 
## -0.1838730793  0.5336891475  0.7871117551  0.7871117551  0.6617865806 
##       20-2010       20-2011       20-2012       20-2013       20-2014 
## -0.3488199640 -0.2010457008 -0.2831383860 -0.0852143363  0.1569541006 
##       20-2015       20-2016       20-2017       20-2018       20-2019 
##  0.0615086301  0.3291934968  0.3291934968  0.3355412008 -0.2086569607 
##       20-2020       20-2021       20-2022       21-2010       21-2011 
## -0.0900411248 -0.0900411248  0.0945666722  0.3532881454 -0.2293840410 
##       21-2012       21-2013       21-2014       21-2015       21-2016 
## -0.4852374493 -0.6003871117 -0.2847464894 -0.3656665911  0.6077307139 
##       21-2017       21-2018       21-2019       21-2020       21-2021 
##  0.6077307139  0.0314146640  0.1965191601  0.1262447548  0.1262447548 
##       21-2022       22-2010       22-2011       22-2012       22-2013 
## -0.0837512243 -0.4435444688 -0.6001457967 -0.4187497238  0.1330961920 
##       22-2014       22-2015       22-2016       22-2017       22-2018 
##  0.2458495243  0.1200390382  0.0429167414  0.0429167414  0.3327818459 
##       22-2019       22-2020       22-2021       22-2022       23-2010 
##  0.3314936087  0.0427244489  0.0427244489  0.1278973998 -0.0537961362 
##       23-2011       23-2012       23-2013       23-2014       23-2015 
## -0.3297087892 -0.4608317447 -0.2026203689  0.1206631603  0.3849557222 
##       23-2016       23-2017       23-2018       23-2019       23-2020 
##  0.3743493283  0.3743493283 -0.0630630290 -0.1990558918  0.0763210103 
##       23-2021       23-2022       24-2010       24-2011       24-2012 
##  0.0763210103 -0.0978835999 -0.3449131741 -0.0315813286 -0.2298652130 
##       24-2013       24-2014       24-2015       24-2016       24-2017 
##  0.1401310228  0.0310910572  0.2407641649  0.1268544172  0.1268544172 
##       24-2018       24-2019       24-2020       24-2021       24-2022 
##  0.0428174872 -0.1542470729  0.1160368397  0.1160368397 -0.1799794574 
##       25-2010       25-2011       25-2012       25-2013       25-2014 
## -0.1427725387 -0.2073949465 -0.0861720252 -0.1432113775  0.0089655518 
##       25-2015       25-2016       25-2017       25-2018       25-2019 
## -0.0845822618 -0.0594931753 -0.0594931753  0.0819246638  0.4082896031 
##       25-2020       25-2021       25-2022       26-2010       26-2011 
##  0.1104679238  0.1104679238  0.0630038338 -0.2410132305 -0.3779101065 
##       26-2012       26-2013       26-2014       26-2015       26-2016 
## -0.0325530711 -0.0787624399 -0.1046080684  0.2140056306 -0.1823705783 
##       26-2017       26-2018       26-2019       26-2020       26-2021 
## -0.1823705783  0.0080497860  0.1420062225  0.3133173289  0.3133173289 
##       26-2022       27-2010       27-2011       27-2012       27-2013 
##  0.2088917760 -0.5991527295 -0.3570558483 -0.3366446316  0.0385356992 
##       27-2014       27-2015       27-2016       27-2017       27-2018 
## -0.3738822204 -0.0152998540  0.4643746077  0.4643746077  0.4481540397 
##       27-2019       27-2020       27-2021       27-2022       28-2010 
##  0.3704205662  0.0470649463  0.0470649463 -0.1979541291 -0.1529055853 
##       28-2011       28-2012       28-2013       28-2014       28-2015 
## -0.1857474091 -0.3017376398 -0.1009969214 -0.0444175779  0.3187956646 
##       28-2016       28-2017       28-2018       28-2019       28-2020 
##  0.3343623293  0.3343623293  0.2243682775 -0.1172472925 -0.1145498537 
##       28-2021       28-2022       29-2010       29-2011       29-2012 
## -0.1145498537 -0.0797364675  0.6030484709 -0.0095922849  0.1882098722 
##       29-2013       29-2014       29-2015       29-2016       29-2017 
##  0.1375491935  0.2912767741  0.2053060383  0.0075124247  0.0075124247 
##       29-2018       29-2019       29-2020       29-2021       29-2022 
## -0.2760184784 -0.0431705717 -0.3844091794 -0.3844091794 -0.3428155047 
##       30-2010       30-2011       30-2012       30-2013       30-2014 
##  0.2594293062  0.6008827484  0.1732559927 -0.0276379318  0.1543771215 
##       30-2015       30-2016       30-2017       30-2018       30-2019 
## -0.0794500712 -0.1882342020 -0.1882342020  0.0118477874 -0.0241721740 
##       30-2020       30-2021       30-2022       31-2010       31-2011 
## -0.1991990940 -0.1991990940 -0.2936661870 -0.1667850109 -0.3147512046 
##       31-2012       31-2013       31-2014       31-2015       31-2016 
## -0.6909004058 -0.1645697122  0.3383504652  0.1365395010  0.0436838581 
##       31-2017       31-2018       31-2019       31-2020       31-2021 
##  0.0436838581  0.0630916663  0.1561344328  0.2321706648  0.2321706648 
##       31-2022       32-2010       32-2011       32-2012       32-2013 
##  0.0911812224 -0.2634242399 -0.3109980169 -0.1257660222 -0.2642275730 
##       32-2014       32-2015       32-2016       32-2017       32-2018 
##  0.0007334459  0.4135257776 -0.0965972852 -0.0965972852  0.2068888364 
##       32-2019       32-2020       32-2021       32-2022       33-2010 
##  0.1871605012  0.1772227117  0.1772227117 -0.0051435622 -0.5985668442 
##       33-2011       33-2012       33-2013       33-2014       33-2015 
## -0.0986354325 -0.4257874987 -0.0656285526 -0.2017364767  0.6288637676 
##       33-2016       33-2017       33-2018       33-2019       33-2020 
## -0.0812670781 -0.0812670781 -0.1222398262  0.0851921123  0.4574706215 
##       33-2021       33-2022 
##  0.4574706215  0.0461316643
#TFP_log <- resid(m1)
#tfp_panel <- data.frame(
#  KBLI  = index(m1)$KBLI,
#  Tahun = index(m1)$Tahun,
#  lnTFP   = TFP_log)
#head(tfp_panel)
#tfp_panel$TFP <- exp(tfp_panel$lnTFP)
#head(tfp_panel)

Manual

beta <- coef(m1)
beta
##        lnK        lnL        lnM      lnFDI 
## 0.02210067 0.74140659 0.42664692 0.11786314
dpm1 <- dpm1 %>%
  mutate(
    lnTFP_manual =
      lnY -
      (beta["lnK"] * lnK +
      beta["lnL"] * lnL +
      beta["lnM"] * lnM +
      beta["lnFDI"] * lnFDI)
  )
head(dpm1)
## # A tibble: 6 × 13
##   KBLI  tahun        Y      L      K      M    FDI   lnY   lnK   lnL   lnM lnFDI
##   <chr> <dbl>    <dbl>  <dbl>  <dbl>  <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 10     2010   1.57e8 675797 3.25e8 2.62e8 1.84e7  18.9  19.6  13.4  19.4  16.7
## 2 10     2011   1.92e8 742195 3.76e8 4.20e8 1.55e7  19.1  19.7  13.5  19.9  16.6
## 3 10     2012   2.23e8 884602 6.35e8 4.53e8 2.00e7  19.2  20.3  13.7  19.9  16.8
## 4 10     2013   2.95e8 901550 5.60e8 5.66e8 2.73e7  19.5  20.1  13.7  20.2  17.1
## 5 10     2014   3.25e8 877791 6.68e9 5.43e8 4.27e7  19.6  22.6  13.7  20.1  17.6
## 6 10     2015   3.49e8 858170 7.19e8 6.09e8 3.27e7  19.7  20.4  13.7  20.2  17.3
## # ℹ 1 more variable: lnTFP_manual <dbl>

cara lain

fixef(m1)
##       10       11       12       13       14       15       16       17 
## -1.58792 -0.39599 -0.66989 -1.61301 -1.37460 -1.28088 -1.39062 -0.76296 
##       18       19       20       21       22       23       24       25 
## -0.37279  0.19710 -0.56630 -0.13708 -1.48703 -0.62005 -0.50723 -1.02384 
##       26       27       28       29       30       31       32       33 
## -0.91143 -0.18089 -0.12554 -0.14119 -0.29183 -1.18616 -1.30084  0.10924
alpha <- fixef(m1)
alpha_df <- data.frame(
  KBLI  = as.character(names(alpha)),
  alpha = as.numeric(alpha)
)

dpm1 <- dpm1 %>%
  mutate(KBLI = as.character(KBLI)) %>%
  left_join(alpha_df, by = "KBLI") %>%
  mutate(
    resid = residuals(m1),
    lnTFP = alpha+resid#+(beta0)
  )
head(dpm1)
## # A tibble: 6 × 16
##   KBLI  tahun        Y      L      K      M    FDI   lnY   lnK   lnL   lnM lnFDI
##   <chr> <dbl>    <dbl>  <dbl>  <dbl>  <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 10     2010   1.57e8 675797 3.25e8 2.62e8 1.84e7  18.9  19.6  13.4  19.4  16.7
## 2 10     2011   1.92e8 742195 3.76e8 4.20e8 1.55e7  19.1  19.7  13.5  19.9  16.6
## 3 10     2012   2.23e8 884602 6.35e8 4.53e8 2.00e7  19.2  20.3  13.7  19.9  16.8
## 4 10     2013   2.95e8 901550 5.60e8 5.66e8 2.73e7  19.5  20.1  13.7  20.2  17.1
## 5 10     2014   3.25e8 877791 6.68e9 5.43e8 4.27e7  19.6  22.6  13.7  20.1  17.6
## 6 10     2015   3.49e8 858170 7.19e8 6.09e8 3.27e7  19.7  20.4  13.7  20.2  17.3
## # ℹ 4 more variables: lnTFP_manual <dbl>, alpha <dbl>, resid <pseries>,
## #   lnTFP <pseries>
var(dpm1$lnTFP_manual)
## [1] 0.3930991
mean(dpm1$lnTFP_manual)
## [1] -0.7342388
#library(writexl)
#write_xlsx(dpm1, path = "~/KULIAH/DRAFT/DATA RAW/DATA FIX/df_m1.xlsx")

ANADES M1

Scatter plot

library(dplyr)
library(ggplot2)
library(scales)

#K
df_all %>%
  filter(tahun %in% c(2010, 2021)) %>%
  ggplot(aes(x = K, y = Y)) +
  geom_point(color = "black") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  facet_wrap(~tahun, scales = "fixed") +
  scale_x_continuous(labels = comma) +
  scale_y_continuous(labels = comma) +
  labs(
    x = "Kapital (K)",
    y = "Output (Y)"
  ) +
  theme_classic()+
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1)
    )
## `geom_smooth()` using formula = 'y ~ x'

#L
df_all %>%
  filter(tahun %in% c(2010, 2021)) %>%
  ggplot(aes(x = L, y = Y)) +
  geom_point(color = "black") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  facet_wrap(~tahun, scales = "fixed") +
  scale_x_continuous(labels = comma) +
  scale_y_continuous(labels = comma) +
  labs(
    x = "Tenaga Kerja (L)",
    y = "Output (Y)"
  ) +
  theme_classic()+
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1)
    )
## `geom_smooth()` using formula = 'y ~ x'

#M
df_all %>%
  filter(tahun %in% c(2010, 2021)) %>%
  ggplot(aes(x = M, y = Y)) +
  geom_point(color = "black") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  facet_wrap(~tahun, scales = "fixed") +
  scale_x_continuous(labels = comma) +
  scale_y_continuous(labels = comma) +
  labs(
    x = "Material (M)",
    y = "Output (Y)"
  ) +
  theme_classic()+
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1)
    )
## `geom_smooth()` using formula = 'y ~ x'

#FDI
df_all %>%
  filter(tahun %in% c(2010, 2021)) %>%
  ggplot(aes(x = FDI, y = Y)) +
  geom_point(color = "black") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  facet_wrap(~tahun, scales = "fixed") +
  scale_x_continuous(labels = comma) +
  scale_y_continuous(labels = comma) +
  labs(
    x = "Investasi Asing (FDI)",
    y = "Output (Y)"
  ) +
  theme_classic()+
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1)
    )
## `geom_smooth()` using formula = 'y ~ x'

Time Series KBLI 2 Digit

dpm1$TFP <- exp(dpm1$lnTFP)
ggplot(dpm1,
       aes(x = tahun,
           y = TFP,
           group = KBLI)) +
  geom_line() +
  geom_point(size = 0.8) +
  facet_wrap(~ KBLI,
             scales = "free_y",
             ncol = 4) +
  labs(title = "Perkembangan TFP Industri Pengolahan Menurut KBLI 2 Digit",
       x = "Tahun",
       y = "TFP") +
  theme_bw()

Model 2

Persiapan Data

df2_10 <- df10 %>% select(DISIC510,DASING10,ITXVCU10,VTLVCU10,LTLNOU10,ZPDVCU10,ZNDVCU10)
df2_11 <- df11 %>% select(DISIC511,DASING11,ITXVCU11,VTLVCU11,LTLNOU11,ZPDVCU11,ZNDVCU11)
df2_12 <- df12 %>% select(DISIC512,DASING12,ITXVCU12,VTLVCU12,LTLNOU12,ZPDVCU12,ZNDVCU12)
df2_13 <- df13 %>% select(DISIC513,DASING13,ITXVCU13,VTLVCU13,LTLNOU13,ZPDVCU13,ZNDVCU13)
df2_14 <- df14 %>% select(DISIC514,DASING14,ITXVCU14,VTLVCU14,LTLNOU14,ZPDVCU14,ZNDVCU14)
df2_15 <- df15 %>% select(DISIC515,DASING15,ITXVCU15,VTLVCU15,LTLNOU15,ZPDVCU15,ZNDVCU15)
df2_17 <- df17 %>% select(DISIC517,DASING17,ITXVCU17,VTLVCU17,LTLNOU17,ZPDVCU17,ZNDVCU17)
df2_18 <- df18 %>% select(DISIC518,DASING18,ITXVCU18,VTLVCU18,LTLNOU18,ZPDVCU18,ZNDVCU18)
df2_19 <- df19 %>% select(DISIC519,DASING19,ITXVCU19,VTLVCU19,LTLNOU19,ZPDVCU19,ZNDVCU19)
df2_21 <- df21 %>% select(DISIC2...4,DASING21,ITXVCU21,VTLVCU21,LTLNOU21,ZPDVCU21,ZNDVCU21)
df2_22 <- df22%>% select(DISIC222,DASING22,ITXVCU22,VTLVCU22,LTLNOU22,ZPDVCU22,ZNDVCU22)

Spillover

# Spillover Horizontal
spill10<-df2_10%>%
  group_by(DISIC510) %>%
  summarise(
    hori10 = sum(DASING10*VTLVCU10, na.rm = TRUE)/sum(VTLVCU10, na.rm = TRUE) #di javorcik dlm bntuk persen bukan proporsi
  )

spill11<-df2_11%>%
  group_by(DISIC511) %>%
  summarise(
    hori11 = sum(DASING11*VTLVCU11, na.rm = TRUE)/sum(VTLVCU11, na.rm = TRUE) #di javorcik dlm bntuk persen bukan proporsi
  )

spill12<-df2_12%>%
  group_by(DISIC512) %>%
  summarise(
    hori12 = sum(DASING12*VTLVCU12, na.rm = TRUE)/sum(VTLVCU12, na.rm = TRUE) #di javorcik dlm bntuk persen bukan proporsi
  )

spill13<-df2_13%>%
  group_by(DISIC513) %>%
  summarise(
    hori13 = sum(DASING13*VTLVCU13, na.rm = TRUE)/sum(VTLVCU13, na.rm = TRUE) #di javorcik dlm bntuk persen bukan proporsi
  )

spill14<-df2_14%>%
  group_by(DISIC514) %>%
  summarise(
    hori14 = sum(DASING14*VTLVCU14, na.rm = TRUE)/sum(VTLVCU14, na.rm = TRUE) #di javorcik dlm bntuk persen bukan proporsi
  )

spill15<-df2_15%>%
  group_by(DISIC515) %>%
  summarise(
    hori15 = sum(DASING15*VTLVCU15, na.rm = TRUE)/sum(VTLVCU15, na.rm = TRUE) #di javorcik dlm bntuk persen bukan proporsi
  )

spill17<-df2_17%>%
  group_by(DISIC517) %>%
  summarise(
    hori17 = sum(DASING17*VTLVCU17, na.rm = TRUE)/sum(VTLVCU17, na.rm = TRUE) #di javorcik dlm bntuk persen bukan proporsi
  )

spill18<-df2_18%>%
  group_by(DISIC518) %>%
  summarise(
    hori18 = sum(DASING18*VTLVCU18, na.rm = TRUE)/sum(VTLVCU18, na.rm = TRUE)
  )

spill19<-df2_19%>%
  group_by(DISIC519) %>%
  summarise(
    hori19 = sum(DASING19*VTLVCU19, na.rm = TRUE)/sum(VTLVCU19, na.rm = TRUE)
  )

spill21<-df2_21%>%
  group_by(DISIC2...4) %>%
  summarise(
    hori21 = sum(DASING21*VTLVCU21, na.rm = TRUE)/sum(VTLVCU21, na.rm = TRUE)
  )

spill22<-df2_22%>%
  group_by(DISIC222) %>%
  summarise(
    hori22 = sum(DASING22*VTLVCU22, na.rm = TRUE)/sum(VTLVCU22, na.rm = TRUE) #di javorcik dlm bntuk persen bukan proporsi
  )
#Import matriks A
A_10 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Matriks A.xlsx", 
    sheet = "2010")
A_16 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Matriks A.xlsx", 
    sheet = "2016")
A_20 <- read_excel("~/KULIAH/DRAFT/DATA RAW/Matriks A.xlsx", 
    sheet = "2020")
#Backward Spillover
#disesuaikan tahunnya
#2010
h_10 <- spill10$hori10 #vektor horizontal
A_1 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_1) <- 0 #diagonal menjadi 0 k != j
bw_10 <- A_1 %*% h_10 # Hitung Backward Spillover
spill10$backward10 <- as.vector(bw_10) #masukkan ke data frame

#2011
h_11 <- spill11$hori11 #vektor horizontal
A_11 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_11) <- 0 #diagonal menjadi 0 k != j
bw_11 <- A_11 %*% h_11 # Hitung Backward Spillover
spill11$backward11 <- as.vector(bw_11) #masukkan ke data frame

#2012
h_12 <- spill12$hori12 #vektor horizontal
A_12 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_12) <- 0 #diagonal menjadi 0 k != j
bw_12 <- A_12 %*% h_12 # Hitung Backward Spillover
spill12$backward12 <- as.vector(bw_12) #masukkan ke data frame

#2013
h_13 <- spill13$hori13 #vektor horizontal
A_13 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_13) <- 0 #diagonal menjadi 0 k != j
bw_13 <- A_13 %*% h_13 # Hitung Backward Spillover
spill13$backward13 <- as.vector(bw_13) #masukkan ke data frame

#2014
h_14 <- spill14$hori14 #vektor horizontal
A_14 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_14) <- 0 #diagonal menjadi 0 k != j
bw_14 <- A_14 %*% h_14 # Hitung Backward Spillover
spill14$backward14 <- as.vector(bw_14) #masukkan ke data frame

#2015
h_15 <- spill15$hori15 #vektor horizontal
A_15 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_15) <- 0 #diagonal menjadi 0 k != j
bw_15 <- A_15 %*% h_15 # Hitung Backward Spillover
spill15$backward15 <- as.vector(bw_15) #masukkan ke data frame

#2017
h_17 <- spill17$hori17 #vektor horizontal
A_17 <- as.matrix(A_16[, -1]) #buang kolom 1
diag(A_17) <- 0 #diagonal menjadi 0 k != j
bw_17 <- A_17 %*% h_17 # Hitung Backward Spillover
spill17$backward17 <- as.vector(bw_17) #masukkan ke data frame

#2018
h_18 <- spill18$hori18 #vektor horizontal
A_18 <- as.matrix(A_16[, -1]) #buang kolom 1
diag(A_18) <- 0 #diagonal menjadi 0 k != j
bw_18 <- A_18 %*% h_18 # Hitung Backward Spillover
spill18$backward18 <- as.vector(bw_18) #masukkan ke data frame

#2019
h_19 <- spill19$hori19 #vektor horizontal
A_19 <- as.matrix(A_16[, -1]) #buang kolom 1
diag(A_19) <- 0 #diagonal menjadi 0 k != j
bw_19 <- A_19 %*% h_19 # Hitung Backward Spillover
spill19$backward19 <- as.vector(bw_19) #masukkan ke data frame

#2021
h_21 <- spill21$hori21 #vektor horizontal
A_21 <- as.matrix(A_20[, -1]) #buang kolom 1
diag(A_21) <- 0 #diagonal menjadi 0 k != j
bw_21 <- A_21 %*% h_21 # Hitung Backward Spillover
spill21$backward21 <- as.vector(bw_21) #masukkan ke data frame

#2022
h_22 <- spill22$hori22 #vektor horizontal
A_22 <- as.matrix(A_20[, -1]) #buang kolom 1
diag(A_22) <- 0 #diagonal menjadi 0 k != j
bw_22 <- A_22 %*% h_22 # Hitung Backward Spillover
spill22$backward22 <- as.vector(bw_22) #masukkan ke data frame
#Forward Spillover
#2010
h_10 <- spill10$hori10 #vektor horizontal
A_1 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_1) <- 0 #diagonal menjadi 0 k != j
fw_10 <- t(A_1) %*% h_10 # Hitung Backward Spillover
spill10$forward10 <- as.vector(fw_10) #masukkan ke data frame

#2011
h_11 <- spill11$hori11 #vektor horizontal
A_11 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_11) <- 0 #diagonal menjadi 0 k != j
fw_11 <- t(A_11) %*% h_11 # Hitung Backward Spillover
spill11$forward11 <- as.vector(fw_11) #masukkan ke data frame

#2012
h_12 <- spill12$hori12 #vektor horizontal
A_12 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_12) <- 0 #diagonal menjadi 0 k != j
fw_12 <- t(A_18) %*% h_12 # Hitung Backward Spillover
spill12$forward12 <- as.vector(fw_12) #masukkan ke data frame

#2013
h_13 <- spill13$hori13 #vektor horizontal
A_13 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_13) <- 0 #diagonal menjadi 0 k != j
fw_13 <- t(A_13) %*% h_13 # Hitung Backward Spillover
spill13$forward13 <- as.vector(fw_13) #masukkan ke data frame

#2014
h_14 <- spill14$hori14 #vektor horizontal
A_14 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_14) <- 0 #diagonal menjadi 0 k != j
fw_14 <- t(A_14) %*% h_14 # Hitung Backward Spillover
spill14$forward14 <- as.vector(fw_14) #masukkan ke data frame

#2015
h_15 <- spill15$hori15 #vektor horizontal
A_15 <- as.matrix(A_10[, -1]) #buang kolom 1
diag(A_15) <- 0 #diagonal menjadi 0 k != j
fw_15 <- t(A_15) %*% h_15 # Hitung Backward Spillover
spill15$forward15 <- as.vector(fw_15) #masukkan ke data frame

#2017
h_17 <- spill17$hori17 #vektor horizontal
A_17 <- as.matrix(A_16[, -1]) #buang kolom 1
diag(A_17) <- 0 #diagonal menjadi 0 k != j
# t(A_17) digunakan karena kita ingin melihat distribusi OUTPUT (baris)
# namun dalam format koefisien yang biasanya disusun per KOLOM (input).
fw_17 <- t(A_17) %*% h_17
spill17$forward17 <- as.vector(fw_17) #masukkan ke data frame

#2018
h_18 <- spill18$hori18 #vektor horizontal
A_18 <- as.matrix(A_16[, -1]) #buang kolom 1
diag(A_18) <- 0 #diagonal menjadi 0 k != j
fw_18 <- t(A_18) %*% h_18 # Hitung Backward Spillover
spill18$forward18 <- as.vector(fw_18) #masukkan ke data frame

#2019
h_19 <- spill19$hori19 #vektor horizontal
A_19 <- as.matrix(A_16[, -1]) #buang kolom 1
diag(A_19) <- 0 #diagonal menjadi 0 k != j
fw_19 <- t(A_19) %*% h_19 # Hitung Backward Spillover
spill19$forward19 <- as.vector(fw_19) #masukkan ke data frame

#2021
h_21 <- spill21$hori21 #vektor horizontal
A_21 <- as.matrix(A_20[, -1]) #buang kolom 1
diag(A_21) <- 0 #diagonal menjadi 0 k != j
fw_21 <- t(A_21) %*% h_21 # Hitung Backward Spillover
spill21$forward21 <- as.vector(fw_21) #masukkan ke data frame

#2022
h_22 <- spill22$hori22 #vektor horizontal
A_22 <- as.matrix(A_20[, -1]) #buang kolom 1
diag(A_22) <- 0 #diagonal menjadi 0 k != j
fw_22 <- t(A_22) %*% h_22 # Hitung Backward Spillover
spill22$forward22 <- as.vector(fw_22) #masukkan ke data frame
#Data frame
spill10 <- spill10 %>%
  rename(KBLI = DISIC510,
         hori = hori10,
         Forw = forward10,
         Backw = backward10) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2010
  )

spill11 <- spill11 %>%
  rename(KBLI = DISIC511,
         hori = hori11,
         Forw = forward11,
         Backw = backward11) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2011
  )

spill12 <- spill12 %>%
  rename(KBLI = DISIC512,
         hori = hori12,
         Forw = forward12,
         Backw = backward12) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2012
  )

spill13 <- spill13 %>%
  rename(KBLI = DISIC513,
         hori = hori13,
         Forw = forward13,
         Backw = backward13) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2013
  )

spill14 <- spill14 %>%
  rename(KBLI = DISIC514,
         hori = hori14,
         Forw = forward14,
         Backw = backward14) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2014
  )

spill15 <- spill15 %>%
  rename(KBLI = DISIC515,
         hori = hori15,
         Forw = forward15,
         Backw = backward15) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2015
  )

spill17 <- spill17 %>%
  rename(KBLI = DISIC517,
         hori = hori17,
         Forw = forward17,
         Backw = backward17) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2017
  )

spill18 <- spill18 %>%
  rename(KBLI = DISIC518,
         hori = hori18,
         Forw = forward18,
         Backw = backward18) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2018
  )

spill19 <- spill19 %>%
  rename(KBLI = DISIC519,
         hori = hori19,
         Forw = forward19,
         Backw = backward19) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2019
  )

spill21 <- spill21 %>%
  rename(KBLI = DISIC2...4,
         hori = hori21,
         Forw = forward21,
         Backw = backward21) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2021
  )

spill22 <- spill22 %>%
  rename(KBLI = DISIC222,
         hori = hori22,
         Forw = forward22,
         Backw = backward22) %>%
  mutate(
    KBLI = as.character(KBLI),
    tahun = 2022
  )
df_spill <- bind_rows(
  spill10,
  spill11,
  spill12,
  spill13,
  spill14,
  spill15,
  spill17,
  spill18,
  spill19,
  spill21,
  spill22
) %>%
  arrange(KBLI, tahun)

imputasi

library(dplyr)
library(tidyr)

# Tambahkan tahun yang hilang
df_spill <- df_spill %>%
  group_by(KBLI) %>%
  complete(tahun = 2010:2022) %>%
  ungroup()

# Imputasi
df_spill <- df_spill %>%
  arrange(KBLI, tahun) %>%
  group_by(KBLI) %>%
  mutate(
    across(
      where(is.numeric) & !matches("tahun"),
      ~ifelse(
        tahun %in% c(2016, 2020) & is.na(.),
        dplyr::lead(.),
        .
      )
    )
  ) %>%
  ungroup()

View(df_spill)
#library(writexl)
#write_xlsx(df_spill, path = "~/KULIAH/DRAFT/DATA RAW/DATA FIX/dfspill.xlsx")

Pajak

# Untuk variabel insentif pajak dan kontrol
# 2010
df10_agg2 <- df2_10 %>%
  group_by(DISIC510) %>%
  summarise(
    TX10_sum = sum(ITXVCU10, na.rm = TRUE),
    OUTPUT10_sum = sum(VTLVCU10,na.rm = TRUE),
    INSEN10_sum = TX10_sum/OUTPUT10_sum, #insentif
    abs10_sum = (sum(ZPDVCU10, na.rm = TRUE)+sum(ZNDVCU10, na.rm = TRUE))/sum(LTLNOU10, na.rm = TRUE) #absorptive capacity
  )

# 2011
df11_agg2 <- df2_11 %>%
  group_by(DISIC511) %>%
  summarise(
    TX11_sum = sum(ITXVCU11, na.rm = TRUE),
    OUTPUT11_sum = sum(VTLVCU11,na.rm = TRUE),
    INSEN11_sum = TX11_sum/OUTPUT11_sum, #insentif
    abs11_sum = (sum(ZPDVCU11, na.rm = TRUE)+sum(ZNDVCU11, na.rm = TRUE))/sum(LTLNOU11, na.rm = TRUE) #absorptive capacity
  )

# 2012
df12_agg2 <- df2_12 %>%
  group_by(DISIC512) %>%
  summarise(
    TX12_sum = sum(ITXVCU12, na.rm = TRUE),
    OUTPUT12_sum = sum(VTLVCU12,na.rm = TRUE),
    INSEN12_sum = TX12_sum/OUTPUT12_sum, #insentif
    abs12_sum = (sum(ZPDVCU12, na.rm = TRUE)+sum(ZNDVCU12, na.rm = TRUE))/sum(LTLNOU12, na.rm = TRUE) #absorptive capacity
  )

# 2013
df13_agg2 <- df2_13 %>%
  group_by(DISIC513) %>%
  summarise(
    TX13_sum = sum(ITXVCU13, na.rm = TRUE),
    OUTPUT13_sum = sum(VTLVCU13,na.rm = TRUE),
    INSEN13_sum = TX13_sum/OUTPUT13_sum, #insentif
    abs13_sum = (sum(ZPDVCU13, na.rm = TRUE)+sum(ZNDVCU13, na.rm = TRUE))/sum(LTLNOU13, na.rm = TRUE) #absorptive capacity
  )

# 2014
df14_agg2 <- df2_14 %>%
  group_by(DISIC514) %>%
  summarise(
    TX14_sum = sum(ITXVCU14, na.rm = TRUE),
    OUTPUT14_sum = sum(VTLVCU14,na.rm = TRUE),
    INSEN14_sum = TX14_sum/OUTPUT14_sum, #insentif
    abs14_sum = (sum(ZPDVCU14, na.rm = TRUE)+sum(ZNDVCU14, na.rm = TRUE))/sum(LTLNOU14, na.rm = TRUE) #absorptive capacity
  )

# 2015
df15_agg2 <- df2_15 %>%
  group_by(DISIC515) %>%
  summarise(
    TX15_sum = sum(ITXVCU15, na.rm = TRUE),
    OUTPUT15_sum = sum(VTLVCU15,na.rm = TRUE),
    INSEN15_sum = TX15_sum/OUTPUT15_sum, #insentif
    abs15_sum = (sum(ZPDVCU15, na.rm = TRUE)+sum(ZNDVCU15, na.rm = TRUE))/sum(LTLNOU15, na.rm = TRUE) #absorptive capacity
  )

# 2017
df17_agg2 <- df2_17 %>%
  group_by(DISIC517) %>%
  summarise(
    TX17_sum = sum(ITXVCU17, na.rm = TRUE),
    OUTPUT17_sum = sum(VTLVCU17,na.rm = TRUE),
    INSEN17_sum = TX17_sum/OUTPUT17_sum, #insentif
    abs17_sum = (sum(ZPDVCU17, na.rm = TRUE)+sum(ZNDVCU17, na.rm = TRUE))/sum(LTLNOU17, na.rm = TRUE) #absorptive capacity
  )
# 2018
df18_agg2 <- df2_18 %>%
  group_by(DISIC518) %>%
  summarise(
    TX18_sum = sum(ITXVCU18, na.rm = TRUE),
    OUTPUT18_sum = sum(VTLVCU18,na.rm = TRUE),
    INSEN18_sum = TX18_sum/OUTPUT18_sum,
    abs18_sum = (sum(ZPDVCU18, na.rm = TRUE)+sum(ZNDVCU18, na.rm = TRUE))/sum(LTLNOU18, na.rm = TRUE) #absorptive capacity
  )
# 2019
df19_agg2 <- df2_19 %>%
  group_by(DISIC519) %>%
  summarise(
    TX19_sum = sum(ITXVCU19, na.rm = TRUE),
    OUTPUT19_sum = sum(VTLVCU19,na.rm = TRUE),
    INSEN19_sum = TX19_sum/OUTPUT19_sum,
    abs19_sum = (sum(ZPDVCU19, na.rm = TRUE)+sum(ZNDVCU19, na.rm = TRUE))/sum(LTLNOU19, na.rm = TRUE) #absorptive capacity
  )
# 2021
df21_agg2 <- df2_21 %>%
  group_by(DISIC2...4) %>%
  summarise(
    TX21_sum = sum(ITXVCU21, na.rm = TRUE),
    OUTPUT21_sum = sum(VTLVCU21,na.rm = TRUE),
    INSEN21_sum = TX21_sum/OUTPUT21_sum,
    abs21_sum = (sum(ZPDVCU21, na.rm = TRUE)+sum(ZNDVCU21, na.rm = TRUE))/sum(LTLNOU21, na.rm = TRUE) #absorptive capacity
  )
# 2022
df22_agg2 <- df2_22 %>%
  group_by(DISIC222) %>%
  summarise(
    TX22_sum = sum(ITXVCU22, na.rm = TRUE),
    OUTPUT22_sum = sum(VTLVCU22,na.rm = TRUE),
    INSEN22_sum = TX22_sum/OUTPUT22_sum,
    abs22_sum = (sum(ZPDVCU22, na.rm = TRUE)+sum(ZNDVCU22, na.rm = TRUE))/sum(LTLNOU22, na.rm = TRUE) #absorptive capacity
  )

Kontrol

#HHI (Konsentrasi Pasar)
df10_hhi <- df2_10 %>% 
  group_by(DISIC510) %>%
  mutate(
    total_output10 = sum(VTLVCU10, na.rm = TRUE),
    market_share10 = VTLVCU10 / total_output10
  ) %>%
  summarise(
    HHI = sum(market_share10^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC510) %>%
  mutate(
    tahun = 2010,
    KBLI = as.character(KBLI)
  )

df11_hhi <- df2_11 %>% 
  group_by(DISIC511) %>%
  mutate(
    total_output11 = sum(VTLVCU11, na.rm = TRUE),
    market_share11 = VTLVCU11 / total_output11
  ) %>%
  summarise(
    HHI = sum(market_share11^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC511) %>%
  mutate(
    tahun = 2011,
    KBLI = as.character(KBLI)
  )

df12_hhi <- df2_12 %>% 
  group_by(DISIC512) %>%
  mutate(
    total_output12 = sum(VTLVCU12, na.rm = TRUE),
    market_share12 = VTLVCU12 / total_output12
  ) %>%
  summarise(
    HHI = sum(market_share12^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC512) %>%
  mutate(
    tahun = 2012,
    KBLI = as.character(KBLI)
  )

df13_hhi <- df2_13 %>% 
  group_by(DISIC513) %>%
  mutate(
    total_output13 = sum(VTLVCU13, na.rm = TRUE),
    market_share13 = VTLVCU13 / total_output13
  ) %>%
  summarise(
    HHI = sum(market_share13^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC513) %>%
  mutate(
    tahun = 2013,
    KBLI = as.character(KBLI)
  )

df14_hhi <- df2_14 %>% 
  group_by(DISIC514) %>%
  mutate(
    total_output14 = sum(VTLVCU14, na.rm = TRUE),
    market_share14 = VTLVCU14 / total_output14
  ) %>%
  summarise(
    HHI = sum(market_share14^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC514) %>%
  mutate(
    tahun = 2014,
    KBLI = as.character(KBLI)
  )

df15_hhi <- df2_15 %>% 
  group_by(DISIC515) %>%
  mutate(
    total_output15 = sum(VTLVCU15, na.rm = TRUE),
    market_share15 = VTLVCU15 / total_output15
  ) %>%
  summarise(
    HHI = sum(market_share15^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC515) %>%
  mutate(
    tahun = 2015,
    KBLI = as.character(KBLI)
  )

df17_hhi <- df2_17 %>% 
  group_by(DISIC517) %>%
  mutate(
    total_output17 = sum(VTLVCU17, na.rm = TRUE),
    market_share17 = VTLVCU17 / total_output17
  ) %>%
  summarise(
    HHI = sum(market_share17^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC517) %>%
  mutate(
    tahun = 2017,
    KBLI = as.character(KBLI)
  )

df18_hhi <- df2_18 %>% 
  group_by(DISIC518) %>%
  mutate(
    total_output18 = sum(VTLVCU18, na.rm = TRUE),
    market_share18 = VTLVCU18 / total_output18
  ) %>%
  summarise(
    HHI = sum(market_share18^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC518) %>%
  mutate(
    tahun = 2018,
    KBLI = as.character(KBLI)
  )
df19_hhi <- df2_19 %>% 
  group_by(DISIC519) %>%
  mutate(
    total_output19 = sum(VTLVCU19, na.rm = TRUE),
    market_share19 = VTLVCU19 / total_output19
  ) %>%
  summarise(
    HHI = sum(market_share19^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC519) %>%
  mutate(
    tahun = 2019,
    KBLI = as.character(KBLI)
  )
df21_hhi <- df2_21 %>% 
  group_by(DISIC2...4) %>%
  mutate(
    total_output21 = sum(VTLVCU21, na.rm = TRUE),
    market_share21 = VTLVCU21 / total_output21
  ) %>%
  summarise(
    HHI = sum(market_share21^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC2...4) %>%
  mutate(
    tahun = 2021,
    KBLI = as.character(KBLI)
  )
df22_hhi <- df2_22 %>% 
  group_by(DISIC222) %>%
  mutate(
    total_output22 = sum(VTLVCU22, na.rm = TRUE),
    market_share22 = VTLVCU22 / total_output22
  ) %>%
  summarise(
    HHI = sum(market_share22^2, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(KBLI = DISIC222) %>%
  mutate(
    tahun = 2022,
    KBLI = as.character(KBLI)
  )
hhi_panel <- bind_rows(
  df10_hhi,
  df11_hhi,
  df12_hhi,
  df13_hhi,
  df14_hhi,
  df15_hhi,
  df17_hhi,
  df18_hhi,
  df19_hhi,
  df21_hhi,
  df22_hhi
) %>%
  arrange(KBLI, tahun)

Menggabungkan Data

df10_agg2 <- df10_agg2 %>%
  rename(KBLI = DISIC510,
         TAX = INSEN10_sum,
         output = OUTPUT10_sum,
         TAX_SUM = TX10_sum,
         abs = abs10_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2010)

df11_agg2 <- df11_agg2 %>%
  rename(KBLI = DISIC511,
         TAX = INSEN11_sum,
         output = OUTPUT11_sum,
         TAX_SUM = TX11_sum,
         abs = abs11_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2011)

df12_agg2 <- df12_agg2 %>%
  rename(KBLI = DISIC512,
         TAX = INSEN12_sum,
         output = OUTPUT12_sum,
         TAX_SUM = TX12_sum,
         abs = abs12_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2012)

df13_agg2 <- df13_agg2 %>%
  rename(KBLI = DISIC513,
         TAX = INSEN13_sum,
         output = OUTPUT13_sum,
         TAX_SUM = TX13_sum,
         abs = abs13_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2013)

df14_agg2 <- df14_agg2 %>%
  rename(KBLI = DISIC514,
         TAX = INSEN14_sum,
         output = OUTPUT14_sum,
         TAX_SUM = TX14_sum,
         abs = abs14_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2014)

df15_agg2 <- df15_agg2 %>%
  rename(KBLI = DISIC515,
         TAX = INSEN15_sum,
         output = OUTPUT15_sum,
         TAX_SUM = TX15_sum,
         abs = abs15_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2015)

df17_agg2 <- df17_agg2 %>%
  rename(KBLI = DISIC517,
         TAX = INSEN17_sum,
         output = OUTPUT17_sum,
         TAX_SUM = TX17_sum,
         abs = abs17_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2017)

df18_agg2 <- df18_agg2 %>%
  rename(KBLI = DISIC518,
         TAX = INSEN18_sum,
         output = OUTPUT18_sum,
         TAX_SUM = TX18_sum,
         abs = abs18_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2018)

df19_agg2 <- df19_agg2 %>%
  rename(KBLI = DISIC519,
         TAX = INSEN19_sum,
         output = OUTPUT19_sum,
         TAX_SUM = TX19_sum,
         abs = abs19_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2019)

df21_agg2 <- df21_agg2 %>%
  rename(KBLI = DISIC2...4,
         TAX = INSEN21_sum,
         output = OUTPUT21_sum,
         TAX_SUM = TX21_sum,
         abs = abs21_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2021)
df22_agg2 <- df22_agg2 %>%
  rename(KBLI = DISIC222,
         TAX = INSEN22_sum,
         output = OUTPUT22_sum,
         TAX_SUM = TX22_sum,
         abs = abs22_sum) %>%
  mutate(TAXR = 1-TAX,
         KBLI = as.character(KBLI),
         tahun = 2022)

df_m2 <- bind_rows(
  df10_agg2,
  df11_agg2,
  df12_agg2,
  df13_agg2,
  df14_agg2,
  df15_agg2,
  df17_agg2,
  df18_agg2,
  df19_agg2,
  df21_agg2,
  df22_agg2
) %>%
  arrange(tahun,KBLI)

View(df_m2)

imputasi

# insentif dan abs
library(dplyr)
df_m2 <- df_m2 %>%
  group_by(KBLI) %>%
  complete(tahun = 2010:2022) %>%
  ungroup()

df_m2 <- df_m2 %>%
  arrange(KBLI, tahun) %>%
  group_by(KBLI) %>%
  mutate(
    across(
      where(is.numeric) & !matches("tahun"),
      ~ifelse(
        tahun %in% c(2016, 2020) & is.na(.),
        dplyr::lead(.),
        .
      )
    )
  ) %>%
  ungroup()
View(df_m2)

# hhi
hhi_panel <- hhi_panel %>%
  group_by(KBLI) %>%
  complete(tahun = 2010:2022) %>%
  ungroup()

hhi_panel <- hhi_panel %>%
  arrange(KBLI, tahun) %>%
  group_by(KBLI) %>%
  mutate(
    across(
      where(is.numeric) & !matches("tahun"),
      ~ifelse(
        tahun %in% c(2016, 2020) & is.na(.),
        dplyr::lead(.),
        .
      )
    )
  ) %>%
  ungroup()
View(hhi_panel)

Data Panel

dpm2 <- df_m2%>%
  full_join(df_spill, by = c("KBLI","tahun"))%>%
  full_join(hhi_panel, by = c("KBLI","tahun"))

dpm2 <- dpm2 %>%
  left_join(
    dpm1 %>% select(KBLI, tahun, lnTFP_manual),
    by = c("KBLI", "tahun")
  )
View(dpm2)

log var kontrol (abs)

dpm2$lnabs <-log(dpm2$abs)
var(dpm2$lnabs)
## [1] 0.2130347

Simpan

#library(writexl)
#write_xlsx(df_res, path = "~/KULIAH/DRAFT/DATA RAW/DATA FIX/df_res.xlsx")
#impor data
#dpm2 <- read_excel("~/KULIAH/DRAFT/DATA RAW/dpm2.xlsx")
head(dpm2)
## # A tibble: 6 × 13
##   KBLI  tahun    TAX_SUM    output    TAX    abs  TAXR  hori Backw  Forw     HHI
##   <chr> <dbl>      <dbl>     <dbl>  <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl>   <dbl>
## 1 10     2010 2266642222   1.57e11 0.0144 17685. 0.986  29.2  13.3 0.261 0.00810
## 2 10     2011 3187184807   1.92e11 0.0166 32719. 0.983  23.4  13.7 0.250 0.00639
## 3 10     2012 5389121334   2.23e11 0.0242 27320. 0.976  27.2  10.5 0.377 0.00514
## 4 10     2013 3565634966   2.95e11 0.0121 26199. 0.988  19.1  14.5 0.259 0.0191 
## 5 10     2014 4065424818   3.25e11 0.0125 27600. 0.987  37.6  11.6 0.243 0.0307 
## 6 10     2015 3991700322   3.49e11 0.0114 30173. 0.989  36.2  11.3 0.186 0.0215 
## # ℹ 2 more variables: lnTFP_manual <dbl>, lnabs <dbl>
var(dpm2$lnTFP_manual)
## [1] 0.3930991
var(dpm2$hori)
## [1] 393.54
var(dpm2$Backw)
## [1] 26.66363
var(dpm2$Forw)
## [1] 6.746435
var(dpm2$TAX)
## [1] 0.001440251
var(dpm2$lnabs)
## [1] 0.2130347
var(dpm2$TAX_SUM)
## [1] 1.362906e+19

Transformasi Normalitas

dpm2<-dpm2%>%
  mutate(
    lnTAX = log(TAX),
    lnhori = log(hori),
    lnforw = log(Forw+1),
    lnbackw = log(Backw+1),
    lnTAX_SUM = log(TAX_SUM),
    lnTAXR = log(TAXR),
    lnHHI = log(HHI)
  )
View(dpm2)

Eksplorasi Model

head(dpm2)
## # A tibble: 6 × 20
##   KBLI  tahun    TAX_SUM    output    TAX    abs  TAXR  hori Backw  Forw     HHI
##   <chr> <dbl>      <dbl>     <dbl>  <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl>   <dbl>
## 1 10     2010 2266642222   1.57e11 0.0144 17685. 0.986  29.2  13.3 0.261 0.00810
## 2 10     2011 3187184807   1.92e11 0.0166 32719. 0.983  23.4  13.7 0.250 0.00639
## 3 10     2012 5389121334   2.23e11 0.0242 27320. 0.976  27.2  10.5 0.377 0.00514
## 4 10     2013 3565634966   2.95e11 0.0121 26199. 0.988  19.1  14.5 0.259 0.0191 
## 5 10     2014 4065424818   3.25e11 0.0125 27600. 0.987  37.6  11.6 0.243 0.0307 
## 6 10     2015 3991700322   3.49e11 0.0114 30173. 0.989  36.2  11.3 0.186 0.0215 
## # ℹ 9 more variables: lnTFP_manual <dbl>, lnabs <dbl>, lnTAX <dbl>,
## #   lnhori <dbl>, lnforw <dbl>, lnbackw <dbl>, lnTAX_SUM <dbl>, lnTAXR <dbl>,
## #   lnHHI <dbl>

Moderasi dan Kontrol

library("plm")
cem2<-plm(lnTFP_manual ~ hori + Backw + Forw + hori*lnTAX + Backw*lnTAX + Forw*lnTAX  + lnabs + HHI, data = dpm2, index = c("KBLI", "tahun"),
         model = "pooling")
fem2<-plm(lnTFP_manual ~ hori + Backw + Forw + hori*lnTAX + Backw*lnTAX + Forw*lnTAX  + lnabs + HHI, data = dpm2, index = c("KBLI", "tahun"),
         model = "within",effect = "individual")
rem2<-plm(lnTFP_manual ~ hori + Backw + Forw + hori*lnTAX + Backw*lnTAX + Forw*lnTAX  + lnabs + HHI, data = dpm2, index = c("KBLI", "tahun"),
         model = "random",effect = "individual")
summary(cem2)
## Pooling Model
## 
## Call:
## plm(formula = lnTFP_manual ~ hori + Backw + Forw + hori * lnTAX + 
##     Backw * lnTAX + Forw * lnTAX + lnabs + HHI, data = dpm2, 
##     model = "pooling", index = c("KBLI", "tahun"))
## 
## Balanced Panel: n = 24, T = 13, N = 312
## 
## Residuals:
##       Min.    1st Qu.     Median    3rd Qu.       Max. 
## -1.4570140 -0.2946098 -0.0082137  0.2761283  1.0343744 
## 
## Coefficients:
##               Estimate Std. Error  t-value  Pr(>|t|)    
## (Intercept) -9.5055197  0.5665024 -16.7793 < 2.2e-16 ***
## hori         0.0243576  0.0073090   3.3326 0.0009676 ***
## Backw       -0.1273084  0.0302763  -4.2049 3.446e-05 ***
## Forw        -0.0512291  0.0600498  -0.8531 0.3942735    
## lnTAX       -0.0829283  0.0498918  -1.6622 0.0975175 .  
## lnabs        0.7768063  0.0555107  13.9938 < 2.2e-16 ***
## HHI          4.0011431  0.3400029  11.7680 < 2.2e-16 ***
## hori:lnTAX   0.0063234  0.0016103   3.9269 0.0001067 ***
## Backw:lnTAX -0.0258498  0.0071038  -3.6388 0.0003220 ***
## Forw:lnTAX  -0.0148187  0.0137520  -1.0776 0.2820857    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    122.25
## Residual Sum of Squares: 47.689
## R-Squared:      0.60992
## Adj. R-Squared: 0.5983
## F-statistic: 52.467 on 9 and 302 DF, p-value: < 2.22e-16
summary(fem2)
## Oneway (individual) effect Within Model
## 
## Call:
## plm(formula = lnTFP_manual ~ hori + Backw + Forw + hori * lnTAX + 
##     Backw * lnTAX + Forw * lnTAX + lnabs + HHI, data = dpm2, 
##     effect = "individual", model = "within", index = c("KBLI", 
##         "tahun"))
## 
## Balanced Panel: n = 24, T = 13, N = 312
## 
## Residuals:
##       Min.    1st Qu.     Median    3rd Qu.       Max. 
## -0.7336002 -0.1577700 -0.0013477  0.1328086  0.8166368 
## 
## Coefficients:
##               Estimate Std. Error t-value  Pr(>|t|)    
## hori         0.0182915  0.0050097  3.6512 0.0003116 ***
## Backw       -0.0351615  0.0207211 -1.6969 0.0908327 .  
## Forw        -0.0702532  0.0414065 -1.6967 0.0908743 .  
## lnTAX       -0.1345498  0.0387603 -3.4713 0.0006000 ***
## lnabs        0.3246117  0.0527888  6.1492 2.687e-09 ***
## HHI          1.3221129  0.3407468  3.8800 0.0001304 ***
## hori:lnTAX   0.0048420  0.0010781  4.4914 1.037e-05 ***
## Backw:lnTAX -0.0070371  0.0052734 -1.3345 0.1831405    
## Forw:lnTAX  -0.0152979  0.0095117 -1.6083 0.1088935    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    26.699
## Residual Sum of Squares: 16.738
## R-Squared:      0.37309
## Adj. R-Squared: 0.30118
## F-statistic: 18.4487 on 9 and 279 DF, p-value: < 2.22e-16
summary(rem2)
## Oneway (individual) effect Random Effect Model 
##    (Swamy-Arora's transformation)
## 
## Call:
## plm(formula = lnTFP_manual ~ hori + Backw + Forw + hori * lnTAX + 
##     Backw * lnTAX + Forw * lnTAX + lnabs + HHI, data = dpm2, 
##     effect = "individual", model = "random", index = c("KBLI", 
##         "tahun"))
## 
## Balanced Panel: n = 24, T = 13, N = 312
## 
## Effects:
##                   var std.dev share
## idiosyncratic 0.05999 0.24494 0.586
## individual    0.04236 0.20583 0.414
## theta: 0.6866
## 
## Residuals:
##     Min.  1st Qu.   Median  3rd Qu.     Max. 
## -0.66682 -0.16433 -0.02105  0.14319  0.96611 
## 
## Coefficients:
##               Estimate Std. Error z-value  Pr(>|z|)    
## (Intercept) -5.8337393  0.5906091 -9.8775 < 2.2e-16 ***
## hori         0.0189173  0.0053735  3.5205 0.0004308 ***
## Backw       -0.0467296  0.0223466 -2.0911 0.0365167 *  
## Forw        -0.0670067  0.0445082 -1.5055 0.1321986    
## lnTAX       -0.1279442  0.0408053 -3.1355 0.0017157 ** 
## lnabs        0.4246621  0.0527015  8.0579 7.763e-16 ***
## HHI          2.0234078  0.3390120  5.9685 2.394e-09 ***
## hori:lnTAX   0.0051386  0.0011658  4.4076 1.045e-05 ***
## Backw:lnTAX -0.0089240  0.0054841 -1.6272 0.1036855    
## Forw:lnTAX  -0.0165499  0.0102159 -1.6200 0.1052285    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    36.086
## Residual Sum of Squares: 21.677
## R-Squared:      0.39928
## Adj. R-Squared: 0.38138
## Chisq: 200.734 on 9 DF, p-value: < 2.22e-16

Pemilihan Model

#Uji Chow
pooltest(cem2,fem2) #tolak H0 FEM lebih baik
## 
##  F statistic
## 
## data:  lnTFP_manual ~ hori + Backw + Forw + hori * lnTAX + Backw * lnTAX +  ...
## F = 22.43, df1 = 23, df2 = 279, p-value < 2.2e-16
## alternative hypothesis: unstability
#Uji Hausman
phtest(fem2,rem2) #Tolak H0 FEM lebih baik
## 
##  Hausman Test
## 
## data:  lnTFP_manual ~ hori + Backw + Forw + hori * lnTAX + Backw * lnTAX +  ...
## chisq = 38.561, df = 9, p-value = 1.382e-05
## alternative hypothesis: one model is inconsistent

Varians Kovarians

#Uji LM
library(lmtest)
bptest(fem2) #Tolak H0 heteroskedas, lanjut uji lambdaLM
## 
##  studentized Breusch-Pagan test
## 
## data:  fem2
## BP = 55.262, df = 9, p-value = 1.086e-08
#Uji LambdaLM
pcdtest(fem2, test = "lm") #Tolak H0 ada cross section dependence, metode SUR
## 
##  Breusch-Pagan LM test for cross-sectional dependence in panels
## 
## data:  lnTFP_manual ~ hori + Backw + Forw + hori * lnTAX + Backw * lnTAX +     Forw * lnTAX + lnabs + HHI
## chisq = 403.87, df = 276, p-value = 7.839e-07
## alternative hypothesis: cross-sectional dependence

Model terpilih

m2<-pggls(lnTFP_manual ~ hori + Backw + Forw + hori*lnTAX + Backw*lnTAX + Forw*lnTAX + lnabs + HHI, data = dpm2, index = c("KBLI", "tahun"),
         model = "within",effect = "individual")
summary(m2)
## Oneway (individual) effect Within FGLS model
## 
## Call:
## pggls(formula = lnTFP_manual ~ hori + Backw + Forw + hori * lnTAX + 
##     Backw * lnTAX + Forw * lnTAX + lnabs + HHI, data = dpm2, 
##     effect = "individual", model = "within", index = c("KBLI", 
##         "tahun"))
## 
## Balanced Panel: n = 24, T = 13, N = 312
## 
## Residuals:
##        Min.     1st Qu.      Median     3rd Qu.        Max. 
## -0.85444482 -0.14642699 -0.01131863  0.12786252  0.80969122 
## 
## Coefficients:
##                Estimate  Std. Error z-value  Pr(>|z|)    
## hori         0.01457590  0.00395388  3.6865 0.0002274 ***
## Backw       -0.03258117  0.02057029 -1.5839 0.1132177    
## Forw        -0.09907716  0.03132505 -3.1629 0.0015622 ** 
## lnTAX       -0.09638043  0.03416836 -2.8208 0.0047911 ** 
## lnabs        0.24594897  0.05002177  4.9168 8.795e-07 ***
## HHI          1.34241323  0.30249113  4.4379 9.086e-06 ***
## hori:lnTAX   0.00406462  0.00084501  4.8101 1.508e-06 ***
## Backw:lnTAX -0.00564149  0.00484767 -1.1638 0.2445240    
## Forw:lnTAX  -0.01908128  0.00694303 -2.7483 0.0059912 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Total Sum of Squares: 122.25
## Residual Sum of Squares: 16.993
## Multiple R-squared: 0.861
# UJI t DAN UJI F MODEL PGLS/FGLS

# Koefisien
beta <- coef(m2)

V1 <- m2$vcov
# Standard error
se <- sqrt(diag(V1))
# Jumlah observasi
N <- nrow(dpm2)
# Jumlah individu
n <- length(unique(dpm2$KBLI))
# Jumlah variabel independen
k <- length(beta)
# Derajat bebas
df <- N - n - k
# Taraf signifikansi
alpha <- 0.05
df
## [1] 279
# UJI PARSIAL (t)

t_hitung <- beta / se
t_tabel <- qt(
  1 - alpha/2,
  df
)
p_value_t <- 2 * pt(
  -abs(t_hitung),
  df
)

hasil_t <- data.frame(
  Variabel = names(beta),
  Koefisien = beta,
  Std_Error = se,
  t_hitung = t_hitung,
  t_tabel = t_tabel,
  p_value = p_value_t
)

print(hasil_t)
##                Variabel    Koefisien    Std_Error  t_hitung  t_tabel
## hori               hori  0.014575896 0.0039538786  3.686480 1.968503
## Backw             Backw -0.032581170 0.0205702899 -1.583895 1.968503
## Forw               Forw -0.099077159 0.0313250459 -3.162874 1.968503
## lnTAX             lnTAX -0.096380426 0.0341683608 -2.820751 1.968503
## lnabs             lnabs  0.245948970 0.0500217746  4.916838 1.968503
## HHI                 HHI  1.342413231 0.3024911306  4.437860 1.968503
## hori:lnTAX   hori:lnTAX  0.004064620 0.0008450143  4.810120 1.968503
## Backw:lnTAX Backw:lnTAX -0.005641494 0.0048476716 -1.163753 1.968503
## Forw:lnTAX   Forw:lnTAX -0.019081278 0.0069430285 -2.748264 1.968503
##                  p_value
## hori        2.731834e-04
## Backw       1.143505e-01
## Forw        1.734663e-03
## lnTAX       5.134982e-03
## lnabs       1.503501e-06
## HHI         1.309467e-05
## hori:lnTAX  2.471765e-06
## Backw:lnTAX 2.455182e-01
## Forw:lnTAX  6.381768e-03
# UJI SIMULTAN (F)

V1 <- m2$vcov

F_hitung <- as.numeric(
  t(beta) %*% solve(V1) %*% beta / k
)

F_tabel <- qf(
  1 - alpha,
  df1 = k,
  df2 = df
)

p_value_F <- pf(
  F_hitung,
  df1 = k,
  df2 = df,
  lower.tail = FALSE
)

hasil_F <- data.frame(
  F_hitung = F_hitung,
  F_tabel = F_tabel,
  df1 = k,
  df2 = df,
  p_value = p_value_F
)

print(hasil_F)
##   F_hitung F_tabel df1 df2      p_value
## 1 13.67026 1.91352   9 279 3.605845e-18
#adj rsquare
n <- length(residuals(m2))       # jumlah observasi
k <- length(coef(m2))  # jumlah variabel independen (tanpa intersep)
ssr <- sum(residuals(m2)^2)
ssr
## [1] 16.99303
y_actual <- model.frame(m2)[, 1]
sst <- sum((y_actual - mean(y_actual))^2)
sst
## [1] 122.2538
r2 <- 1 - ssr/sst
adj_r2 <- 1 - (1 - r2) * (n - 1) / (n - k - 1)
adj_r2
## [1] 0.8568597
#konstanta global
konst <- fixef(m2)
k<- mean(konst)
print(k)
## [1] -3.686345
konst
##      10      11      12      13      14      15      16      17      18      19 
## -4.4348 -3.2540 -3.5533 -4.4341 -4.1739 -4.1199 -4.2572 -3.8648 -3.3789 -3.0851 
##      20      21      22      23      24      25      26      27      28      29 
## -3.5144 -3.2245 -4.2773 -3.6841 -3.5469 -3.9103 -3.7014 -3.2214 -3.1230 -3.1792 
##      30      31      32      33 
## -3.3552 -3.9872 -4.0646 -3.1270
ef<-konst-k
ef
##         10         11         12         13         14         15         16 
## -0.7484277  0.4323939  0.1330752 -0.7477498 -0.4875670 -0.4335732 -0.5708987 
##         17         18         19         20         21         22         23 
## -0.1784964  0.3074288  0.6012520  0.1719654  0.4618536 -0.5909146  0.0022474 
##         24         25         26         27         28         29         30 
##  0.1394238 -0.2239202 -0.0150583  0.4649732  0.5633948  0.5071672  0.3311388 
##         31         32         33 
## -0.3008366 -0.3782449  0.5593732
fixef(m2)
##      10      11      12      13      14      15      16      17      18      19 
## -4.4348 -3.2540 -3.5533 -4.4341 -4.1739 -4.1199 -4.2572 -3.8648 -3.3789 -3.0851 
##      20      21      22      23      24      25      26      27      28      29 
## -3.5144 -3.2245 -4.2773 -3.6841 -3.5469 -3.9103 -3.7014 -3.2214 -3.1230 -3.1792 
##      30      31      32      33 
## -3.3552 -3.9872 -4.0646 -3.1270

Uji asumsi Klasik

library(car)
library(tseries)

res1 <- residuals(m2)
res2 <- residuals (cem2)
#Multikol
m2_lm <- lm(lnTFP_manual ~ hori + Backw + Forw + hori*lnTAX + Backw*lnTAX + Forw*lnTAX + lnabs + HHI, data = dpm2) #<10, terpenuhi
attr(terms(m2_lm), "term.labels")
## [1] "hori"        "Backw"       "Forw"        "lnTAX"       "lnabs"      
## [6] "HHI"         "hori:lnTAX"  "Backw:lnTAX" "Forw:lnTAX"
vif(m2_lm) #<10 tidak ada multikol
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
##        hori       Backw        Forw       lnTAX       lnabs         HHI 
##   41.405297   48.137007   47.912594    4.173411    1.292874    1.132065 
##  hori:lnTAX Backw:lnTAX  Forw:lnTAX 
##   42.078698   47.513813   47.210296
vif(m2_lm, type = "predictor")
## GVIFs computed for predictors
##           GVIF Df GVIF^(1/(2*Df))    Interacts With
## hori  5.278357  3        1.319521             lnTAX
## Backw 4.103246  3        1.265284             lnTAX
## Forw  4.639857  3        1.291469             lnTAX
## lnTAX 1.453249  7        1.027060 hori, Backw, Forw
## lnabs 1.292874  1        1.137046              --  
## HHI   1.132065  1        1.063985              --  
##                      Other Predictors
## hori          Backw, Forw, lnabs, HHI
## Backw          hori, Forw, lnabs, HHI
## Forw          hori, Backw, lnabs, HHI
## lnTAX                      lnabs, HHI
## lnabs   hori, Backw, Forw, lnTAX, HHI
## HHI   hori, Backw, Forw, lnTAX, lnabs
#Normalitas
jarque.bera.test(residuals(cem2))
## 
##  Jarque Bera Test
## 
## data:  residuals(cem2)
## X-squared = 0.1877, df = 2, p-value = 0.9104
jarque.bera.test(res1) # tolak h0, resid tidak berdistribusi normal
## 
##  Jarque Bera Test
## 
## data:  res1
## X-squared = 14.675, df = 2, p-value = 0.0006508
jarque.bera.test(res2)
## 
##  Jarque Bera Test
## 
## data:  res2
## X-squared = 0.1877, df = 2, p-value = 0.9104
library(moments)
skewness(dpm2$hori)
## [1] 0.7971812
skewness(dpm2$Backw)
## [1] 1.823012
skewness(dpm2$Forw)
## [1] 0.9899494
skewness(dpm2$TAX)
## [1] 7.334878
skewness(dpm2$HHI)
## [1] 3.212881
skewness(dpm2$lnabs)
## [1] -0.4775803

Scatter Plot Residuals

df_res <- data.frame(residual_fgls = res1)
df_res$residual_fgls <- res1
df_res$residual_cem <-res2

plot(fitted(m2), resid(m2),
     xlab = "Nilai Prediksi",
     ylab = "Residual",
     main = "Scatter Plot Residual FGLS")
abline(h = 0, lty = 2)

fit <- predict(cem2)
res <- residuals(cem2)
graphics::plot(
  as.numeric(predict(cem2)),
  as.numeric(residuals(cem2)),
  xlab = "Fitted Values",
  ylab = "Residuals",
  main = "Scatter Plot Residual Pooled"
)
abline(h = 0, lty = 2)