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
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
## [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
## [1] "coefficients" "vcov" "residuals" "df.residual" "formula"
## [6] "model" "ercomp" "assign" "args" "aliased"
## [11] "call"
## (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
## 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
## (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
## 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