Tabulate treatment:control ratios occurring in matched sets, and the frequency of their occurrence.

## Usage

```
stratumStructure(stratum, trtgrp = NULL, min.controls = 0, max.controls = Inf)
# S3 method for optmatch
stratumStructure(stratum, trtgrp, min.controls = 0, max.controls = Inf)
# S3 method for default
stratumStructure(stratum, trtgrp, min.controls = 0, max.controls = Inf)
# S3 method for stratumStructure
print(x, ...)
```

## Arguments

- stratum
- trtgrp
Dummy variable for treatment group membership. (Not required if

`stratum`

is an optmatch object, as returned by`fullmatch`

or`pairmatch`

.)- min.controls
For display, the number of treatment group members per stratum will be truncated at the reciprocal of

`min.controls`

.- max.controls
For display, the number of control group members will be truncated at

`max.controls`

.- x
stratumStructure object to be printed.

- ...
Additional arguments to

`print`

.

## Value

A table showing frequency of occurrence of those treatment:control ratios that occur.

The ‘effective sample size’ of the stratification, in matched pairs. Given as an attribute of the table, named

‘`comparable.num.matched.pairs`

’; see Note.

## Note

For comparing treatment and control groups both of size 10,
say, a stratification consisting of two strata, one with 9
treatments and 1 control, has a smaller ‘effective sample
size’, intuitively, than a stratification into 10 matched pairs,
despite the fact that both contain 20 subjects in
total. `stratumStructure`

first summarizes this aspect of
the structure of the stratification it is given, then goes on to
identify one number as the stratification's effective sample
size. The ‘`comparable.num.matched.pairs`

’
attribute returned by `stratumStructure`

is the sum of
harmonic means of the sizes of the treatment and control
subgroups of each stratum, a general way of calibrating such
differences as well as differences in the number of subjects
contained in a stratification. For example, by this metric the
9:1, 1:9 stratification is comparable to 3.6 matched pairs.

Why should effective sample size be calculated this way? The phrase ‘effective sample size’ suggests the observations are taken to be similar in information content. Modeling them as random variables, this suggests that they be assumed to have the same variance, \(\sigma\), conditional on what stratum they reside in. If that is the case, and if also treatment and control observations differ in expectation by a constant that is the same for each stratum, then it can be shown that the optimum weights with which to combine treatment-control contrasts across strata, \(s\), are proportional to the stratum-wise harmonic means of treatment and control counts, \(h_s = [(n_{ts}^{-1} + n_{cs}^{-1})/2]^{-1}\) (Kalton, 1968). The thus-weighted average of contrasts then has variance \(2\sigma/\sum_s h_s\). This motivates the use of \(\sum_s h_s\) as a measure of effective sample size (Hansen, 2011). Somewhat different motivations of the same calculation appear in Hansen (2004) and in Hansen and Bowers (2008). Since for a matched pair \(s\), \(h_s=1\), \(\sum_s h_s\) can be thought of as the number of matched pairs needed to attain comparable precision.

## References

Kalton, G. (1968), ‘Standardization: A
technique to control for extraneous variables’, *Applied
Statistics*, **17**, 118--136.

Hansen, B.B. (2004), ‘Full Matching in an Observational
Study of Coaching for the SAT’, *Journal of the American
Statistical Association*, **99**, 609--618.

Hansen B.B. and Bowers, J. (2008), ‘Covariate balance in
simple, stratified and clustered comparative studies’,
*Statistical Science*, **23** (2), 219--236.

Hansen, B.B. (2011), ‘Propensity score matching to extract
latent experiments from nonexperimental data: A case study’.
Ch. 9 of *Looking Backwards: Proceedings from a Conference
in Honor of Paul W. Holland*, Springer.

## Examples

```
data(plantdist)
plantsfm <- fullmatch(plantdist) # A full match with unrestricted
#> Warning: Without 'data' argument the order of the match is not guaranteed
#> to be the same as your original data.
# treatment-control balance
plantsfm1 <- fullmatch(plantdist,min.controls=2, max.controls=3)
#> Warning: Without 'data' argument the order of the match is not guaranteed
#> to be the same as your original data.
stratumStructure(plantsfm)
#> 1:1 1:2 1:3 1:4 1:6
#> 2 2 1 1 1
stratumStructure(plantsfm1)
#> 1:2 1:3
#> 2 5
stratumStructure(plantsfm, max.controls=4)
#> 1:1 1:2 1:3 1:4+
#> 2 2 1 2
```