trimWeights.Rd
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.
trimWeights(design, upper = Inf, lower = -Inf, ...)
# S3 method for survey.design2
trimWeights(design, upper = Inf, lower = -Inf, strict=FALSE,...)
# S3 method for svyrep.design
trimWeights(design, upper = Inf, lower = -Inf,
strict=FALSE, compress=FALSE,...)
A survey design object
Upper bound for weights
Lower bound for weights
The reapportionment of the `trimmings' from the weights can push
other weights over the limits. If trim=TRUE
the function
repeats the trimming iteratively to prevent this. For
replicate-weight designs strict
applies only to the trimming of the sampling weights.
Compress the replicate weights after trimming.
Other arguments for future expansion
A new survey design object with trimmed weights.
calibrate
has a trim
option for trimming the
calibration adjustments.
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))
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 14.17 25.91 33.58 33.85 40.23 62.05
dclus1t<-trimWeights(dclus1g,lower=20, upper=45)
summary(weights(dclus1t))
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 20.00 26.82 34.48 33.85 41.13 45.74
dclus1tt<-trimWeights(dclus1g, lower=20, upper=45,strict=TRUE)
summary(weights(dclus1tt))
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 20.00 26.84 34.50 33.85 41.15 45.00
svymean(~api99+api00+stype, dclus1g)
#> mean SE
#> api99 631.91298 0.0000
#> api00 665.30907 3.4418
#> stypeE 0.71376 0.0000
#> stypeH 0.12189 0.0000
#> stypeM 0.16435 0.0000
svymean(~api99+api00+stype, dclus1t)
#> mean SE
#> api99 628.91203 1.1673
#> api00 663.05195 3.5796
#> stypeE 0.73651 0.0036
#> stypeH 0.10121 0.0043
#> stypeM 0.16228 0.0021
svymean(~api99+api00+stype, dclus1tt)
#> mean SE
#> api99 628.88080 1.1679
#> api00 663.02343 3.5844
#> stypeE 0.73664 0.0036
#> stypeH 0.10121 0.0043
#> stypeM 0.16215 0.0021