Import RENT

RENT.merge<-read_xlsx("MSA-RENT merge All.xlsx")
RENT.merge$treat<-ifelse(RENT.merge$state=="LA",1,0)
colnames(RENT.merge)
##  [1] "FirstNAME"           "AREANAME"            "RENT_0"             
##  [4] "RENT_1"              "RENT_2"              "RENT_3"             
##  [7] "RENT_4"              "YEAR"                "NAME.x"             
## [10] "state"               "Unemployee.Rate"     "Personal.Income"    
## [13] "Resident.Population" "nyear"               "MSA"                
## [16] "MSA.Code"            "Price"               "Change"             
## [19] "NAME.y"              "treat"
# Remove NA
RENT.merge<-RENT.merge%>%
  group_by(MSA)%>%
  filter(!any(is.na(Unemployee.Rate)))

RENT.merge1<-RENT.merge
RENT.merge1$NS<-paste0(RENT.merge1$FirstNAME,RENT.merge1$state)
RENT.NEWLA<-RENT.merge1%>%
  filter(NS=="newLA")

RENTUS<-RENT.merge1%>%
  filter(state!="LA")
RENT.merge1<-RENT.merge1%>%
  filter(NS!="newLA")

## WITH NEW ORLEAN ONLY
RENT.merge2<-rbind(RENT.NEWLA,RENTUS)
RENT.merge2$YEAR<-as.numeric(RENT.merge2$YEAR)

##BALLANCE BY NS
unq<-data.frame(NS=rep(unique(RENT.merge2$NS),15))
unq<-arrange(unq,NS)

unq$YEAR<-rep(2001:2015,length(unique(RENT.merge2$NS)))

RENT 0

Ballance.RENT<-left_join(unq,RENT.merge2,by=c("YEAR","NS"))
Ballance.RENT<-Ballance.RENT%>%
  group_by(NS)%>%
  filter(!any(is.na(RENT_0)))

ST<-unique(Ballance.RENT$NS)
n<-length(ST)
RESULT<-data.frame(NS=rep(ST,1))
SE<-data.frame(SE=rep(0,1))
Ballance.RENT$sdid<-0
Ballance.RENT$sdid.i<-0
j=1

