Im computing standardized differences (SD) to check balancing after i computed IPTW and stabilizing weights (SW) following http://onlinelibrary.wiley.com/doi/1.../sim.6607/full . When i compute SD for weighted case, for continuous variable according to given formula, i get SD in case of IPTW and stabilizing weights very similar (even though weights dont seem to be so similar) and for the case of dummies paper doesnt explicitly shows what is the formula (i wasnt successful in finding it in other literature) and by my calculation i get identical values for IPTW and SW. I used following code to compute them (both for continuous and dummy case). Am i making some computational error?
Code:
local continuous var1 var2 var3
tempvar w2 cm sddift sddifc
local w SWatt
//local w IPTWatt
foreach c of local continuous {
qui gen `w2' = `w'*`w'
qui gen `cm' = (`c'*`w')
qui sum `w' if treatment==1
scalar sumwt`w' = r(sum)
qui sum `w2' if treatment==1
scalar w2t = r(sum)
qui sum `cm' if treatment==1
scalar ctm`w' = r(sum)/sumwt`w'
qui gen `sddift' = (`c' - ctm`w')*(`c' - ctm`w')*`w'
qui sum `sddift' if treatment==1
scalar sddift`w' = r(sum)
scalar sdt2`w' = (sumwt`w'/(sumwt`w'*sumwt`w' - w2t))*sddift`w'
qui sum `w' if treatment==0
scalar sumwc`w' = r(sum)
qui sum `w2' if treatment==0
scalar w2c`w' = r(sum)
qui sum `cm' if treatment==0
scalar ccm`w' = r(sum)/sumwc`w'
qui gen `sddifc' = (`c' - ccm`w')*(`c' - ccm`w')*`w'
qui sum `sddifc' if treatment==0
scalar sddifc`w' = r(sum)
scalar sdc2`w' = (sumwc`w'/(sumwc`w'*sumwc`w' - w2c))*sddifc`w'
scalar `c'_`w' = ((ctm`w' - ccm`w')/(sqrt((sdt2`w' + sdc2`w')/2)))*100
scalar abs_`c'_`w' = abs(`c'_`w')
drop `w2' `cm' `sddift' `sddifc'
}
///
local dummy d1 d2 d3
tempvar w2 dm
local w IPTWatt
// local w SWatt
foreach d of local dummy {
qui gen `w2' = `w'*`w'
qui gen `dm' = (`d'*`w')
sum `dm'
qui sum `w' if treatment==1
scalar sumwt`w' = r(sum)
qui sum `w2' if treatment==1
scalar w2t`w' = r(sum)
qui sum `dm' if treatment==1
scalar dtm`w' = r(sum)/(sumwt`w'*r(N))
di dtm`w'
qui sum `w' if treatment==0
scalar sumwc`w' = r(sum)
qui sum `w2' if treatment==0
scalar w2c`w' = r(sum)
qui sum `dm' if treatment==0
scalar dcm`w' = r(sum)/(sumwc`w' * r(N))
scalar `d'_`w' = ((dtm`w' - dcm`w')/(sqrt((dtm`w'*(1-dtm`w')+dcm`w'*(1-dcm`w'))/2)))*100
scalar abs_`d'_`w' = abs(`d'_`w')
drop `w2' `dm'
}

Comment