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")
