Specifying Breaks for L1 Measure
by Lavelle, Bridget J (DSHS/RDA)
I am trying to understand why the imbalance command produces a univariate L1 measurement of 0 on a variable (readscore6) that has significant imbalance (ctl mean = 83.9, trt mean = 76.0, ttest p<.001, standardized mean difference from MatchIt = -1.5385). I figure this must be because of the automatic breakpoints, so I examine how the univariate L1 measure changes using the L1.profile command (dropping all other variables). The L1 reportedly varies from 0 to 0.59 in the sets of cutpoints examined. I replicate 3 of these L1 measurements precisely "by hand" and they seem correct. But when I add breaks to the imbalance command, I cannot replicate the L1 values produced in L1.profile. Any idea what is going on here? Thanks in advance for any insights.
Additional details follow:
Univariate L1 is 0, even though multivariate L1 is 0.563 and imbalance test is restricted to single variable "readscore6":
> imbalance(group=kids$trt,data=kids,drop=c("trt","readscore7","female","aptitude"))
Multivariate Imbalance Measure: L1=0.563
Percentage of local common support: LCS=57.1%
Univariate Imbalance Measures:
statistic type L1 min 25% 50% 75% max
readscore6 -16.45865 (diff) 0 -21 -18 -19 -21 -11
L1 varies between 0 and 0.59 in a small sample of sets of cutpoints:
> a<-L1.profile(group=kids$trt,data=kids,drop=c("trt","readscore7","female","aptitude"),M=5)
> a$L1
rnd(4) rnd(3) rnd(5) rnd(1) rnd(2)
0.0000000 0.4601504 0.4969925 0.5631579 0.5872180
> a$CP
$`rnd(4)`
$`rnd(4)`$readscore6
[1] 38 97
$`rnd(3)`
$`rnd(3)`$readscore6
[1] 38.00 52.75 67.50 82.25 97.00
$`rnd(5)`
$`rnd(5)`$readscore6
[1] 38.00000 57.66667 77.33333 97.00000
$`rnd(1)`
$`rnd(1)`$readscore6
[1] 38.00000 44.55556 51.11111 57.66667 64.22222 70.77778 77.33333 83.88889 90.44444 97.00000
$`rnd(2)`
$`rnd(2)`$readscore6
[1] 38.000 45.375 52.750 60.125 67.500 74.875 82.250 89.625 97.000
Cannot seem to replicate these L1 values in the imbalance command, specifying the same cutpoints:
E.g. specifying 2 cutpoints (1 bin) produces L1 of 0.563 (should be 0 according to L1.profile as well as my understanding of how L1 is calculated)
> imbalance(group=kids$trt,data=kids,drop=c("trt","readscore7","female","aptitude"),breaks=list((readscore6=c(38,97))))
Multivariate Imbalance Measure: L1=0.563
Percentage of local common support: LCS=57.1%
Univariate Imbalance Measures:
statistic type L1 min 25% 50% 75% max
readscore6 -16.45865 (diff) 0.5631579 -21 -18 -19 -21 -11
E.g. specifying 5 cutpoints (4 bins) produces L1 of 0.563 (should be 0.46 according to L1.profile)
> imbalance(group=kids$trt,data=kids,drop=c("trt","readscore7","female","aptitude"),breaks=list((readscore6=c(38.00,52.75,67.50,82.25,97.00))))
Multivariate Imbalance Measure: L1=0.563
Percentage of local common support: LCS=57.1%
Univariate Imbalance Measures:
statistic type L1 min 25% 50% 75% max
readscore6 -16.45865 (diff) 0.5631579 -21 -18 -19 -21 -11
Bridget Lavelle, Ph.D.
Senior Research Manager
Program Research and Evaluation Section
Research and Data Analysis Division
Department of Social and Health Services
PO Box 45204 Olympia, WA 98504-5204
Fax: (360) 902-0705
Email: Bridget.Lavelle(a)dshs.wa.gov<mailto:Bridget.Lavelle@dshs.wa.gov>
Telephone: (360) 902-0741