Sumber Data: Grunfeld

data("Grunfeld", package = "plm")
Grunfeld %>% str
## 'data.frame':    200 obs. of  5 variables:
##  $ firm   : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ year   : int  1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 ...
##  $ inv    : num  318 392 411 258 331 ...
##  $ value  : num  3078 4662 5387 2792 4313 ...
##  $ capital: num  2.8 52.6 156.9 209.2 203.4 ...
Grunfeld %>%
  select(year, firm) %>%
  table()
##       firm
## year   1 2 3 4 5 6 7 8 9 10
##   1935 1 1 1 1 1 1 1 1 1  1
##   1936 1 1 1 1 1 1 1 1 1  1
##   1937 1 1 1 1 1 1 1 1 1  1
##   1938 1 1 1 1 1 1 1 1 1  1
##   1939 1 1 1 1 1 1 1 1 1  1
##   1940 1 1 1 1 1 1 1 1 1  1
##   1941 1 1 1 1 1 1 1 1 1  1
##   1942 1 1 1 1 1 1 1 1 1  1
##   1943 1 1 1 1 1 1 1 1 1  1
##   1944 1 1 1 1 1 1 1 1 1  1
##   1945 1 1 1 1 1 1 1 1 1  1
##   1946 1 1 1 1 1 1 1 1 1  1
##   1947 1 1 1 1 1 1 1 1 1  1
##   1948 1 1 1 1 1 1 1 1 1  1
##   1949 1 1 1 1 1 1 1 1 1  1
##   1950 1 1 1 1 1 1 1 1 1  1
##   1951 1 1 1 1 1 1 1 1 1  1
##   1952 1 1 1 1 1 1 1 1 1  1
##   1953 1 1 1 1 1 1 1 1 1  1
##   1954 1 1 1 1 1 1 1 1 1  1

Eksplorasi Data Panel

Model Fixed-Effect Two-Way (Within): LSDV

fe_model <- plm(inv ~ value + capital, data = Grunfeld, 
                    index = c("firm", "year"), 
                    effect = "twoways", model = "within")
summary(fe_model)
## Twoways effects Within Model
## 
## Call:
## plm(formula = inv ~ value + capital, data = Grunfeld, effect = "twoways", 
##     model = "within", index = c("firm", "year"))
## 
## Balanced Panel: n = 10, T = 20, N = 200
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -162.6094  -19.4710   -1.2669   19.1277  211.8420 
## 
## Coefficients:
##         Estimate Std. Error t-value  Pr(>|t|)    
## value   0.117716   0.013751  8.5604 6.653e-15 ***
## capital 0.357916   0.022719 15.7540 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    1615600
## Residual Sum of Squares: 452150
## R-Squared:      0.72015
## Adj. R-Squared: 0.67047
## F-statistic: 217.442 on 2 and 169 DF, p-value: < 2.22e-16
names(fe_model)
##  [1] "coefficients" "vcov"         "residuals"    "df.residual"  "formula"     
##  [6] "model"        "assign"       "args"         "aliased"      "call"
fixef(fe_model, effect = "individual")
##         1         2         3         4         5         6         7         8 
##  -86.9002  120.1540 -222.1310    8.4536  -92.3388   15.9884  -35.4336  -19.4097 
##         9        10 
##  -56.6827   39.9369
fixef(fe_model, effect = "time")
##    1935    1936    1937    1938    1939    1940    1941    1942    1943    1944 
##  -86.90 -106.10 -127.59 -126.13 -156.37 -131.14 -105.70 -108.04 -129.88 -130.00 
##    1945    1946    1947    1948    1949    1950    1951    1952    1953    1954 
## -142.58 -118.07 -126.29 -130.62 -160.40 -162.80 -149.38 -151.53 -154.62 -180.43

Model Random-Effect Two-Way : Metode WALHUS

## Misalnya 10 perusahaan (firm) merupakan sampel acak dari populasi perusahaan
## Ini merupakan alasan penggunaan REM

re_model1 <- plm(inv ~ value + capital, data = Grunfeld, 
                    index = c("firm", "year"), 
                    effect = "twoways", model = "random", 
                    random.method ="walhus")

summary(re_model1)
## Twoways effects Random Effect Model 
##    (Wallace-Hussain's transformation)
## 
## Call:
## plm(formula = inv ~ value + capital, data = Grunfeld, effect = "twoways", 
##     model = "random", random.method = "walhus", index = c("firm", 
##         "year"))
## 
## Balanced Panel: n = 10, T = 20, N = 200
## 
## Effects:
##                   var std.dev share
## idiosyncratic 3188.06   56.46 0.359
## individual    5685.23   75.40 0.641
## time             0.00    0.00 0.000
## theta: 0.8349 (id) 0 (time) 0 (total)
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -181.7595  -22.3727    5.9119   18.7001  254.1129 
## 
## Coefficients:
##               Estimate Std. Error z-value Pr(>|z|)    
## (Intercept) -57.522213  25.012301 -2.2998  0.02146 *  
## value         0.109703   0.010147 10.8113  < 2e-16 ***
## capital       0.307286   0.017283 17.7795  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    2438400
## Residual Sum of Squares: 559450
## R-Squared:      0.77057
## Adj. R-Squared: 0.76824
## Chisq: 661.637 on 2 DF, p-value: < 2.22e-16
re_model1$vcov
##              (Intercept)         value       capital
## (Intercept) 625.61518163 -9.369569e-02 -1.317051e-02
## value        -0.09369569  1.029635e-04 -6.404663e-05
## capital      -0.01317051 -6.404663e-05  2.987080e-04
re_model1$ercomp
##                   var std.dev share
## idiosyncratic 3188.06   56.46 0.359
## individual    5685.23   75.40 0.641
## time             0.00    0.00 0.000
## theta: 0.8349 (id) 0 (time) 0 (total)

