I have three treatments, and I'm trying to calculate the ATTs. The literature in my field seems to deal with this one of two ways. The first way involves conducting separate matching procedures for each treatment and then calculating the ATT. Each matching procedure only includes observations from the treatment group of interest and the controls. Observations from the other treatment groups are excluded. See option 1 below. This would then be repeated for Treatment B and Treatment C. A second approach involves doing a single matching procedure with a dataset that includes all treatments and then calculating the ATT. With this option, observations that received any of the treatments (A, B, or C) are part of the treatment group. Is one approach preferred over another?
Option 1
#create a data frame with only observations from Treatment A and Untreated Groups
dfA<-df
dfA$treatmentA<- ifelse(dfA$treat == "B", -9999,
ifelse(dfA$treat == "c", -9999, 1,0))
dfA$treatmentA[dfA$treatmentA==-9999] <-NA
dfA<-dfA[complete.cases(dfA), ]
#Match
match1<- matchit(treatmentA ~ var1 + var2 + var3, method = "nearest", data=dfA)
#Calculate ATT with a Regression
olsA<-lm(outcome~treatmentA + var1 + var2 + var3, data=dfA_matched)
Option 2 A dummy variable (dummy treat) indicates whether the observation was treated (Treatment A, B, or C) or not. In the regression, the variable (treatgroups) indicates whether the observation received Treatment A, Treatment B, Treatment C, or No Treatment.
#Match
match2<- matchit(dummytreat ~ var1 + var2 + var3, method = "nearest", data=df)
#Calculate ATT with a Regression
ols<-lm(outcome~treatgroups + var1 + var2 + var3, data=df_matched)
I've tried both with my data. I get similar treatment effects for Groups B and C but not for Group A. It makes sense that the ATTs would not be the same since the matched datasets from Option 1 to Option 2 are different, but I'm not sure how to deal with the difference in ATTs for Group A.