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 (Within): LSDV

fe_model_wit <- plm(inv ~ value + capital, data = Grunfeld, 
                    index = c("firm", "year"), 
                    effect = "individual", model = "within")

summary(fe_model_wit)
## Oneway (individual) effect Within Model
## 
## Call:
## plm(formula = inv ~ value + capital, data = Grunfeld, effect = "individual", 
##     model = "within", index = c("firm", "year"))
## 
## Balanced Panel: n = 10, T = 20, N = 200
## 
## Residuals:
##       Min.    1st Qu.     Median    3rd Qu.       Max. 
## -184.00857  -17.64316    0.56337   19.19222  250.70974 
## 
## Coefficients:
##         Estimate Std. Error t-value  Pr(>|t|)    
## value   0.110124   0.011857  9.2879 < 2.2e-16 ***
## capital 0.310065   0.017355 17.8666 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    2244400
## Residual Sum of Squares: 523480
## R-Squared:      0.76676
## Adj. R-Squared: 0.75311
## F-statistic: 309.014 on 2 and 188 DF, p-value: < 2.22e-16
names(fe_model_wit)
##  [1] "coefficients" "vcov"         "residuals"    "df.residual"  "formula"     
##  [6] "model"        "assign"       "args"         "aliased"      "call"
fixef(fe_model_wit, effect = "individual")
##         1         2         3         4         5         6         7         8 
##  -70.2967  101.9058 -235.5718  -27.8093 -114.6168  -23.1613  -66.5535  -57.5457 
##         9        10 
##  -87.2223   -6.5678

Model Fixed-Effect (Between)

fe_model_bet <- plm(inv ~ value + capital, data = Grunfeld, 
                    index = c("firm", "year"), 
                    effect = "individual", model = "between")

summary(fe_model_bet)
## Oneway (individual) effect Between Model
## 
## Call:
## plm(formula = inv ~ value + capital, data = Grunfeld, effect = "individual", 
##     model = "between", index = c("firm", "year"))
## 
## Balanced Panel: n = 10, T = 20, N = 200
## Observations used in estimation: 10
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -163.3924   -3.6808    2.9683   20.7388  144.0590 
## 
## Coefficients:
##              Estimate Std. Error t-value Pr(>|t|)   
## (Intercept) -8.527114  47.515308 -0.1795  0.86266   
## value        0.134646   0.028745  4.6841  0.00225 **
## capital      0.032031   0.190938  0.1678  0.87152   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    355780
## Residual Sum of Squares: 50603
## R-Squared:      0.85777
## Adj. R-Squared: 0.81713
## F-statistic: 21.1077 on 2 and 7 DF, p-value: 0.0010851
fixef(fe_model_wit, effect = "individual")
##         1         2         3         4         5         6         7         8 
##  -70.2967  101.9058 -235.5718  -27.8093 -114.6168  -23.1613  -66.5535  -57.5457 
##         9        10 
##  -87.2223   -6.5678

Model Random-Effect: Metode WALHUS

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

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

summary(re_model_wal)
## Oneway (individual) effect Random Effect Model 
##    (Wallace-Hussain's transformation)
## 
## Call:
## plm(formula = inv ~ value + capital, data = Grunfeld, effect = "individual", 
##     model = "random", random.method = "walhus", index = c("firm", 
##         "year"))
## 
## Balanced Panel: n = 10, T = 20, N = 200
## 
## Effects:
##                   var std.dev share
## idiosyncratic 3089.07   55.58 0.352
## individual    5690.18   75.43 0.648
## theta: 0.8374
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -181.3556  -22.0352    5.7851   18.8320  253.9807 
## 
## Coefficients:
##               Estimate Std. Error z-value Pr(>|z|)    
## (Intercept) -57.553864  25.335537 -2.2717  0.02311 *  
## value         0.109710   0.010181 10.7756  < 2e-16 ***
## capital       0.307374   0.017272 17.7959  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    2432400
## Residual Sum of Squares: 558340
## R-Squared:      0.77046
## Adj. R-Squared: 0.76813
## Chisq: 661.224 on 2 DF, p-value: < 2.22e-16
names(re_model_wal)
##  [1] "coefficients" "vcov"         "residuals"    "df.residual"  "formula"     
##  [6] "model"        "ercomp"       "assign"       "args"         "aliased"     
## [11] "call"
re_model_wal$vcov
##              (Intercept)         value       capital
## (Intercept) 641.88945882 -9.439106e-02 -1.284010e-02
## value        -0.09439106  1.036596e-04 -6.425517e-05
## capital      -0.01284010 -6.425517e-05  2.983282e-04
re_model_wal$ercomp
##                   var std.dev share
## idiosyncratic 3089.07   55.58 0.352
## individual    5690.18   75.43 0.648
## theta: 0.8374
ranef(re_model_wal, effect = "individual")
##            1            2            3            4            5            6 
##   -8.9626248  156.8119823 -171.4836498   29.5552398  -54.1863398   33.9259459 
##            7            8            9           10 
##   -7.8762433    0.5024353  -27.9694955   49.6827500

Model Random-Effect: Metode AMEMIYA

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

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

summary(re_model_ame)
## Oneway (individual) effect Random Effect Model 
##    (Amemiya's transformation)
## 
## Call:
## plm(formula = inv ~ value + capital, data = Grunfeld, effect = "individual", 
##     model = "random", random.method = "amemiya", index = c("firm", 
##         "year"))
## 
## Balanced Panel: n = 10, T = 20, N = 200
## 
## Effects:
##                   var std.dev share
## idiosyncratic 2755.15   52.49 0.298
## individual    6477.30   80.48 0.702
## theta: 0.8557
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -178.4834  -20.1692    4.9156   19.5200  253.1136 
## 
## Coefficients:
##               Estimate Std. Error z-value Pr(>|z|)    
## (Intercept) -57.771054  27.961477 -2.0661  0.03882 *  
## value         0.109764   0.010421 10.5328  < 2e-16 ***
## capital       0.307952   0.017200 17.9039  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    2392500
## Residual Sum of Squares: 550970
## R-Squared:      0.76971
## Adj. R-Squared: 0.76738
## Chisq: 658.458 on 2 DF, p-value: < 2.22e-16
re_model_ame$vcov
##              (Intercept)         value       capital
## (Intercept) 781.84417507 -9.932145e-02 -1.053276e-02
## value        -0.09932145  1.086006e-04 -6.575581e-05
## capital      -0.01053276 -6.575581e-05  2.958496e-04
re_model_ame$ercomp
##                   var std.dev share
## idiosyncratic 2755.15   52.49 0.298
## individual    6477.30   80.48 0.702
## theta: 0.8557
ranef(re_model_ame, effect = "individual")
##            1            2            3            4            5            6 
##   -9.3947217  157.6571135 -172.5854571   29.8331601  -54.5729954   34.2528816 
##            7            8            9           10 
##   -7.8949431    0.6345057  -28.1037595   50.1742160

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_wit, re_model_wal)
## 
##  Hausman Test
## 
## data:  inv ~ value + capital
## chisq = 4.2887, df = 2, p-value = 0.1171
## alternative hypothesis: one model is inconsistent
phtest(fe_model_wit, re_model_ame)
## 
##  Hausman Test
## 
## data:  inv ~ value + capital
## chisq = 4.8527, df = 2, p-value = 0.08836
## alternative hypothesis: one model is inconsistent