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@dshs.wa.gov 

Telephone:  (360) 902-0741