svycontrast {survey} | R Documentation |

Computes linear or nonlinear contrasts of estimates produced by survey
functions (or any object with `coef`

and `vcov`

methods).

svycontrast(stat, contrasts, add=FALSE, ...)

`stat` |
object of class |

`contrasts` |
A vector or list of vectors of coefficients, or a call or list of calls |

`add` |
keep all the coefficients of the input in the output? |

`...` |
For future expansion |

If `contrasts`

is a list, the element names are used as
names for the returned statistics.

If an element of `contrasts`

is shorter than `coef(stat)`

and has names, the
names are used to match up the vectors and the remaining elements of
`contrasts`

are assumed to be zero. If the names are not legal
variable names (eg `0.1`

) they must be quoted (eg `"0.1"`

)

If `contrasts`

is a `"call"`

or list of `"call"s`

, and
`stat`

is a `svrepstat`

object including replicates, the
replicates are transformed and used to compute the variance. If
`stat`

is a `svystat`

object or a `svrepstat`

object
without replicates, the delta-method is used to compute variances, and
the calls must use only functions that `deriv`

knows how
to differentiate. If the names are not legal variable names they must
be quoted with backticks (eg ``0.1``

).

Object of class `svrepstat`

or `svystat`

`regTermTest`

, `svyglm`

data(api) dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc) a <- svytotal(~api00+enroll+api99, dclus1) svycontrast(a, list(avg=c(0.5,0,0.5), diff=c(1,0,-1))) ## if contrast vectors have names, zeroes may be omitted svycontrast(a, list(avg=c(api00=0.5,api99=0.5), diff=c(api00=1,api99=-1))) ## nonlinear contrasts svycontrast(a, quote(api00/api99)) svyratio(~api00, ~api99, dclus1) ## Example: standardised skewness coefficient moments<-svymean(~I(api00^3)+I(api00^2)+I(api00), dclus1) svycontrast(moments, quote((`I(api00^3)`-3*`I(api00^2)`*`I(api00)`+ 3*`I(api00)`*`I(api00)`^2-`I(api00)`^3)/ (`I(api00^2)`-`I(api00)`^2)^1.5)) ## Example: geometric means ## using delta method meanlogs <- svymean(~log(api00)+log(api99), dclus1) svycontrast(meanlogs, list(api00=quote(exp(`log(api00)`)), api99=quote(exp(`log(api99)`)))) ## using delta method rclus1<-as.svrepdesign(dclus1) meanlogs <- svymean(~log(api00)+log(api99), rclus1) svycontrast(meanlogs, list(api00=quote(exp(`log(api00)`)), api99=quote(exp(`log(api99)`)))) ## why is add=TRUE useful? (totals<-svyby(~enroll,~stype,design=dclus1,svytotal,covmat=TRUE)) totals1<-svycontrast(totals, list(total=c(1,1,1)), add=TRUE) svycontrast(totals1, list(quote(E/total), quote(H/total), quote(M/total))) totals2<-svycontrast(totals, list(total=quote(E+H+M)), add=TRUE) all.equal(as.matrix(totals1),as.matrix(totals2)) ## transforming replicates meanlogs_r <- svymean(~log(api00)+log(api99), rclus1, return.replicates=TRUE) svycontrast(meanlogs_r, list(api00=quote(exp(`log(api00)`)), api99=quote(exp(`log(api99)`))))

[Package *survey* version 4.1-1 Index]