for(i in 1:n){
  a_date<-2001:2015 ## ALL DATE
  aft<-2006:2015 ##AFTER TREATEMENT
  nbef<-length(a_date)-length(aft)
  
  Ballance.RENT$lg<-log(Ballance.RENT$RENT_0)
  Ballance.RENT$Treat<-ifelse(Ballance.RENT$YEAR>2005 & Ballance.RENT$NS==ST[i],1,0)
  Ballance.RENT$NS<-factor(Ballance.RENT$NS)
  Ballance.RENT<-data.frame(Ballance.RENT)
  
  # SDID PAN

  panelp<-panel.matrices(Ballance.RENT,unit = "NS",time = "YEAR",outcome = "lg",treatment = "Treat")
  
  sydid<-synthdid_estimate(Y=panelp$Y,N0 = panelp$N0,T0 = panelp$T0)
  
  plot(sydid)
  RESULT$ave_trea[i+((j-1)*n)]=summary(sydid)$estimate
  RESULT$time[i+((j-1)*n)]=as.character(aft[length(aft)])

  weights = attr(sydid, "weights")
  Y = panelp$Y
  T0 = panelp$T0; T1 = ncol(Y) - T0
  N0 = panelp$N0; N1 = nrow(Y) - N0
  omega.synth = c(weights$omega, rep(0, N1))
  omega.synth = c(weights$omega, rep(0, N1))
  omega.target = c(rep(0, N0), rep(1 / N1, N1))
  lambda.synth = c(weights$lambda, rep(0, T1))
  lambda.target = c(rep(0, T0), rep(1 / T1, T1))
  #over = attr(sydid, 'overlay')
  over=1
  intercept.offset = over * c((omega.target - omega.synth) %*% Y %*% lambda.synth)
  obs.trajectory = as.numeric(omega.target %*% Y)
  syn.trajectory.i = as.numeric(omega.synth %*% Y) + intercept.offset
  syn.trajectory=as.numeric(omega.synth %*% Y)
  #plot(sydid)
  residu<-syn.trajectory-obs.trajectory
  redidu.2<-syn.trajectory.i-obs.trajectory
  residu_pre<-sqrt(mean(residu[1:nbef]^2))      #MSE
  residu_pre2<-sqrt(mean(redidu.2[1:nbef]^2))  #MSE
  leng=length(residu)
  
  #PENGS
  Ballance.RENT$sdid[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory
  Ballance.RENT$sdid.i[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory.i
  
  residu_post<-sqrt(mean(residu[nbef+1:leng]^2))
  RESULT$Ratio_RMSE[i+((j-1)*n)]<-residu_post/residu_pre
  RESULT$MSE_pre[i+((j-1)*n)]<-residu_pre^2
  RESULT$MSE_post[i+((j-1)*n)]<-residu_post^2
  RESULT$TRUE_VAL[i+((j-1)*n)]<-obs.trajectory[leng]
  RESULT$sdid[i+((j-1)*n)]<-syn.trajectory[leng]
  RESULT$sdid.i[i+((j-1)*n)]<- syn.trajectory.i[leng]
}

MSAResult<-filter(RESULT,NS=="newLA")

STATE.LOW.MSE.15<-filter(RESULT,MSE_pre<1.5*MSAResult$MSE_pre[1])
print(STATE.LOW.MSE.15)
##                NS      ave_trea time Ratio_RMSE      MSE_pre MSE_post TRUE_VAL
## 1         akronOH -0.0821441939 2015         NA 1.904111e-03       NA 6.274762
## 2   albuquerqueNM -0.0644757576 2015         NA 2.123932e-03       NA 6.297109
## 3        athensGA  0.0206323550 2015         NA 2.510605e-04       NA 6.381816
## 4   bakersfieldCA  0.0604307482 2015         NA 1.206231e-03       NA 6.511745
## 5    binghamtonNY  0.0716714610 2015         NA 6.128481e-05       NA 6.357842
## 6   bloomingtonIN -0.0180698674 2015         NA 9.044536e-04       NA 6.459904
## 7     champaignIL -0.0045063164 2015         NA 2.375949e-05       NA 6.333280
## 8     corvallisOR -0.0619551059 2015         NA 2.736972e-04       NA 6.246107
## 9            elTX -0.0238784647 2015         NA 1.612230e-03       NA 6.458338
## 10        flintMI -0.1501136713 2015         NA 7.042833e-04       NA 6.111467
## 11         fortIN -0.0382120818 2015         NA 1.757698e-03       NA 6.261492
## 12        glensNY  0.1020113854 2015         NA 4.026691e-05       NA 6.356108
## 13        greenWI -0.0628515531 2015         NA 1.117156e-03       NA 6.212606
## 14   huntsvilleAL  0.0062588846 2015         NA 4.003562e-04       NA 6.317165
## 15         iowaIA  0.0007712401 2015         NA 8.740168e-04       NA 6.327937
## 16      jacksonMI -0.0398615338 2015         NA 1.752871e-03       NA 6.240276
## 17 jacksonvilleNC  0.0816003281 2015         NA 3.791654e-05       NA 6.526495
## 18   janesvilleWI -0.0668589796 2015         NA 3.507314e-05       NA 6.161207
## 19     kankakeeIL -0.0692510734 2015         NA 7.556204e-04       NA 6.356108
## 20      killeenTX  0.0092377611 2015         NA 2.190993e-03       NA 6.400257
## 21       kokomoIN -0.0331611693 2015         NA 2.777540e-05       NA 6.276643
## 22    lancasterPA  0.0487650252 2015         NA 5.867028e-04       NA 6.432940
## 23     lawrenceKS -0.0302157200 2015         NA 7.722398e-04       NA 6.269096
## 24    lynchburgVA  0.0218069567 2015         NA 1.214602e-03       NA 6.386879
## 25      medfordOR  0.0383210340 2015         NA 9.006947e-04       NA 6.470800
## 26       mercedCA  0.0066474095 2015         NA 6.092775e-05       NA 6.272877
## 27          newLA  0.2248326718 2015         NA 1.503696e-03       NA 6.538140
## 28     oklahomaOK -0.0033861680 2015         NA 2.205840e-04       NA 6.285998
## 29       peoriaIL -0.0733140426 2015         NA 2.062049e-04       NA 6.113682
## 30       racineWI -0.0120267034 2015         NA 1.815802e-03       NA 6.390241
## 31        rapidSD -0.0130801292 2015         NA 7.615571e-04       NA 6.289716
## 32      reddingCA  0.1342168399 2015         NA 2.245078e-03       NA 6.625392
## 33     rockfordIL -0.0335695881 2015         NA 5.984865e-04       NA 6.240276
## 34        salemOR -0.0534828627 2015         NA 6.485413e-04       NA 6.338594
## 35        southIN -0.0187356633 2015         NA 3.001781e-05       NA 6.331502
## 36     stocktonCA  0.0424924385 2015         NA 2.051219e-03       NA 6.466145
## 37       toledoOH -0.0937432199 2015         NA 4.732210e-04       NA 6.070738
## 38       topekaKS -0.0759119653 2015         NA 2.025825e-03       NA 6.093570
## 39       tucsonAZ -0.0865301495 2015         NA 5.140946e-04       NA 6.257668
## 40        tulsaOK -0.0237947498 2015         NA 4.830420e-04       NA 6.265301
## 41        tylerTX  0.0652251137 2015         NA 1.566758e-04       NA 6.456770
## 42        uticaNY  0.0842522197 2015         NA 1.455153e-03       NA 6.373320
## 43     victoriaTX -0.0203538277 2015         NA 5.420678e-04       NA 6.386879
## 44         wacoTX  0.0025317761 2015         NA 7.522860e-04       NA 6.232448
## 45       wausauWI -0.0314211163 2015         NA 1.327505e-03       NA 6.302619
## 46       yakimaWA -0.0466475184 2015         NA 2.148482e-03       NA 6.259581
## 47         yumaAZ  0.0185525968 2015         NA 7.408304e-05       NA 6.472346
##        sdid   sdid.i
## 1  6.354247 6.395898
## 2  6.336791 6.378425
## 3  6.331514 6.344798
## 4  6.409793 6.375365
## 5  6.314294 6.320385
## 6  6.323477 6.352746
## 7  6.327884 6.328038
## 8  6.397698 6.380230
## 9  6.329061 6.359132
## 10 6.386354 6.412522
## 11 6.324075 6.285413
## 12 6.313184 6.311507
## 13 6.324401 6.356904
## 14 6.330353 6.307971
## 15 6.322265 6.293826
## 16 6.314729 6.321035
## 17 6.326400 6.331311
## 18 6.327381 6.334447
## 19 6.370086 6.346423
## 20 6.334272 6.374615
## 21 6.322234 6.320280
## 22 6.336468 6.357486
## 23 6.324801 6.354962
## 24 6.333717 6.299375
## 25 6.348579 6.321598
## 26 6.395846 6.386920
## 27 6.437304 6.411448
## 28 6.315619 6.310205
## 29 6.321430 6.299265
## 30 6.345527 6.306489
## 31 6.357837 6.328933
## 32 6.409924 6.360199
## 33 6.330095 6.303825
## 34 6.369743 6.390823
## 35 6.315056 6.321183
## 36 6.458967 6.498670
## 37 6.331613 6.308449
## 38 6.325650 6.282289
## 39 6.413614 6.389687
## 40 6.329806 6.311175
## 41 6.334147 6.322213
## 42 6.308821 6.347259
## 43 6.334578 6.310275
## 44 6.319667 6.313925
## 45 6.307007 6.249347
## 46 6.358142 6.308783
## 47 6.405863 6.400017
Ballance.RENT$Chan<-Ballance.RENT$RENT_0-Ballance.RENT$sdid.i
MSAi<-filter(Ballance.RENT,NS=="newLA")

#############LTNFS THAN 2*LA_MSE####################
SMALL.STATE.TNF<-left_join(STATE.LOW.MSE.15[,1:2],Ballance.RENT,by=c("NS"))

ggplot(SMALL.STATE.TNF)+geom_line(aes(x=YEAR,y=Chan,group=NS),colour="grey")+
  geom_line(data = MSAi,aes(x=YEAR,y=Chan, colour="black"))+
  ggtitle("Permutation Test of RENT 0")+theme_bw()+theme(legend.position = "none")+
  geom_vline(xintercept = 2005,linetype=2)+
  ylab("Gap in RENT 0")

RENT 1

Ballance.RENT<-left_join(unq,RENT.merge2,by=c("YEAR","NS"))
Ballance.RENT<-Ballance.RENT%>%
  group_by(NS)%>%
  filter(!any(is.na(RENT_1)))

ST<-unique(Ballance.RENT$NS)
n<-length(ST)
RESULT<-data.frame(NS=rep(ST,1))
SE<-data.frame(SE=rep(0,1))
Ballance.RENT$sdid<-0
Ballance.RENT$sdid.i<-0
j=1

for(i in 1:n){
  a_date<-2001:2015 ## ALL DATE
  aft<-2006:2015 ##AFTER TREATEMENT
  nbef<-length(a_date)-length(aft)
  
  Ballance.RENT$lg<-log(Ballance.RENT$RENT_1)
  Ballance.RENT$Treat<-ifelse(Ballance.RENT$YEAR>2005 & Ballance.RENT$NS==ST[i],1,0)
  Ballance.RENT$NS<-factor(Ballance.RENT$NS)
  Ballance.RENT<-data.frame(Ballance.RENT)
  
  # SDID PAN

  panelp<-panel.matrices(Ballance.RENT,unit = "NS",time = "YEAR",outcome = "lg",treatment = "Treat")
  
  sydid<-synthdid_estimate(Y=panelp$Y,N0 = panelp$N0,T0 = panelp$T0)
  
  plot(sydid)
  RESULT$ave_trea[i+((j-1)*n)]=summary(sydid)$estimate
  RESULT$time[i+((j-1)*n)]=as.character(aft[length(aft)])

  weights = attr(sydid, "weights")
  Y = panelp$Y
  T0 = panelp$T0; T1 = ncol(Y) - T0
  N0 = panelp$N0; N1 = nrow(Y) - N0
  omega.synth = c(weights$omega, rep(0, N1))
  omega.synth = c(weights$omega, rep(0, N1))
  omega.target = c(rep(0, N0), rep(1 / N1, N1))
  lambda.synth = c(weights$lambda, rep(0, T1))
  lambda.target = c(rep(0, T0), rep(1 / T1, T1))
  #over = attr(sydid, 'overlay')
  over=1
  intercept.offset = over * c((omega.target - omega.synth) %*% Y %*% lambda.synth)
  obs.trajectory = as.numeric(omega.target %*% Y)
  syn.trajectory.i = as.numeric(omega.synth %*% Y) + intercept.offset
  syn.trajectory=as.numeric(omega.synth %*% Y)
  #plot(sydid)
  residu<-syn.trajectory-obs.trajectory
  redidu.2<-syn.trajectory.i-obs.trajectory
  residu_pre<-sqrt(mean(residu[1:nbef]^2))      #MSE
  residu_pre2<-sqrt(mean(redidu.2[1:nbef]^2))  #MSE
  leng=length(residu)
  
  #PENGS
  Ballance.RENT$sdid[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory.i
  Ballance.RENT$sdid.i[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory
  
  residu_post<-sqrt(mean(residu[nbef+1:leng]^2))
  RESULT$Ratio_RMSE[i+((j-1)*n)]<-residu_post/residu_pre
  RESULT$MSE_pre[i+((j-1)*n)]<-residu_pre^2
  RESULT$MSE_post[i+((j-1)*n)]<-residu_post^2
  RESULT$TRUE_VAL[i+((j-1)*n)]<-obs.trajectory[leng]
  RESULT$sdid[i+((j-1)*n)]<-syn.trajectory[leng]
  RESULT$sdid.i[i+((j-1)*n)]<- syn.trajectory.i[leng]
}

MSAResult<-filter(RESULT,NS=="newLA")

STATE.LOW.MSE.15<-filter(RESULT,MSE_pre<1.5*MSAResult$MSE_pre[1])
print(STATE.LOW.MSE.15)
##                NS      ave_trea time Ratio_RMSE      MSE_pre MSE_post TRUE_VAL
## 1        athensGA  0.0131596634 2015         NA 1.123340e-05       NA 6.476972
## 2         chicoCA  0.0486034500 2015         NA 7.159988e-04       NA 6.555357
## 3            elTX -0.0402903155 2015         NA 9.620623e-04       NA 6.546785
## 4        elmiraNY  0.0705450611 2015         NA 3.346819e-04       NA 6.424869
## 5        eugeneOR -0.0436507965 2015         NA 8.939641e-06       NA 6.487684
## 6          fortIN -0.0769559017 2015         NA 2.753422e-04       NA 6.354370
## 7         greenWI -0.0323133156 2015         NA 3.505358e-04       NA 6.410175
## 8    greenvilleNC -0.0285672934 2015         NA 1.261945e-04       NA 6.354370
## 9    huntsvilleAL -0.0028588165 2015         NA 3.628288e-04       NA 6.428105
## 10      jacksonMI -0.0245857336 2015         NA 1.910589e-04       NA 6.390241
## 11 jacksonvilleNC  0.0478874200 2015         NA 4.417496e-04       NA 6.533789
## 12     kankakeeIL -0.0566555968 2015         NA 4.853366e-04       NA 6.594413
## 13      killeenTX  0.0087179046 2015         NA 7.529162e-04       NA 6.426488
## 14       kokomoIN -0.0611830529 2015         NA 9.154583e-04       NA 6.313548
## 15     lawrenceKS -0.0036436987 2015         NA 3.382559e-05       NA 6.501290
## 16    lexingtonKY -0.0262640604 2015         NA 2.698130e-04       NA 6.452049
## 17      lincolnNE -0.0622565188 2015         NA 1.273370e-03       NA 6.343880
## 18      medfordOR -0.0205608671 2015         NA 6.441499e-04       NA 6.481577
## 19       mobileAL  0.0388220272 2015         NA 2.002257e-04       NA 6.549651
## 20      modestoCA  0.0239678249 2015         NA 4.360563e-04       NA 6.635947
## 21          newLA  0.2337054115 2015         NA 1.237532e-03       NA 6.706862
## 22       peoriaIL -0.0289457411 2015         NA 1.510632e-04       NA 6.383507
## 23       puebloCO -0.0906947322 2015         NA 1.621997e-04       NA 6.378426
## 24       racineWI -0.0860446217 2015         NA 4.314275e-04       NA 6.396930
## 25        rapidSD -0.0006846603 2015         NA 6.044635e-04       NA 6.456770
## 26    rochesterMN -0.0558464068 2015         NA 1.788391e-03       NA 6.448889
## 27        salemOR -0.0815062394 2015         NA 4.334301e-04       NA 6.393591
## 28      shermanTX  0.0328258874 2015         NA 1.112581e-03       NA 6.511745
## 29           stMN  0.0029771059 2015         NA 5.263050e-04       NA 6.450470
## 30     stocktonCA  0.0479283195 2015         NA 1.381270e-04       NA 6.641182
## 31       toledoOH -0.0742190657 2015         NA 4.393110e-04       NA 6.317165
## 32       tucsonAZ -0.0722891797 2015         NA 5.334558e-05       NA 6.480045
## 33        tulsaOK -0.0103860260 2015         NA 1.070329e-03       NA 6.459904
## 34        tylerTX  0.0755130207 2015         NA 5.893076e-04       NA 6.617403
## 35       yakimaWA -0.0525540244 2015         NA 6.080926e-05       NA 6.458338
## 36         yorkPA  0.0245173321 2015         NA 1.304827e-04       NA 6.504288
## 37         yumaAZ -0.0037969296 2015         NA 1.037578e-03       NA 6.539586
##        sdid   sdid.i
## 1  6.465948 6.470694
## 2  6.575458 6.554683
## 3  6.451547 6.476413
## 4  6.454633 6.439335
## 5  6.555194 6.554291
## 6  6.453304 6.436254
## 7  6.452522 6.434116
## 8  6.444150 6.426745
## 9  6.455704 6.431521
## 10 6.463022 6.452886
## 11 6.459760 6.437244
## 12 6.528668 6.509717
## 13 6.470089 6.442027
## 14 6.459276 6.429371
## 15 6.465847 6.471060
## 16 6.457680 6.472961
## 17 6.463791 6.429152
## 18 6.506485 6.532070
## 19 6.464434 6.478577
## 20 6.639739 6.662554
## 21 6.571283 6.557147
## 22 6.453498 6.440498
## 23 6.466582 6.472266
## 24 6.509150 6.538173
## 25 6.490340 6.463379
## 26 6.623424 6.578972
## 27 6.522274 6.540059
## 28 6.484813 6.461919
## 29 6.455500 6.431950
## 30 6.644753 6.645958
## 31 6.452197 6.467380
## 32 6.579088 6.572422
## 33 6.477396 6.446785
## 34 6.480585 6.468335
## 35 6.502836 6.508268
## 36 6.464043 6.474360
## 37 6.578632 6.550302
Ballance.RENT$Chan<-Ballance.RENT$RENT_1-Ballance.RENT$sdid.i
MSAi<-filter(Ballance.RENT,NS=="newLA")

#############LTNFS THAN 2*LA_MSE####################
SMALL.STATE.TNF<-left_join(STATE.LOW.MSE.15[,1:2],Ballance.RENT,by=c("NS"))

ggplot(SMALL.STATE.TNF)+geom_line(aes(x=YEAR,y=Chan,group=NS),colour="grey")+
  geom_line(data = MSAi,aes(x=YEAR,y=Chan, colour="black"))+
  ggtitle("Permutation Test of RENT 1")+theme_bw()+theme(legend.position = "none")+
  geom_vline(xintercept = 2005,linetype=2)+
  ylab("Gap in RENT 1")

RENT 2

Ballance.RENT<-left_join(unq,RENT.merge2,by=c("YEAR","NS"))
Ballance.RENT<-Ballance.RENT%>%
  group_by(NS)%>%
  filter(!any(is.na(RENT_2)))

ST<-unique(Ballance.RENT$NS)
n<-length(ST)
RESULT<-data.frame(NS=rep(ST,1))
SE<-data.frame(SE=rep(0,1))
Ballance.RENT$sdid<-0
Ballance.RENT$sdid.i<-0
j=1

for(i in 1:n){
  a_date<-2001:2015 ## ALL DATE
  aft<-2006:2015 ##AFTER TREATEMENT
  nbef<-length(a_date)-length(aft)
  
  Ballance.RENT$lg<-log(Ballance.RENT$RENT_2)
  Ballance.RENT$Treat<-ifelse(Ballance.RENT$YEAR>2005 & Ballance.RENT$NS==ST[i],1,0)
  Ballance.RENT$NS<-factor(Ballance.RENT$NS)
  Ballance.RENT<-data.frame(Ballance.RENT)
  
  # SDID PAN

  panelp<-panel.matrices(Ballance.RENT,unit = "NS",time = "YEAR",outcome = "lg",treatment = "Treat")
  
  sydid<-synthdid_estimate(Y=panelp$Y,N0 = panelp$N0,T0 = panelp$T0)
  
  plot(sydid)
  RESULT$ave_trea[i+((j-1)*n)]=summary(sydid)$estimate
  RESULT$time[i+((j-1)*n)]=as.character(aft[length(aft)])

  weights = attr(sydid, "weights")
  Y = panelp$Y
  T0 = panelp$T0; T1 = ncol(Y) - T0
  N0 = panelp$N0; N1 = nrow(Y) - N0
  omega.synth = c(weights$omega, rep(0, N1))
  omega.synth = c(weights$omega, rep(0, N1))
  omega.target = c(rep(0, N0), rep(1 / N1, N1))
  lambda.synth = c(weights$lambda, rep(0, T1))
  lambda.target = c(rep(0, T0), rep(1 / T1, T1))
  #over = attr(sydid, 'overlay')
  over=1
  intercept.offset = over * c((omega.target - omega.synth) %*% Y %*% lambda.synth)
  obs.trajectory = as.numeric(omega.target %*% Y)
  syn.trajectory.i = as.numeric(omega.synth %*% Y) + intercept.offset
  syn.trajectory=as.numeric(omega.synth %*% Y)
  #plot(sydid)
  residu<-syn.trajectory-obs.trajectory
  redidu.2<-syn.trajectory.i-obs.trajectory
  residu_pre<-sqrt(mean(residu[1:nbef]^2))      #MSE
  residu_pre2<-sqrt(mean(redidu.2[1:nbef]^2))  #MSE
  leng=length(residu)
  
  #PENGS
  Ballance.RENT$sdid[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory.i
  Ballance.RENT$sdid.i[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory
  
  residu_post<-sqrt(mean(residu[nbef+1:leng]^2))
  RESULT$Ratio_RMSE[i+((j-1)*n)]<-residu_post/residu_pre
  RESULT$MSE_pre[i+((j-1)*n)]<-residu_pre^2
  RESULT$MSE_post[i+((j-1)*n)]<-residu_post^2
  RESULT$TRUE_VAL[i+((j-1)*n)]<-obs.trajectory[leng]
  RESULT$sdid[i+((j-1)*n)]<-syn.trajectory[leng]
  RESULT$sdid.i[i+((j-1)*n)]<- syn.trajectory.i[leng]
}

MSAResult<-filter(RESULT,NS=="newLA")

STATE.LOW.MSE.15<-filter(RESULT,MSE_pre<1.5*MSAResult$MSE_pre[1])
print(STATE.LOW.MSE.15)
##                NS     ave_trea time Ratio_RMSE      MSE_pre MSE_post TRUE_VAL
## 1        athensGA -0.008859669 2015         NA 1.624041e-03       NA 6.678342
## 2    birminghamAL  0.021149102 2015         NA 1.185221e-04       NA 6.738152
## 3         cedarIA -0.061622039 2015         NA 1.528517e-04       NA 6.678342
## 4         chicoCA  0.062280634 2015         NA 6.545749e-04       NA 6.831954
## 5            elTX -0.024627241 2015         NA 9.946446e-04       NA 6.758095
## 6        elmiraNY  0.082926486 2015         NA 4.620278e-04       NA 6.695799
## 7        eugeneOR -0.036257844 2015         NA 1.085952e-03       NA 6.783325
## 8  fayettevilleNC  0.023777101 2015         NA 1.914397e-04       NA 6.729824
## 9          fortIN -0.071607032 2015         NA 3.346542e-05       NA 6.598509
## 10        greenWI -0.039167883 2015         NA 2.697221e-04       NA 6.690842
## 11   greenvilleNC -0.040226752 2015         NA 5.232779e-04       NA 6.610696
## 12   huntsvilleAL -0.004726361 2015         NA 1.551983e-03       NA 6.638568
## 13      jacksonMI -0.018073264 2015         NA 5.620388e-05       NA 6.651572
## 14      jacksonTN -0.007132473 2015         NA 8.115198e-04       NA 6.593045
## 15     kankakeeIL -0.051656626 2015         NA 1.550628e-03       NA 6.872128
## 16      killeenTX  0.012334369 2015         NA 6.593346e-05       NA 6.712956
## 17       kokomoIN -0.054307666 2015         NA 5.495895e-05       NA 6.616065
## 18    lexingtonKY  0.010056984 2015         NA 1.866469e-04       NA 6.721426
## 19      lincolnNE -0.064729237 2015         NA 2.544865e-04       NA 6.621406
## 20      lubbockTX  0.023209165 2015         NA 7.801887e-04       NA 6.688355
## 21     missoulaMT -0.002023518 2015         NA 1.498444e-04       NA 6.672033
## 22       mobileAL  0.025514264 2015         NA 1.598135e-03       NA 6.720220
## 23      modestoCA  0.042031741 2015         NA 2.972249e-04       NA 6.884487
## 24   montgomeryAL  0.024555505 2015         NA 2.585868e-05       NA 6.739337
## 25          newLA  0.226703441 2015         NA 1.143720e-03       NA 6.920672
## 26        ocalaFL  0.084229739 2015         NA 1.043343e-03       NA 6.735780
## 27     oklahomaOK  0.011462098 2015         NA 1.231783e-03       NA 6.682109
## 28       panamaFL  0.122030049 2015         NA 1.287310e-04       NA 6.851185
## 29    pensacolaFL  0.093185579 2015         NA 8.605136e-04       NA 6.783325
## 30       peoriaIL -0.045762307 2015         NA 1.704812e-03       NA 6.633318
## 31        provoUT -0.070584949 2015         NA 3.590071e-04       NA 6.683361
## 32       puebloCO -0.078948789 2015         NA 2.043249e-05       NA 6.647688
## 33        rapidSD -0.005785021 2015         NA 6.222661e-04       NA 6.746412
## 34      roanokeVA -0.005976932 2015         NA 9.722979e-05       NA 6.669498
## 35    rochesterMN -0.062134423 2015         NA 7.521821e-04       NA 6.747587
## 36        salemOR -0.063420666 2015         NA 8.451750e-04       NA 6.693324
## 37      shermanTX  0.046514138 2015         NA 1.242629e-04       NA 6.769642
## 38      spokaneWA -0.016240440 2015         NA 1.311115e-04       NA 6.706862
## 39  springfieldIL -0.019822549 2015         NA 3.660463e-04       NA 6.659294
## 40     stocktonCA  0.054504149 2015         NA 3.159069e-04       NA 6.912743
## 41       toledoOH -0.053997539 2015         NA 1.456339e-05       NA 6.588926
## 42        tulsaOK -0.022250406 2015         NA 2.862850e-04       NA 6.725034
## 43   tuscaloosaAL  0.041393250 2015         NA 1.635123e-03       NA 6.694562
## 44        tylerTX  0.060682945 2015         NA 4.022768e-05       NA 6.787845
## 45     victoriaTX  0.006715055 2015         NA 4.739901e-04       NA 6.685861
## 46         wacoTX  0.021097846 2015         NA 4.605863e-05       NA 6.695799
## 47      wichitaKS -0.066600835 2015         NA 8.289983e-05       NA 6.652863
## 48       yakimaWA -0.050571632 2015         NA 6.170509e-04       NA 6.711740
## 49         yorkPA  0.033080391 2015         NA 1.036832e-03       NA 6.786717
## 50         yumaAZ  0.014210866 2015         NA 1.534510e-03       NA 6.816736
##        sdid   sdid.i
## 1  6.697829 6.740105
## 2  6.700296 6.711166
## 3  6.682271 6.699273
## 4  6.823599 6.798315
## 5  6.700468 6.666078
## 6  6.686621 6.668234
## 7  6.798969 6.830903
## 8  6.681260 6.672377
## 9  6.697903 6.692983
## 10 6.692695 6.709264
## 11 6.684925 6.700188
## 12 6.691693 6.648038
## 13 6.695001 6.689422
## 14 6.685432 6.664427
## 15 6.758231 6.798982
## 16 6.705993 6.714297
## 17 6.699675 6.706749
## 18 6.705076 6.690536
## 19 6.699956 6.716274
## 20 6.710993 6.684558
## 21 6.742087 6.731144
## 22 6.696885 6.659352
## 23 6.875878 6.862999
## 24 6.699460 6.695956
## 25 6.801632 6.778075
## 26 6.700405 6.668060
## 27 6.685864 6.653252
## 28 6.699257 6.688924
## 29 6.700076 6.671021
## 30 6.687609 6.725318
## 31 6.744449 6.763173
## 32 6.744696 6.748230
## 33 6.731539 6.753560
## 34 6.675870 6.693861
## 35 6.862801 6.888617
## 36 6.752059 6.775445
## 37 6.664947 6.679702
## 38 6.731790 6.723694
## 39 6.696975 6.677497
## 40 6.881051 6.897382
## 41 6.696172 6.697253
## 42 6.706233 6.724499
## 43 6.701860 6.663371
## 44 6.674162 6.682457
## 45 6.664987 6.674966
## 46 6.701709 6.698141
## 47 6.699360 6.708179
## 48 6.746381 6.771253
## 49 6.708565 6.741510
## 50 6.823788 6.783619
Ballance.RENT$Chan<-Ballance.RENT$RENT_2-Ballance.RENT$sdid.i
MSAi<-filter(Ballance.RENT,NS=="newLA")

#############LTNFS THAN 2*LA_MSE####################
SMALL.STATE.TNF<-left_join(STATE.LOW.MSE.15[,1:2],Ballance.RENT,by=c("NS"))

ggplot(SMALL.STATE.TNF)+geom_line(aes(x=YEAR,y=Chan,group=NS),colour="grey")+
  geom_line(data = MSAi,aes(x=YEAR,y=Chan, colour="black"))+
  ggtitle("Permutation Test of RENT 2")+theme_bw()+theme(legend.position = "none")+
  geom_vline(xintercept = 2005,linetype=2)+
  ylab("Gap in RENT 2")

RENT 3

Ballance.RENT<-left_join(unq,RENT.merge2,by=c("YEAR","NS"))
Ballance.RENT<-Ballance.RENT%>%
  group_by(NS)%>%
  filter(!any(is.na(RENT_3)))

ST<-unique(Ballance.RENT$NS)
n<-length(ST)
RESULT<-data.frame(NS=rep(ST,1))
SE<-data.frame(SE=rep(0,1))
Ballance.RENT$sdid<-0
Ballance.RENT$sdid.i<-0
j=1

for(i in 1:n){
  a_date<-2001:2015 ## ALL DATE
  aft<-2006:2015 ##AFTER TREATEMENT
  nbef<-length(a_date)-length(aft)
  
  Ballance.RENT$lg<-log(Ballance.RENT$RENT_3)
  Ballance.RENT$Treat<-ifelse(Ballance.RENT$YEAR>2005 & Ballance.RENT$NS==ST[i],1,0)
  Ballance.RENT$NS<-factor(Ballance.RENT$NS)
  Ballance.RENT<-data.frame(Ballance.RENT)
  
  # SDID PAN

  panelp<-panel.matrices(Ballance.RENT,unit = "NS",time = "YEAR",outcome = "lg",treatment = "Treat")
  
  sydid<-synthdid_estimate(Y=panelp$Y,N0 = panelp$N0,T0 = panelp$T0)
  
  plot(sydid)
  RESULT$ave_trea[i+((j-1)*n)]=summary(sydid)$estimate
  RESULT$time[i+((j-1)*n)]=as.character(aft[length(aft)])

  weights = attr(sydid, "weights")
  Y = panelp$Y
  T0 = panelp$T0; T1 = ncol(Y) - T0
  N0 = panelp$N0; N1 = nrow(Y) - N0
  omega.synth = c(weights$omega, rep(0, N1))
  omega.synth = c(weights$omega, rep(0, N1))
  omega.target = c(rep(0, N0), rep(1 / N1, N1))
  lambda.synth = c(weights$lambda, rep(0, T1))
  lambda.target = c(rep(0, T0), rep(1 / T1, T1))
  #over = attr(sydid, 'overlay')
  over=1
  intercept.offset = over * c((omega.target - omega.synth) %*% Y %*% lambda.synth)
  obs.trajectory = as.numeric(omega.target %*% Y)
  syn.trajectory.i = as.numeric(omega.synth %*% Y) + intercept.offset
  syn.trajectory=as.numeric(omega.synth %*% Y)
  #plot(sydid)
  residu<-syn.trajectory-obs.trajectory
  redidu.2<-syn.trajectory.i-obs.trajectory
  residu_pre<-sqrt(mean(residu[1:nbef]^2))      #MSE
  residu_pre2<-sqrt(mean(redidu.2[1:nbef]^2))  #MSE
  leng=length(residu)
  
  #PENGS
  Ballance.RENT$sdid[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory.i
  Ballance.RENT$sdid.i[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory
  
  residu_post<-sqrt(mean(residu[nbef+1:leng]^2))
  RESULT$Ratio_RMSE[i+((j-1)*n)]<-residu_post/residu_pre
  RESULT$MSE_pre[i+((j-1)*n)]<-residu_pre^2
  RESULT$MSE_post[i+((j-1)*n)]<-residu_post^2
  RESULT$TRUE_VAL[i+((j-1)*n)]<-obs.trajectory[leng]
  RESULT$sdid[i+((j-1)*n)]<-syn.trajectory[leng]
  RESULT$sdid.i[i+((j-1)*n)]<- syn.trajectory.i[leng]
}

MSAResult<-filter(RESULT,NS=="newLA")

STATE.LOW.MSE.15<-filter(RESULT,MSE_pre<1.5*MSAResult$MSE_pre[1])
print(STATE.LOW.MSE.15)
##                 NS     ave_trea time Ratio_RMSE      MSE_pre MSE_post TRUE_VAL
## 1          akronOH -0.075394702 2015         NA 4.951751e-03       NA 6.980076
## 2       amarilloTX  0.034498384 2015         NA 5.499008e-03       NA 6.985642
## 3      ashevilleNC -0.043471253 2015         NA 3.414263e-03       NA 7.073270
## 4         athensGA -0.029299151 2015         NA 6.160076e-03       NA 6.982863
## 5    bakersfieldCA  0.045459060 2015         NA 2.027518e-03       NA 7.170888
## 6      baltimoreMD  0.103359299 2015         NA 1.636443e-03       NA 7.361375
## 7       billingsMT -0.007563148 2015         NA 4.058631e-03       NA 6.967909
## 8     birminghamAL  0.020397682 2015         NA 5.205128e-04       NA 7.011214
## 9       bismarckND -0.032510371 2015         NA 6.052217e-03       NA 7.046647
## 10         cedarIA -0.089353582 2015         NA 4.690621e-03       NA 6.981935
## 11     champaignIL -0.034132765 2015         NA 6.124255e-03       NA 7.011214
## 12    charlestonWV -0.054306546 2015         NA 5.098173e-03       NA 6.903747
## 13      cheyenneWY  0.072013198 2015         NA 4.522437e-04       NA 7.001246
## 14         chicoCA  0.065006203 2015         NA 8.905614e-05       NA 7.187657
## 15      columbiaMO -0.016433845 2015         NA 1.107773e-05       NA 7.002156
## 16      columbiaSC -0.029375079 2015         NA 1.433834e-03       NA 6.999422
## 17      columbusOH -0.028453851 2015         NA 3.414664e-03       NA 7.012115
## 18       decaturIL -0.008483871 2015         NA 9.801094e-03       NA 6.909753
## 19       detroitMI -0.074950518 2015         NA 4.110705e-03       NA 7.100027
## 20         doverDE  0.121439548 2015         NA 7.416866e-03       NA 7.326466
## 21           eauWI  0.022902528 2015         NA 3.899630e-03       NA 7.077498
## 22            elTX -0.018257605 2015         NA 2.247288e-04       NA 7.106606
## 23       elkhartIN -0.036847168 2015         NA 3.189092e-04       NA 6.937314
## 24        elmiraNY  0.086492078 2015         NA 5.307166e-03       NA 6.944087
## 25        eugeneOR -0.032963664 2015         NA 4.936572e-03       NA 7.147559
## 26  fayettevilleNC  0.005530193 2015         NA 7.716054e-04       NA 7.020191
## 27          fortIN -0.060470048 2015         NA 6.366939e-03       NA 6.850126
## 28        fresnoCA  0.108465129 2015         NA 7.731031e-03       NA 7.143618
## 29         glensNY  0.123682339 2015         NA 1.199360e-04       NA 7.094235
## 30         grandCO  0.047016216 2015         NA 6.438109e-04       NA 7.094235
## 31         greenWI -0.045373082 2015         NA 5.659127e-03       NA 7.047517
## 32    greenvilleNC -0.055915716 2015         NA 1.527264e-03       NA 6.914731
## 33    hagerstownMD  0.071409261 2015         NA 5.676804e-03       NA 7.134891
## 34    huntsvilleAL  0.013256634 2015         NA 3.249246e-03       NA 6.957497
## 35  indianapolisIN -0.034240174 2015         NA 4.694247e-03       NA 7.023759
## 36       jacksonMI  0.015066958 2015         NA 6.296048e-03       NA 6.969791
## 37       jacksonMS  0.006474392 2015         NA 8.586910e-06       NA 6.950815
## 38       jacksonTN -0.016976345 2015         NA 5.939818e-04       NA 6.880384
## 39  jacksonvilleNC  0.066433428 2015         NA 2.674817e-03       NA 7.080868
## 40    janesvilleWI -0.036680747 2015         NA 2.915257e-04       NA 6.911747
## 41      kankakeeIL -0.027598199 2015         NA 2.322230e-05       NA 7.213768
## 42       killeenTX  0.022522821 2015         NA 4.719347e-03       NA 7.100852
## 43     knoxvilleTN  0.027312454 2015         NA 1.477847e-03       NA 7.006695
## 44        kokomoIN -0.034367297 2015         NA 1.988028e-03       NA 6.908755
## 45     lancasterPA  0.036524455 2015         NA 1.827241e-03       NA 7.063904
## 46        laredoTX  0.032777361 2015         NA 6.922844e-03       NA 6.977281
## 47     lexingtonKY  0.012114078 2015         NA 3.479043e-04       NA 7.074963
## 48       lincolnNE -0.064145192 2015         NA 2.266977e-03       NA 6.950815
## 49       lubbockTX  0.028694841 2015         NA 9.803807e-04       NA 7.066467
## 50        mercedCA  0.041875292 2015         NA 1.329204e-03       NA 7.082549
## 51     milwaukeeWI -0.059959324 2015         NA 5.214435e-03       NA 7.041412
## 52      missoulaMT  0.018294807 2015         NA 9.419248e-04       NA 7.032624
## 53        mobileAL  0.026859392 2015         NA 2.854012e-03       NA 7.013016
## 54       modestoCA  0.049777229 2015         NA 1.336647e-03       NA 7.272398
## 55    montgomeryAL  0.026795900 2015         NA 2.227444e-05       NA 7.057898
## 56        myrtleSC -0.025668235 2015         NA 2.898854e-03       NA 6.957497
## 57           newLA  0.211123961 2015         NA 7.038017e-03       NA 7.147559
## 58         ocalaFL  0.082692126 2015         NA 6.918058e-04       NA 7.034388
## 59        odessaTX  0.119383964 2015         NA 5.007503e-03       NA 7.138073
## 60      oklahomaOK  0.009042989 2015         NA 3.159048e-04       NA 6.995766
## 61       orlandoFL -0.015310250 2015         NA 4.084911e-03       NA 7.246368
## 62        panamaFL  0.123485390 2015         NA 1.439754e-04       NA 7.160069
## 63     pensacolaFL  0.081078968 2015         NA 9.761404e-04       NA 7.081709
## 64        peoriaIL -0.043914512 2015         NA 1.726858e-04       NA 6.890609
## 65    pittsburghPA -0.059785529 2015         NA 2.261847e-04       NA 6.971669
## 66         provoUT -0.070698554 2015         NA 7.749611e-03       NA 7.051856
## 67        puebloCO -0.053722425 2015         NA 2.347015e-04       NA 7.005789
## 68        racineWI -0.059622623 2015         NA 9.091267e-05       NA 6.967909
## 69         rapidSD  0.014089580 2015         NA 5.383157e-05       NA 7.046647
## 70       readingPA  0.030036644 2015         NA 1.155727e-03       NA 7.044905
## 71       reddingCA  0.106651267 2015         NA 3.508770e-05       NA 7.270313
## 72      richmondVA -0.055320544 2015         NA 3.331436e-03       NA 7.174724
## 73       roanokeVA -0.043514969 2015         NA 9.449851e-04       NA 6.939254
## 74     rochesterMN -0.090113321 2015         NA 4.650843e-04       NA 7.039660
## 75     rochesterNY -0.034263327 2015         NA 8.458093e-03       NA 7.060476
## 76      rockfordIL -0.017291637 2015         NA 4.832227e-04       NA 6.982863
## 77         rockyNC -0.070408634 2015         NA 8.275613e-03       NA 6.860664
## 78    sacramentoCA -0.056749602 2015         NA 5.771901e-03       NA 7.377759
## 79         salemOR -0.050229171 2015         NA 2.826235e-03       NA 7.080868
## 80       shermanTX  0.056258825 2015         NA 3.002019e-03       NA 7.067320
## 81         southIN -0.055199476 2015         NA 6.866724e-04       NA 6.932448
## 82       spokaneWA -0.004938619 2015         NA 1.837462e-05       NA 7.064759
## 83   springfieldIL -0.023532365 2015         NA 1.007393e-03       NA 6.927558
## 84   springfieldMO -0.015107121 2015         NA 4.437283e-03       NA 6.932448
## 85            stMN -0.005114282 2015         NA 2.121627e-03       NA 6.908755
## 86         statePA  0.040830404 2015         NA 8.989471e-03       NA 7.130099
## 87      stocktonCA  0.071688855 2015         NA 1.182795e-03       NA 7.300473
## 88      syracuseNY -0.065951889 2015         NA 5.259351e-03       NA 7.002156
## 89        toledoOH -0.046026754 2015         NA 3.663138e-04       NA 6.887553
## 90        topekaKS -0.041996434 2015         NA 2.326227e-03       NA 6.957497
## 91         tulsaOK -0.021861957 2015         NA 5.664761e-04       NA 7.029973
## 92    tuscaloosaAL  0.006953750 2015         NA 9.202572e-04       NA 6.921658
## 93         tylerTX  0.046939980 2015         NA 1.151386e-05       NA 7.070724
## 94      victoriaTX -0.005717127 2015         NA 5.477658e-03       NA 6.905753
## 95          wacoTX  0.024186949 2015         NA 2.351416e-03       NA 6.966024
## 96        wausauWI -0.012063023 2015         NA 4.672136e-03       NA 6.949856
## 97       wichitaKS -0.054274397 2015         NA 3.330436e-04       NA 6.974479
## 98       wichitaTX  0.034546982 2015         NA 5.733643e-03       NA 6.983790
## 99        yakimaWA -0.053767157 2015         NA 4.513514e-04       NA 7.000334
## 100         yorkPA  0.050116729 2015         NA 3.327104e-03       NA 7.043160
## 101         yubaCA  0.080152590 2015         NA 6.532829e-03       NA 7.172425
## 102         yumaAZ  0.021691963 2015         NA 4.454455e-05       NA 7.204149
##         sdid   sdid.i
## 1   7.035097 7.105965
## 2   7.011507 6.940412
## 3   6.997123 7.056591
## 4   6.997375 7.078822
## 5   7.133409 7.089948
## 6   7.263882 7.255660
## 7   7.050528 6.985537
## 8   7.003662 6.978337
## 9   7.039222 6.956654
## 10  6.989487 7.068862
## 11  6.995464 7.063228
## 12  7.011090 6.937471
## 13  7.022988 6.981977
## 14  7.142366 7.151368
## 15  6.997131 7.000629
## 16  7.001518 7.039213
## 17  6.998522 7.054528
## 18  6.990453 6.892812
## 19  7.095148 7.156171
## 20  7.004862 7.088077
## 21  6.992187 6.932120
## 22  7.008396 7.021812
## 23  6.991346 7.009076
## 24  6.986297 6.915543
## 25  7.116966 7.186431
## 26  6.991370 7.025268
## 27  6.996370 6.914531
## 28  7.177627 7.093637
## 29  6.980928 6.970035
## 30  7.053796 7.028508
## 31  6.990002 7.066001
## 32  7.001392 7.037923
## 33  7.158051 7.087796
## 34  7.006439 6.945738
## 35  6.992036 7.065530
## 36  6.989244 6.910377
## 37  7.004432 7.003179
## 38  7.005290 6.984364
## 39  6.996489 6.944801
## 40  6.994859 7.013626
## 41  7.063343 7.067017
## 42  7.013151 7.083305
## 43  6.999732 6.963904
## 44  6.995554 6.949842
## 45  7.009989 7.050389
## 46  7.011776 6.931707
## 47  6.997549 7.015174
## 48  6.998106 7.048313
## 49  7.008790 7.042084
## 50  7.146933 7.110783
## 51  7.042442 7.114444
## 52  7.050860 7.022448
## 53  7.000332 6.947399
## 54  7.191205 7.229770
## 55  6.998293 7.002913
## 56  6.999700 7.057410
## 57  7.149109 7.061869
## 58  7.001160 6.975792
## 59  7.008211 6.937486
## 60  6.969845 6.978415
## 61  7.198117 7.257487
## 62  6.984358 7.005738
## 63  6.991652 7.027649
## 64  7.002230 6.979831
## 65  7.031870 7.047227
## 66  7.048739 7.137688
## 67  7.047517 7.029726
## 68  7.046478 7.039036
## 69  7.036702 7.029399
## 70  7.005291 7.042581
## 71  7.115574 7.122494
## 72  7.184646 7.239025
## 73  6.997425 7.006881
## 74  7.193619 7.212003
## 75  6.982036 7.072922
## 76  6.990488 7.012236
## 77  6.997601 6.915837
## 78  7.373180 7.477589
## 79  7.085511 7.136377
## 80  6.977727 6.964259
## 81  6.993583 7.019456
## 82  7.045293 7.043874
## 83  6.995089 6.962145
## 84  6.993395 6.933794
## 85  6.991732 6.953644
## 86  7.004979 7.094506
## 87  7.198949 7.231255
## 88  6.984646 7.059244
## 89  6.996490 6.976984
## 90  7.002390 6.953611
## 91  7.007300 7.030566
## 92  6.996062 6.965792
## 93  7.003689 7.008698
## 94  7.010992 6.938321
## 95  7.005550 6.957253
## 96  6.995817 6.927238
## 97  7.001554 6.981238
## 98  7.005504 6.935195
## 99  7.052266 7.072967
## 100 7.008620 6.950502
## 101 7.136904 7.057850
## 102 7.143104 7.147883
Ballance.RENT$Chan<-Ballance.RENT$RENT_3-Ballance.RENT$sdid.i
MSAi<-filter(Ballance.RENT,NS=="newLA")

#############LTNFS THAN 2*LA_MSE####################
SMALL.STATE.TNF<-left_join(STATE.LOW.MSE.15[,1:2],Ballance.RENT,by=c("NS"))

ggplot(SMALL.STATE.TNF)+geom_line(aes(x=YEAR,y=Chan,group=NS),colour="grey")+
  geom_line(data = MSAi,aes(x=YEAR,y=Chan, colour="black"))+
  ggtitle("Permutation Test of RENT 3")+theme_bw()+theme(legend.position = "none")+
  geom_vline(xintercept = 2005,linetype=2)+
  ylab("Gap in RENT 3")

RENT 4

Ballance.RENT<-left_join(unq,RENT.merge2,by=c("YEAR","NS"))
Ballance.RENT<-Ballance.RENT%>%
  group_by(NS)%>%
  filter(!any(is.na(RENT_4)))

ST<-unique(Ballance.RENT$NS)
n<-length(ST)
RESULT<-data.frame(NS=rep(ST,1))
SE<-data.frame(SE=rep(0,1))
Ballance.RENT$sdid<-0
Ballance.RENT$sdid.i<-0
j=1

for(i in 1:n){
  a_date<-2001:2015 ## ALL DATE
  aft<-2006:2015 ##AFTER TREATEMENT
  nbef<-length(a_date)-length(aft)

  
  Ballance.RENT$lg<-log(Ballance.RENT$RENT_4)
  Ballance.RENT$Treat<-ifelse(Ballance.RENT$YEAR>2005 & Ballance.RENT$NS==ST[i],1,0)
  Ballance.RENT$NS<-factor(Ballance.RENT$NS)
  Ballance.RENT<-data.frame(Ballance.RENT)
  
  # SDID PAN

  panelp<-panel.matrices(Ballance.RENT,unit = "NS",time = "YEAR",outcome = "lg",treatment = "Treat")
  
  sydid<-synthdid_estimate(Y=panelp$Y,N0 = panelp$N0,T0 = panelp$T0)
  
  plot(sydid)
  RESULT$ave_trea[i+((j-1)*n)]=summary(sydid)$estimate
  RESULT$time[i+((j-1)*n)]=as.character(aft[length(aft)])

  weights = attr(sydid, "weights")
  Y = panelp$Y
  T0 = panelp$T0; T1 = ncol(Y) - T0
  N0 = panelp$N0; N1 = nrow(Y) - N0
  omega.synth = c(weights$omega, rep(0, N1))
  omega.synth = c(weights$omega, rep(0, N1))
  omega.target = c(rep(0, N0), rep(1 / N1, N1))
  lambda.synth = c(weights$lambda, rep(0, T1))
  lambda.target = c(rep(0, T0), rep(1 / T1, T1))
  #over = attr(sydid, 'overlay')
  over=1
  intercept.offset = over * c((omega.target - omega.synth) %*% Y %*% lambda.synth)
  obs.trajectory = as.numeric(omega.target %*% Y)
  syn.trajectory.i = as.numeric(omega.synth %*% Y) + intercept.offset
  syn.trajectory=as.numeric(omega.synth %*% Y)
  #plot(sydid)
  residu<-syn.trajectory-obs.trajectory
  redidu.2<-syn.trajectory.i-obs.trajectory
  residu_pre<-sqrt(mean(residu[1:nbef]^2))      #MSE
  residu_pre2<-sqrt(mean(redidu.2[1:nbef]^2))  #MSE
  leng=length(residu)
  
  #PENGS
  Ballance.RENT$sdid[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory.i
  Ballance.RENT$sdid.i[((i-1)*length(a_date))+1:(length(a_date))]<-syn.trajectory
  
  residu_post<-sqrt(mean(residu[nbef+1:leng]^2))
  RESULT$Ratio_RMSE[i+((j-1)*n)]<-residu_post/residu_pre
  RESULT$MSE_pre[i+((j-1)*n)]<-residu_pre^2
  RESULT$MSE_post[i+((j-1)*n)]<-residu_post^2
  RESULT$TRUE_VAL[i+((j-1)*n)]<-obs.trajectory[leng]
  RESULT$sdid[i+((j-1)*n)]<-syn.trajectory[leng]
  RESULT$sdid.i[i+((j-1)*n)]<- syn.trajectory.i[leng]
}

MSAResult<-filter(RESULT,NS=="newLA")

STATE.LOW.MSE.15<-filter(RESULT,MSE_pre<1.5*MSAResult$MSE_pre[1])
print(STATE.LOW.MSE.15)
##                NS     ave_trea time Ratio_RMSE      MSE_pre MSE_post TRUE_VAL
## 1       abileneTX  0.065023490 2015         NA 1.030630e-04       NA 7.314553
## 2         akronOH -0.088741037 2015         NA 6.661146e-04       NA 7.017506
## 3   bakersfieldCA  0.055522872 2015         NA 9.395686e-04       NA 7.359468
## 4     baltimoreMD  0.052611834 2015         NA 1.964805e-03       NA 7.446001
## 5      billingsMT -0.057652987 2015         NA 1.334539e-05       NA 6.971669
## 6    birminghamAL  0.029353111 2015         NA 2.088234e-03       NA 7.128496
## 7         cedarIA -0.099555000 2015         NA 1.139546e-03       NA 7.088409
## 8      columbiaMO -0.016612538 2015         NA 2.225041e-04       NA 7.192182
## 9      columbiaSC  0.007071935 2015         NA 1.177425e-03       NA 7.236339
## 10      elkhartIN -0.008040817 2015         NA 8.334138e-04       NA 7.099202
## 11 fayettevilleNC  0.032441365 2015         NA 8.889729e-04       NA 7.250636
## 12        glensNY  0.123564851 2015         NA 5.492007e-05       NA 7.226936
## 13        grandCO  0.031638906 2015         NA 9.254917e-04       NA 7.233455
## 14        greenWI -0.053098430 2015         NA 2.226114e-03       NA 7.074117
## 15   greenvilleNC -0.004863394 2015         NA 3.888557e-04       NA 7.182352
## 16   huntsvilleAL -0.031851418 2015         NA 2.968537e-04       NA 7.013016
## 17 indianapolisIN -0.018913289 2015         NA 2.787414e-04       NA 7.177782
## 18 jacksonvilleNC  0.070771168 2015         NA 6.493527e-06       NA 7.311218
## 19   janesvilleWI -0.041190234 2015         NA 1.497631e-03       NA 6.969791
## 20    knoxvilleTN -0.015129753 2015         NA 7.201438e-04       NA 7.122867
## 21    lancasterPA  0.028979744 2015         NA 7.369217e-05       NA 7.100027
## 22    lexingtonKY -0.006956524 2015         NA 1.183428e-05       NA 7.188413
## 23      lubbockTX  0.051061567 2015         NA 1.038756e-03       NA 7.207860
## 24       mercedCA  0.038451476 2015         NA 2.075867e-04       NA 7.266129
## 25    milwaukeeWI -0.057659516 2015         NA 9.738215e-04       NA 7.119636
## 26     missoulaMT  0.024704507 2015         NA 1.187672e-03       NA 7.243513
## 27       mobileAL  0.028101015 2015         NA 4.542829e-04       NA 7.152269
## 28       myrtleSC  0.000710373 2015         NA 4.832856e-05       NA 7.118016
## 29          newLA  0.203378580 2015         NA 1.683256e-03       NA 7.338888
## 30     oklahomaOK  0.015729477 2015         NA 6.699855e-04       NA 7.178545
## 31    pensacolaFL  0.108036262 2015         NA 1.568953e-03       NA 7.342132
## 32       peoriaIL -0.038806375 2015         NA 1.818318e-03       NA 7.072422
## 33   pittsburghPA -0.059933141 2015         NA 1.203732e-03       NA 7.034388
## 34       puebloCO -0.081903644 2015         NA 1.250061e-03       NA 7.082549
## 35        rapidSD  0.028256389 2015         NA 7.559584e-04       NA 7.317876
## 36      readingPA  0.035943473 2015         NA 1.056724e-03       NA 7.115582
## 37      reddingCA  0.088052901 2015         NA 5.177574e-04       NA 7.378384
## 38      roanokeVA -0.023341226 2015         NA 1.225172e-03       NA 7.064759
## 39    rochesterMN  0.004849134 2015         NA 3.300719e-04       NA 7.319202
## 40    rochesterNY -0.036398014 2015         NA 2.259100e-03       NA 7.126087
## 41     rockfordIL -0.001943367 2015         NA 4.011595e-04       NA 7.109879
## 42     savannahGA  0.043859732 2015         NA 3.353085e-04       NA 7.342132
## 43        southIN -0.056659139 2015         NA 5.778285e-04       NA 6.996681
## 44      spokaneWA -0.008463180 2015         NA 3.621430e-04       NA 7.190676
## 45  springfieldIL -0.050643270 2015         NA 1.593944e-04       NA 6.980076
## 46           stMN  0.017789835 2015         NA 4.016296e-04       NA 7.202661
## 47        statePA  0.036421194 2015         NA 1.434700e-03       NA 7.166266
## 48     syracuseNY -0.075953420 2015         NA 1.045546e-03       NA 7.095893
## 49        tulsaOK -0.028361415 2015         NA 9.283558e-04       NA 7.138073
## 50      wichitaKS -0.051173727 2015         NA 8.475918e-04       NA 7.071573
## 51       yakimaWA -0.032023116 2015         NA 7.967716e-04       NA 7.189168
## 52         yumaAZ  0.030999365 2015         NA 1.167737e-04       NA 7.340187
##        sdid   sdid.i
## 1  7.139935 7.129626
## 2  7.162179 7.186672
## 3  7.279139 7.259234
## 4  7.466511 7.498225
## 5  7.174589 7.176384
## 6  7.120927 7.072606
## 7  7.186970 7.250821
## 8  7.160374 7.177697
## 9  7.118255 7.151413
## 10 7.119376 7.087290
## 11 7.161833 7.194762
## 12 7.115374 7.110670
## 13 7.192470 7.223727
## 14 7.150738 7.106217
## 15 7.185047 7.154243
## 16 7.120396 7.135311
## 17 7.143758 7.162455
## 18 7.151825 7.153582
## 19 7.118550 7.079914
## 20 7.130616 7.104016
## 21 7.129307 7.118605
## 22 7.121149 7.117412
## 23 7.143026 7.111354
## 24 7.286139 7.300364
## 25 7.157816 7.186719
## 26 7.186071 7.220484
## 27 7.144491 7.124671
## 28 7.163489 7.172573
## 29 7.287187 7.241204
## 30 7.096027 7.118348
## 31 7.169725 7.214814
## 32 7.158637 7.183140
## 33 7.168241 7.132943
## 34 7.168381 7.200251
## 35 7.190724 7.170993
## 36 7.139739 7.107210
## 37 7.282745 7.309583
## 38 7.144182 7.109962
## 39 7.311898 7.289249
## 40 7.102682 7.148616
## 41 7.121453 7.096856
## 42 7.177682 7.209165
## 43 7.117405 7.091425
## 44 7.209138 7.194347
## 45 7.120915 7.108567
## 46 7.138556 7.160313
## 47 7.129453 7.161990
## 48 7.135529 7.169649
## 49 7.128671 7.156394
## 50 7.130340 7.101489
## 51 7.206901 7.182295
## 52 7.269407 7.281465
Ballance.RENT$Chan<-Ballance.RENT$RENT_4-Ballance.RENT$sdid.i
MSAi<-filter(Ballance.RENT,NS=="newLA")

#############LTNFS THAN 2*LA_MSE####################
SMALL.STATE.TNF<-left_join(STATE.LOW.MSE.15[,1:2],Ballance.RENT,by=c("NS"))

ggplot(SMALL.STATE.TNF)+geom_line(aes(x=YEAR,y=Chan,group=NS),colour="grey")+
  geom_line(data = MSAi,aes(x=YEAR,y=Chan, colour="black"))+
  ggtitle("Permutation Test of RENT 4")+theme_bw()+theme(legend.position = "none")+
  geom_vline(xintercept = 2005,linetype=2)+
  ylab("Gap in RENT 4")