library(plm)
## Warning: package 'plm' was built under R version 4.3.3
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.3.2
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.2
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(car)
## Warning: package 'car' was built under R version 4.3.3
## Loading required package: carData
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
data <- readxl::read_excel("D:\\NSC\\2023 Data Panel NTT Ketahanan Pangan.xlsx")
head(data)
## # A tibble: 6 Ă— 9
## No Kab Tahun AHH IKP IPM PDRB Prod.Pangan IKP_cat
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 293 Sumba Barat 2020 67.1 63.8 63.5 2351536. 5242 4
## 2 293 Sumba Barat 2021 67.1 64.6 63.8 2416824. 21216 4
## 3 293 Sumba Barat 2022 67.4 68.1 64.4 2583328. 18571 5
## 4 294 Sumba Timur 2020 65.1 66.7 65.5 6254369. 31354 5
## 5 294 Sumba Timur 2021 65.2 66.2 65.7 6403410. 33357 5
## 6 294 Sumba Timur 2022 65.4 69.3 66.2 6825709. 31040 5
pdata <- pdata.frame(data, index = c("Kab","Tahun"))
head(pdata)
## No Kab Tahun AHH IKP IPM PDRB Prod.Pangan IKP_cat
## Alor-2020 299 Alor 2020 61.48 63.30 61.33 3052785 55477 4
## Alor-2021 299 Alor 2021 61.64 60.82 61.37 3166850 45011 4
## Alor-2022 299 Alor 2022 61.99 58.97 62.26 3362313 56341 4
## Belu-2020 298 Belu 2020 64.61 71.06 62.68 4549707 59687 5
## Belu-2021 298 Belu 2021 64.89 71.89 62.77 4699017 49834 5
## Belu-2022 298 Belu 2022 65.28 70.48 63.22 5037063 65998 5
# Model FEM (Fixed Effect)
fem <- plm(IKP ~ AHH + PDRB + Prod.Pangan, data=pdata, model="within")
summary(fem)
## Oneway (individual) effect Within Model
##
## Call:
## plm(formula = IKP ~ AHH + PDRB + Prod.Pangan, data = pdata, model = "within")
##
## Balanced Panel: n = 22, T = 3, N = 66
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -6.700012 -0.811781 0.016126 0.864163 5.164580
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## AHH 2.2827e+00 2.1199e+00 1.0768 0.2879
## PDRB -3.1641e-07 1.3913e-06 -0.2274 0.8212
## Prod.Pangan 1.1003e-05 8.5189e-06 1.2916 0.2037
##
## Total Sum of Squares: 183.91
## Residual Sum of Squares: 168.75
## R-Squared: 0.082422
## Adj. R-Squared: -0.4547
## F-statistic: 1.22762 on 3 and 41 DF, p-value: 0.31192
# Model REM (Random Effect)
rem <- plm(IKP ~ AHH + PDRB + Prod.Pangan, data=pdata, model="random")
summary(rem)
## Oneway (individual) effect Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = IKP ~ AHH + PDRB + Prod.Pangan, data = pdata, model = "random")
##
## Balanced Panel: n = 22, T = 3, N = 66
##
## Effects:
## var std.dev share
## idiosyncratic 4.116 2.029 0.103
## individual 35.722 5.977 0.897
## theta: 0.8077
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -8.387162 -0.949613 0.058879 1.060229 3.591477
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) -3.2179e+01 3.8659e+01 -0.8324 0.40519
## AHH 1.4822e+00 5.8993e-01 2.5125 0.01199 *
## PDRB 1.7881e-07 2.7829e-07 0.6425 0.52053
## Prod.Pangan 9.6076e-06 7.6536e-06 1.2553 0.20937
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 286.19
## Residual Sum of Squares: 244.36
## R-Squared: 0.14614
## Adj. R-Squared: 0.10483
## Chisq: 10.6118 on 3 DF, p-value: 0.014022
# Uji Chow (Pooled vs FEM)
pooling <- plm(IKP ~ AHH + PDRB + Prod.Pangan, data=pdata, model="pooling")
pFtest(fem, pooling)
##
## F test for individual effects
##
## data: IKP ~ AHH + PDRB + Prod.Pangan
## F = 23.237, df1 = 21, df2 = 41, p-value < 2.2e-16
## alternative hypothesis: significant effects
# Uji Hausman (FEM vs REM)
phtest(fem, rem)
##
## Hausman Test
##
## data: IKP ~ AHH + PDRB + Prod.Pangan
## chisq = 0.33242, df = 3, p-value = 0.9538
## alternative hypothesis: one model is inconsistent
# Lagrange Multiplier Test (LM Test)
plmtest(pooling, type = "bp")
##
## Lagrange Multiplier Test - (Breusch-Pagan)
##
## data: IKP ~ AHH + PDRB + Prod.Pangan
## chisq = 51.178, df = 1, p-value = 8.436e-13
## alternative hypothesis: significant effects
# --- Uji Asumsi Klasik ---
# Multikolinearitas (VIF)
vif(lm(IKP ~ AHH + PDRB + Prod.Pangan, data=data))
## AHH PDRB Prod.Pangan
## 1.119175 1.116783 1.003461
# Normalitas residual
resid_rem <- residuals(rem)
shapiro.test(resid_rem)
##
## Shapiro-Wilk normality test
##
## data: resid_rem
## W = 0.93103, p-value = 0.001222
tseries::jarque.bera.test(resid_rem)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
##
## Jarque Bera Test
##
## data: resid_rem
## X-squared = 53.212, df = 2, p-value = 2.787e-12
# Heteroskedastisitas (Breusch-Pagan)
bptest(rem)
##
## studentized Breusch-Pagan test
##
## data: rem
## BP = 4.3696, df = 3, p-value = 0.2242
# Standardisasi residu ke Z-score
resid_std <- (resid_rem - mean(resid_rem)) / sd(resid_rem)
# Kolmogorov–Smirnov Test terhadap Normal(0,1)
ks.test(resid_std, "pnorm", mean=0, sd=1)
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: resid_std
## D = 0.088546, p-value = 0.6461
## alternative hypothesis: two-sided