library(wooldridge)
data("minwage")
# Create a lagged variable for gwage232
minwage$lag_gwage232 <- lag(minwage$gwage232)
# (i) First-order autocorrelation and weak stationarity
filtered_data <- minwage[complete.cases(minwage$gwage232, minwage$lag_gwage232), ]
# Calculate autocorrelation for filtered data
acf(filtered_data$gwage232, lag.max = 1)

# (ii) Dynamic model estimation
model1 <- lm(gwage232 ~ lag_gwage232 + gmwage + gcpi, data = filtered_data)
summary(model1)
##
## Call:
## lm(formula = gwage232 ~ lag_gwage232 + gmwage + gcpi, data = filtered_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.138e-17 -1.537e-18 -3.990e-19 1.031e-18 3.063e-16
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.369e-18 6.877e-19 4.899e+00 1.24e-06 ***
## lag_gwage232 1.000e+00 6.479e-17 1.544e+16 < 2e-16 ***
## gmwage -4.748e-20 1.825e-17 -3.000e-03 0.998
## gcpi 5.317e-16 1.321e-16 4.024e+00 6.46e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.264e-17 on 607 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 1.123e+32 on 3 and 607 DF, p-value: < 2.2e-16
# (iii) Adding lagged employment growth
model2 <- lm(gwage232 ~ lag_gwage232 + gmwage + gcpi + lag(gemp232), data = filtered_data)
summary(model2)
##
## Call:
## lm(formula = gwage232 ~ lag_gwage232 + gmwage + gcpi + lag(gemp232),
## data = filtered_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.123e-17 -1.582e-18 -4.110e-19 8.800e-19 3.060e-16
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.369e-18 6.880e-19 4.897e+00 1.25e-06 ***
## lag_gwage232 1.000e+00 6.483e-17 1.543e+16 < 2e-16 ***
## gmwage 1.042e-19 1.826e-17 6.000e-03 0.995
## gcpi 5.319e-16 1.322e-16 4.024e+00 6.45e-05 ***
## lag(gemp232) -2.146e-17 2.747e-17 -7.810e-01 0.435
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.264e-17 on 606 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 8.416e+31 on 4 and 606 DF, p-value: < 2.2e-16
# (iv) Comparing model coefficients
coef(model1)["gmwage"]
## gmwage
## -4.747743e-20
coef(model2)["gmwage"]
## gmwage
## 1.042475e-19
# (v) R-squared for gmwage regression
model3 <- lm(gmwage ~ lag(gwage232) + lag(gemp232), data = filtered_data)
summary(model3)$r.squared
## [1] 0.2825375
Including Plots
