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,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
calls itself recursively to prevent this.
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.
# NOT RUN {
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)
# }
Run the code above in your browser using DataLab