After New Jersey hiked its minimum wage in 1992, Card and Krueger studied its effect by examining fast food companies that employed workers at the minimum wage. They wanted to challenge the prevailing classical theory which suggested that a wage hike would adversely effect employment by limiting the number of workers that firm can afford in its budget. Surprisingly, the study yielded results that contradicted classical theory, observed companies saw an increase in employment rather than a decrease. This suggests that there is a monopsony, a market where workers set wages, for minimum wage jobs. Formerly discouraged workers will enter the labor market once they can demand a more satisfactory wage.
The treatment in this study revolves around changes in minimum wage laws. New Jersey (NJ) serves as the treatment group, experiencing an increase in the minimum wage, while Pennsylvania (PA) acts as the control group, where the minimum wage remains unchanged. The methodology involves creating a counterfactual or baseline by comparing these two groups and controlling for common trends or factors that affect both equally. This approach is akin to comparing apples to apples to assess the true impact of the minimum wage change.
The methodology is well-established and widely accepted in economics. However, it’s important to acknowledge that while the study offers valuable insights, policy decisions should consider a broader range of research and factors. The study’s credibility hinges on assumptions, including the parallel trend assumption, which posits that trends in employment would have been the same in NJ and PA if not for the minimum wage increase. If this assumption is violated, it could undermine the study’s findings.
After evaluating the study, I do not believe that it holds enough evidence to reject the classical theory on wages and employment on its own. There are too many background factors at play, such as the parallel trend assumption and that it only analyzes the fast food industry. Who is to say that what may be true for one industry holds true for all other industries. That being said, the conclusion from this study could be confirmed if other studies are conducted and yield similar findings.
#read csv file
diff_in_diff <- read.csv("/Users/cam/Desktop/Grad_EMetrics/Discussions/HPI_diff_in_diff.csv")
#Call on all packages
pkgs <- c("knitr","stargazer")
for (pkg in pkgs) {
if (!require(pkg, character.only = TRUE))
{install.packages(pkg, dependencies = TRUE)}
library(pkg, character.only = TRUE)}
## Loading required package: knitr
## Loading required package: stargazer
##
## Please cite as:
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
\[ HPI_{CHG}=\beta_0+\beta_1(TimePeriod) + \beta_2(DisasterAffected)+\beta_3(TimePeriod \times DisasterAffected) \]
reg1 <- lm(HPI_CHG ~ Time_Period + Disaster_Affected + Time_Period*Disaster_Affected,
data = diff_in_diff)
stargazer(reg1, type="text")
##
## =========================================================
## Dependent variable:
## ---------------------------
## HPI_CHG
## ---------------------------------------------------------
## Time_Period -0.028***
## (0.004)
##
## Disaster_Affected -0.014**
## (0.006)
##
## Time_Period:Disaster_Affected 0.020**
## (0.009)
##
## Constant 0.037***
## (0.003)
##
## ---------------------------------------------------------
## Observations 48
## R2 0.536
## Adjusted R2 0.504
## Residual Std. Error 0.012 (df = 44)
## F Statistic 16.916*** (df = 3; 44)
## =========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
The regression that was just run measures the change in house prices depending on whether or not they are in an area affected by a natural disaster. Thus the treatment variable here would be Disaster_Affected as it is the variable that answers the underlying question. Additionally, the control variable would be Time_Period because it separates
| Time_Period = 0 | Time_Period = 1 | |
|---|---|---|
| Disaster_Affected = 0 | \(y=\beta_0\) | \(y=\beta_0+\beta_1\) |
| Disaster_Affected = 1 | \(y=\beta_0+\beta_2\) | \(y=\beta_0+\beta_1+\beta_2+\beta_3\) |
| Time_Period = 0 | Time_Period = 1 | |
|---|---|---|
| Disaster_Affected = 0 | 0.037 | 0.037 + (-0.028) |
| Disaster_Affected = 1 | 0.037 + (-0.014) | 0.037 + (-0.028) + (-0.014) + (0.020) |
# Extract coefficients from the regression model
coefficients_reg1 <- coef(reg1)
# Define the coefficients
beta_0 <- coefficients_reg1["(Intercept)"]
beta_1 <- coefficients_reg1["Time_Period"]
beta_2 <- coefficients_reg1["Disaster_Affected"]
beta_3 <- coefficients_reg1["Time_Period:Disaster_Affected"]
# Create a matrix to represent the equations
matrix_equations <- matrix("", nrow = 2, ncol = 2)
# Fill in the matrix with the equations
matrix_equations[1, 1] <- round(beta_0,4)
matrix_equations[1, 2] <- round(beta_0+beta_1,4)
matrix_equations[2, 1] <- round(beta_0+beta_2,4)
matrix_equations[2, 2] <- round(beta_0+beta_1+beta_2+beta_3,4)
# Print the matrix
colnames(matrix_equations) <- c("Time_Period = 0","Time_Period = 1")
rownames(matrix_equations) <- c("Disaster_Affected = 0","Disaster_Affected = 1")
print(matrix_equations)
## Time_Period = 0 Time_Period = 1
## Disaster_Affected = 0 "0.0371" "0.0092"
## Disaster_Affected = 1 "0.0231" "0.015"
#Show the difference based on time period
delta_treat <- ((beta_0+beta_1+beta_2+beta_3)-(beta_0+beta_2))*100
delta_cont <- ((beta_0+beta_1)-(beta_0))*100
cat("Difference for treatment: ", round(delta_treat,4), "%", "\n",
"Difference for control: ", round(delta_cont,4), "%", "\n")
## Difference for treatment: -0.8108 %
## Difference for control: -2.7847 %
#Calculate and show diff-in-diff
diff_in_diff_value <- (delta_treat - delta_cont)
cat("Diff-in-Diff value: ", round(diff_in_diff_value,4),"%")
## Diff-in-Diff value: 1.9739 %
# Calculate the mean of HPI_CHG in different conditions
mean_1_1 <- mean(diff_in_diff$HPI_CHG[
diff_in_diff$Time_Period == 0 &
diff_in_diff$Disaster_Affected == 0]) # Time_Period = 0, Disaster_Affected = 0
mean_1_2 <- mean(diff_in_diff$HPI_CHG[
diff_in_diff$Time_Period == 1 &
diff_in_diff$Disaster_Affected == 0]) # Time_Period = 1, Disaster_Affected = 0
mean_2_1 <- mean(diff_in_diff$HPI_CHG[
diff_in_diff$Time_Period == 0 &
diff_in_diff$Disaster_Affected == 1]) # Time_Period = 0, Disaster_Affected = 1
mean_2_2 <- mean(diff_in_diff$HPI_CHG[
diff_in_diff$Time_Period == 1 &
diff_in_diff$Disaster_Affected == 1]) # Time_Period = 1, Disaster_Affected = 1
cat("Change in mean HPI for control: ", round((mean_1_2 - mean_1_1) * 100, 4),"%","\n",
"Change in mean HPI for treatment: ", round((mean_2_2 - mean_2_1) * 100, 4),"%","\n\n",
"Diff-in-Diff: ", round(((mean_1_2 - mean_1_1) - (mean_2_2 - mean_2_1))*100, 4),"%")
## Change in mean HPI for control: -2.7847 %
## Change in mean HPI for treatment: -0.8108 %
##
## Diff-in-Diff: -1.9739 %
As we can see, the diff-in-diff value is the same when comparing the mean and when using the coefficient. This suggests that the diff-in-diff process was carried out correctly.
Similar to the problem the Card and Krueger study, the primary threat is the parallel trend assumption which assumes that treatment and control groups follow parallel trends in the absence of treatment. Trust in point estimates is highest when this assumption holds, implying a strong causal connection. If parallel trends are not observed, caution is necessary as it suggests potential issues or confounding factors, making the results less reliable.