Supplemental Materials Measurement and Control of Response Styles Using Anchoring Vignettes: A Model-Based Approach by D. M. Bolt et al., 2014, Psychological Methods http://dx.doi.org/10.1037/met0000016 Appendix B Code Used for Model 3 ## WinBUGS code for Multigroup Model 3 model { ## Specify probability model for vignette and self-rating item responses ## ## Item response data are in columns 2-37 of data matrix resp; country ID is in column 1 ## Items 1- 30 are vignette items; Items 31- 36 are self-rating items ## ## dcat denotes a categorical distribution; here p[j,i,] is a vector of probabilities for person j ## and item i with respect to each of the five categories ## Specification of response model for anchoring vignette responses for (j in 1:N) { for (i in 1:30){ for (k in 1:5) { prop[j,i,k] <- exp(c[i,k]+ theta[j,k+1]) p[j,i,k]<-prop[j,i,k]/(sum(prop[j,i,])) } resp[j,i+1]~dcat(p[j,i,]) }} ## Specification of response model for self-rating responses for (j in 1:N) { for (i in 31:36) { for (k in 1:5) { prop [j,i,k] <- exp(a[k]*theta[j,1] + c[i,k]+ theta[j,k+1]) p[j,i,k]<-prop[j,i,k]/(sum(prop[j,i,])) } resp[j,i+1]~dcat(p[j,i,]) } } ## Specify prior distributions for respondent parameters ## In Model 3, theta_1 = respondent-level substantive trait; ## theta_2 - theta_6 correspond to respondent-level response style parameters (s_1 - s_5) ## dmnorm denotes a multivariate normal distribution here with mean ## mus and inverse covariance matrix tau for (j in 1:N){ theta[j,1:6]~dmnorm(mus[resp[j,1],1:6], tau[1:6,1:6]) } ## Specify prior distributions for country-level parameters ## dmnorm denotes a multivariate normal distribution, here with mean ## mumn and inverse covariance matrix taumn ## dwish demotes a wishart distribution, here with scale matrix covpri ## and degrees of freedom 40. for (j in 1:NC){ mu[j,1:6]~ dmnorm(mumn[1:6],taumn[1:6,1:6]) } tau[1:6,1:6]~dwish(covpri[1:6,1:6],40) ## Specify prior distributions for item category intercepts ## dnorm denotes a normal distribution, here with mean 0 and variance = 1/.2 = 5 for (k in 1:NI) { for (m in 1:5) { craw[k,m] ~ dnorm(0,.2) }} ## Apply normalization constraint to item category intercept parameters for (k in 1:NI) { for (m in 1:5) { c[k,m]<-craw[k,m] - mean(craw[k,]) }} ## Apply normalization constraint to respondent response-style parameters for (j in 1:N) { for (m in 1:5){ s[j,m]<- theta[j,m+1] - mean(theta[j,2:6]) }} ## Define grand-centered country mean parameters for substantive trait. This forces overall country mean theta to 0 for (j in 1:22){ for (k in 1:6){ mus[j,k]<-mu[j,k]-mean(mu[1:22,k]) } musth[j]<-mus[j,1] } ## Define normalized country mean response style parameters for categories 1-5 for (j in 1:22){ for (k in 2:6){ ss[j,k-1]<-mus[j,k]-mean(mus[j,2:6]) }} ## Define country-centered respondent theta for (j in 1:N){ thetas[j]<-theta[j,1]-mus[resp[j,1],1] } ## Trace c for item category intercepts (i.e., Table 3) ## Trace thetas for respondent-level theta estimates (i.e., Table 4) ## Trace s for respondent-level response style trait estimates (i.e., Table 4) ## Trace mus for country level mean theta estimates (i.e., Table 5) ## Trace ss for country level mean response style estimates (i.e., Figure 4) ## Trace tau to reproduce latent trait correlation estimates (i.e., Table 2) } ## Beginning of data list ## NC = number of countries (country regions) ## NI = number of items (vignette + self-rating) ## N = number of respondents list(NC=22,NI=36,N=2965, a=c(-2,-1,0,1,2), mumn=c(0,0,0,0,0,0), covpri = structure(.Data=c(41,0,0,0,0,0,0,41,0,0,0,0,0,0,41,0,0,0,0, 0,0,41,0,0,0,0,0,0,41,0,0,0,0,0,0,41), .Dim=c(6,6)), taumn = structure(.Data=c(1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1, 0,0,0,0,0,0,1,0,0,0,0,0,0,1), .Dim=c(6,6)), resp = structure(.Data=c( 1,1,1,2,5,5,2,2,2,4,4,1,1,2,5,5,3,2,2,5,5,1,1,4,5,5,1,2,3,3,4,4,1,5,3,2,2, 1,2,1,3,5,5,1,1,2,5,5,1,1,2,5,5,1,1,2,5,5,1,1,2,5,5,1,1,1,5,5,5,4,5,4,5,3, . . . . . . . . . 22,1,1,4,5,5,2,1,2,4,5,NA,4,3,4,4,2,1,3,5,4,1,1,4,4,5,2,3,2,5,4,4,3,5,4,4,3), .Dim=c(2965,37))) ## End of datalist