Model Random-Effect Two-Way: Metode AMEMIYA

## Misalnya 10 perusahaan (firm) merupakan sampel acak dari populasi perusahaan
## Ini merupakan alasan penggunaan REM

re_model2 <- plm(inv ~ value + capital, data = Grunfeld, 
                 index = c("firm", "year"), 
                 effect = "twoways", model = "random", 
                 random.method ="amemiya")

summary(re_model2)
## Twoways effects Random Effect Model 
##    (Amemiya's transformation)
## 
## Call:
## plm(formula = inv ~ value + capital, data = Grunfeld, effect = "twoways", 
##     model = "random", random.method = "amemiya", index = c("firm", 
##         "year"))
## 
## Balanced Panel: n = 10, T = 20, N = 200
## 
## Effects:
##                   var std.dev share
## idiosyncratic 2644.13   51.42 0.256
## individual    7452.02   86.33 0.721
## time           243.78   15.61 0.024
## theta: 0.868 (id) 0.2787 (time) 0.2776 (total)
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -176.9062  -18.0431    3.2697   17.1719  234.1735 
## 
## Coefficients:
##               Estimate Std. Error z-value Pr(>|z|)    
## (Intercept) -63.767791  29.851537 -2.1362  0.03267 *  
## value         0.111386   0.010909 10.2102  < 2e-16 ***
## capital       0.323321   0.018772 17.2232  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    2066800
## Residual Sum of Squares: 518200
## R-Squared:      0.74927
## Adj. R-Squared: 0.74673
## Chisq: 588.717 on 2 DF, p-value: < 2.22e-16
re_model2$vcov
##              (Intercept)         value       capital
## (Intercept) 891.11427317 -1.094987e-01 -2.189549e-02
## value        -0.10949874  1.190113e-04 -6.968237e-05
## capital      -0.02189549 -6.968237e-05  3.524041e-04
re_model2$ercomp
##                   var std.dev share
## idiosyncratic 2644.13   51.42 0.256
## individual    7452.02   86.33 0.721
## time           243.78   15.61 0.024
## theta: 0.868 (id) 0.2787 (time) 0.2776 (total)

Model Random-Effect Two-Way: Metode SWAR (default di R)

## Misalnya 10 perusahaan (firm) merupakan sampel acak dari populasi perusahaan
## Ini merupakan alasan penggunaan REM

re_model3 <- plm(inv ~ value + capital, data = Grunfeld, 
                 index = c("firm", "year"), 
                 effect = "twoways", model = "random", 
                 random.method ="swar")

summary(re_model3)
## Twoways effects Random Effect Model 
##    (Swamy-Arora's transformation)
## 
## Call:
## plm(formula = inv ~ value + capital, data = Grunfeld, effect = "twoways", 
##     model = "random", random.method = "swar", index = c("firm", 
##         "year"))
## 
## Balanced Panel: n = 10, T = 20, N = 200
## 
## Effects:
##                   var std.dev share
## idiosyncratic 2675.43   51.72 0.274
## individual    7095.25   84.23 0.726
## time             0.00    0.00 0.000
## theta: 0.864 (id) 0 (time) 0 (total)
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -177.1700  -19.7576    4.6048   19.4676  252.7596 
## 
## Coefficients:
##               Estimate Std. Error z-value Pr(>|z|)    
## (Intercept) -57.865377  29.393359 -1.9687  0.04899 *  
## value         0.109790   0.010528 10.4285  < 2e-16 ***
## capital       0.308190   0.017171 17.9483  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    2376000
## Residual Sum of Squares: 547910
## R-Squared:      0.7694
## Adj. R-Squared: 0.76706
## Chisq: 657.295 on 2 DF, p-value: < 2.22e-16
re_model3$vcov
##               (Intercept)         value       capital
## (Intercept) 863.969562695 -1.015487e-01 -9.508997e-03
## value        -0.101548716  1.108356e-04 -6.644528e-05
## capital      -0.009508997 -6.644528e-05  2.948426e-04
re_model3$ercomp
##                   var std.dev share
## idiosyncratic 2675.43   51.72 0.274
## individual    7095.25   84.23 0.726
## time             0.00    0.00 0.000
## theta: 0.864 (id) 0 (time) 0 (total)

Uji Hausman : REM vs FEM

## H0: ada korelasi (REM) 
## H1: tidak ada korelasi (FEM)
##
## Atau versi lain:
##
## H0: REM konsisten dan efisien
## H1: REM tidak konsisten, sehingga pilih FEM

phtest(fe_model, re_model1)
## 
##  Hausman Test
## 
## data:  inv ~ value + capital
## chisq = 14.148, df = 2, p-value = 0.0008466
## alternative hypothesis: one model is inconsistent
phtest(fe_model, re_model2)
## 
##  Hausman Test
## 
## data:  inv ~ value + capital
## chisq = 8.9626, df = 2, p-value = 0.01132
## alternative hypothesis: one model is inconsistent
phtest(fe_model, re_model3)
## 
##  Hausman Test
## 
## data:  inv ~ value + capital
## chisq = 13.46, df = 2, p-value = 0.001194
## alternative hypothesis: one model is inconsistent