R: Trim sampling weights

trimWeights {survey} | R Documentation

## Trim sampling weights

### Description

Trims very high or very low sampling weights to reduce the influence of outlying observations. In a replicate-weight design object, the replicate weights are also trimmed. The total amount trimmed is divided among the observations that were not trimmed, so that the total weight remains the same.

### Usage

    trimWeights(design, upper = Inf, lower = -Inf, ...)
    ## S3 method for class 'survey.design2'
    trimWeights(design, upper = Inf, lower = -Inf, strict=FALSE,...)
    ## S3 method for class 'svyrep.design'
    trimWeights(design, upper = Inf, lower = -Inf,compress=FALSE,...)

### Arguments

`design` | A survey design object
`upper` | Upper bound for weights
`lower` | Lower bound for weights
`strict` | The reapportionment of the ‘trimmings’ from the weights can push other weights over the limits. If `trim=TRUE` the function calls itself recursively to prevent this.
`compress` | Compress the replicate weights after trimming.
`...` | Other arguments for future expansion

### Value

A new survey design object with trimmed weights.

### See Also

`calibrate` has a `trim` option for trimming the calibration adjustments.

### Examples

    data(api)
    dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)

    pop.totals<-c(`(Intercept)`=6194, stypeH=755, stypeM=1018,
    api99=3914069)
    dclus1g<-calibrate(dclus1, ~stype+api99, pop.totals)

    summary(weights(dclus1g))
    dclus1t<-trimWeights(dclus1g,lower=20, upper=45)
    summary(weights(dclus1t))
    dclus1tt<-trimWeights(dclus1g, lower=20, upper=45,strict=TRUE)
    summary(weights(dclus1tt))

    svymean(~api99+api00+stype, dclus1g)
    svymean(~api99+api00+stype, dclus1t)
    svymean(~api99+api00+stype, dclus1tt)

[Package survey version 3.32-1 Index]