anchors {anchors}R Documentation

Non-parametric analysis of surveys with vignette anchors


Non-parametric analysis of surveys with vignette anchors.


anchors(formula, data, method = c("B","C"),
        subset, combn = FALSE, na.action = na.omit)



A list of named formulas giving a symbolic description of the model to be fit. See Details below.


A data frame or matrix. See Details below.


Single string indicating method of analysis. See Details below.


A list of class 'anchors.options', produced by function anchors.options;


Logical expression indicating elements or rows to keep: missing values are taken as false; equivalent to function subset.


Logical (TRUE/FALSE). Calculate key statistics for all combinations of subsets of vignettes specified in formula=list(vign=cbind(...))


Specify the "NA action" which should be applied to 'data'. Default is R standard option 'na.omit'; can also be set to ''.


The formula syntax is designed to allow the same list of formulas to be used for both anchors and chopit. If a user would like to use exactly the same cases with chopit as with anchors (i.e., drop cases with any missing responses or missing cpolr values), and vise versa (i.e., also drop any case with missing values in the tau=, tau1= formulae), then the user should use the same list of formula for all methods and use the option anchors.options(delete="maximal"). See example below.

Only options relevant to anchors are discussed here.

The named list() of formulas may include

self: LHS self-response variable; RHS is simply 1 (needed to define a formula); actually anything can be put on the RHS, and it will not by default be used.

vign: vignette responses, bound together by cbind (as in glm binomial syntax), with ONLY '~ 1' as RHS of equation (formulas must have RHS).

cpolr: OPTIONAL. linear predictors used by the censored ordered probit, cpolr, model to break ties in rank based models, method="B" or "C". Default is cpolr = ~ 1 (i.e., an intercept only).


    fo <- list(self = xsayself ~ 1,
              vign = cbind(xsay3,xsay1)    ~ 1,
	      cpolr = ~ age )

NOTE: one can also use a single formula as a short hand: specifying

fo <- self ~ vign1 + vign2

is equivalent to

    fo <- list(self = self ~ 1
               vign = cbind(vign1,vign2) ~ 1,
               cpolr= ~ 1)

All of the response variables must be in the form of consequetive non-negative numeric integers, i.e., 1, 2, ... K.

** anchors currently does not support factor responses.**

The method="B" and "C" requires that cases with any response that is missing be dropped. Any cases with missing values the covariates specified in the cpolr= formula are also dropped. BUT by default these methods ignore missing values in the covariates specified by tau=, tau1=, or the right hand side of self=.


Specific values listed below are meant for programmers; data analysts should see the values produced by the summary.anchors function.


List object containing:


A matrix with columns rows corresponding to the observations in the data for which both the self-assessment and the vignettes are observed.

The first column contains the lower bound of the rank interval, and the second column contains the upper bound. If a row has the same value in both columns, then the rank value is a scalar value, otherwise the rank lies somewhere in an interval.

The columns will be named Cs and Ce for type "C", Bs and Be for type "B".


matrix of weights, inverse proportion to span of interval values


Maximum rank possible for non-parametric method

For "C" max is 2J+1, where J is the number of vignettes.

For "B" max is J+1.


Number of cases that have interval values of C


list of summary statistics about ranks


Matrix specifying how interval rank values would be allocated to scalar rank values to minimize entropy.


a cpolr model that was used to estimate how to allocate interval rank values to scalar rank values


The type of nonparamtric analysis (B or C)


Related materials and worked examples are available at


Jonathan Wand


Wand, Jonathan; Gary King; and Olivia Lau. (2007) “Anchors: Software for Anchoring Vignettes”. Journal of Statistical Software. Forthcoming. copy at

Wand, Jonathan. (2007) "Credible Comparisons Using Interpersonally Incomparable Data: Ranking self-evaluations relative to anchoring vignettes or other common survey questions". copy at

Wand, Jonathan and Gary King. (2007) Anchoring Vignetttes in R: A (different kind of) Vignette copy at

Gary King and Jonathan Wand. "Comparing Incomparable Survey Responses: New Tools for Anchoring Vignettes," Political Analysis, 15, 1 (Winter, 2007): Pp. 46-66, copy at

King, Gary; Christopher J.L. Murray; Joshua A. Salomon; and Ajay Tandon. "Enhancing the Validity and Cross-cultural Comparability of Survey Research," American Political Science Review, Vol. 98, No. 1 (February, 2004): 191-207, copy at

See Also

anchors.order, anchors.options, chopit,



fo <- list(self = xsayself ~ age,
           vign = cbind(xsay3,xsay1)    ~ 1,
           tau  = ~ age + china,
           tau1 = ~ age + china + male,
           cpolr= ~ china + male

a2 <- anchors(fo, data = mexchn, method="B")

a3 <- anchors(fo, data = mexchn, method="C")

[Package anchors version 3.0-8 Index]