library(wooldridge)
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
data("minwage")

# Create lagged variables
minwage$gwage232_1 <- c(NA, minwage$gwage232[-length(minwage$gwage232)])
minwage$gemp232_1 <- c(NA, minwage$gemp232[-length(minwage$gemp232)])

# Part (i) - Test for first-order autocorrelation in gwage232
model_i <- lm(gwage232 ~ gwage232_1 + gmwage + gcpi, data = minwage)
cat("Durbin-Watson statistic:", dwtest(model_i)$statistic, "\n")
## Durbin-Watson statistic: 2.027379
# Part (ii) - Estimate the dynamic model
model_ii <- lm(gwage232 ~ gwage232_1 + gmwage + gcpi, data = minwage)
summary(model_ii)
## 
## Call:
## lm(formula = gwage232 ~ gwage232_1 + gmwage + gcpi, data = minwage)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.044642 -0.004134 -0.001312  0.004482  0.041612 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.0024003  0.0004308   5.572 3.79e-08 ***
## gwage232_1  -0.0779092  0.0342851  -2.272  0.02341 *  
## gmwage       0.1518459  0.0096485  15.738  < 2e-16 ***
## gcpi         0.2630876  0.0824457   3.191  0.00149 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.007889 on 606 degrees of freedom
##   (2 observations deleted due to missingness)
## Multiple R-squared:  0.2986, Adjusted R-squared:  0.2951 
## F-statistic: 85.99 on 3 and 606 DF,  p-value: < 2.2e-16
# Part (iii) - Add lagged growth in employment
model_iii <- lm(gwage232 ~ gwage232_1 + gmwage + gcpi + gemp232_1, data = minwage)
summary(model_iii)
## 
## Call:
## lm(formula = gwage232 ~ gwage232_1 + gmwage + gcpi + gemp232_1, 
##     data = minwage)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.043842 -0.004378 -0.001034  0.004321  0.042548 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.002451   0.000426   5.753  1.4e-08 ***
## gwage232_1  -0.074546   0.033901  -2.199 0.028262 *  
## gmwage       0.152707   0.009540  16.007  < 2e-16 ***
## gcpi         0.252296   0.081544   3.094 0.002066 ** 
## gemp232_1    0.066131   0.016962   3.899 0.000108 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.007798 on 605 degrees of freedom
##   (2 observations deleted due to missingness)
## Multiple R-squared:  0.3158, Adjusted R-squared:  0.3112 
## F-statistic:  69.8 on 4 and 605 DF,  p-value: < 2.2e-16
# Part (iv) - Compare models with and without lagged variables
model_iv_a <- lm(gmwage ~ gwage232_1 + gemp232_1, data = minwage)
model_iv_b <- lm(gmwage ~ gwage232_1 + gemp232_1 + gwage232_1 + gemp232_1, data = minwage)
summary(model_iv_a)
## 
## Call:
## lm(formula = gmwage ~ gwage232_1 + gemp232_1, data = minwage)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.01914 -0.00500 -0.00379 -0.00287  0.62208 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.003433   0.001440   2.384   0.0174 *
## gwage232_1   0.203167   0.143140   1.419   0.1563  
## gemp232_1   -0.041706   0.072110  -0.578   0.5632  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03318 on 607 degrees of freedom
##   (2 observations deleted due to missingness)
## Multiple R-squared:  0.00392,    Adjusted R-squared:  0.0006377 
## F-statistic: 1.194 on 2 and 607 DF,  p-value: 0.3036
summary(model_iv_b)
## 
## Call:
## lm(formula = gmwage ~ gwage232_1 + gemp232_1 + gwage232_1 + gemp232_1, 
##     data = minwage)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.01914 -0.00500 -0.00379 -0.00287  0.62208 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.003433   0.001440   2.384   0.0174 *
## gwage232_1   0.203167   0.143140   1.419   0.1563  
## gemp232_1   -0.041706   0.072110  -0.578   0.5632  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03318 on 607 degrees of freedom
##   (2 observations deleted due to missingness)
## Multiple R-squared:  0.00392,    Adjusted R-squared:  0.0006377 
## F-statistic: 1.194 on 2 and 607 DF,  p-value: 0.3036
# Part (v) - Regress gmwage on gwage232_1 and gemp232_1
model_v <- lm(gmwage ~ gwage232_1 + gemp232_1, data = minwage)
summary(model_v)
## 
## Call:
## lm(formula = gmwage ~ gwage232_1 + gemp232_1, data = minwage)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.01914 -0.00500 -0.00379 -0.00287  0.62208 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.003433   0.001440   2.384   0.0174 *
## gwage232_1   0.203167   0.143140   1.419   0.1563  
## gemp232_1   -0.041706   0.072110  -0.578   0.5632  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03318 on 607 degrees of freedom
##   (2 observations deleted due to missingness)
## Multiple R-squared:  0.00392,    Adjusted R-squared:  0.0006377 
## F-statistic: 1.194 on 2 and 607 DF,  p-value: 0.3036