Description Usage Arguments Details Value Author(s) See Also Examples
View source: R/PerformEquating.R
This functions allows to equate parameter estimates across different cultural, linguistic or environmental contexts, providing coefficients to report item and raw score parameters on the same metric for crosscontext comparisons.
1  PerformEquating(listcountry, tol, tol2, mincommon, step)

listcountry 
A list of 
tol 
Tolerance from the second iteration step on. After the first iteration,
a difference of 
tol2 
Initial tolerance. At the first iteration step, items are considered common if their item severity differ of 
mincommon 
Number of minimum common items. In a specific country, if the number of common items is less than 
step 
Speed of decreasing of the algorithm tolerance. After the first iteration, 
This function allows to define a common reference scale across different context (depending on, for instance, the different environment, country, language the scale has been administered). In this document, such differences are refered to as country effects, but they have in fact a broader, contextrelated, meaning. In each country, common and unique item are defined based on the logitdifference with the standard, and such standard is defined based only on the common items. Because of the link between the definition of common items and the standard reference scale, the algorithm needs to start with a very permissive tolerance, and gradually decrease this tolerance during the subsequent iterations.
Let us indicate with n the number of countries, k the number of items and b_{ij} the estimated item parameter for country i = 1, …, n and item j = 1, …, k. The vector b_i includes all the estimated item parameters for country i, while the vector b_j contains the estimated parameter for item j in all countries. By construction, b_i are zerocentered (we will indicate this property as μ_i = 0), but they can have arbitrary standard deviation (σ_i). σ_i is related to the scale discrimination power and reliability, but it also reflects a countryspecific, and therefore not comparable, metric.
The equating algortithm is breafly described below.
EQUATING ALGORITHM
Set the iteration counter it = 1
Report the countryspecific item parameters on the same metric, i.e. having the same mean and standard deviation. Standardized, countryspecific, item parameters (indicated, from here on, as country std.sev.) are obtained by dividing them by their standard deviation σ_i.
Assuming that all items are common, define the global reference standard (from here on, ref.sev.) as median of severity parameters across countries.
For each country, calculate the absolute difference between the standardized parameter, and the reference standard (d_i = (d_i1, ..., d_ik)), and define the set of unique and common items for country i as U_i = {j: d_ij > tol2
}, and C_i = {j: d_ij < tol2
}.
Define discr = 1+tol
WHILE discr > tol
The new metric is defined based on common items in each country, leading to the computation of expansion coefficients α_i and β_i:
β_i = sd(comm.ref.sev.)/sd(comm.country.std.sev.),
and
α_i = mean(comm.ref.sev.) β_i * mean(comm.country.std.sev.)
Here, comm. stands for common that reference and country severities are considered only for items defined as common. Therefore, for each country, the new metric is defined in terms of mean and standard deviation of the set of common items.
The countryspecific parameters are rescaled and recentered based on the expansion coefficients as follows:
new country std.sev. = α_i + β_i * old country std.sev.
Calculate the new reference standard (new ref.sev.) based on the median of the new country std. sev. (based only on common items). Based on the new reference standard, the new parameter difference (d_i), and the new set of unique (U_i) and common (C_i) items is defined.
Redefine the tolerance as discr
= max(tol
, max(d_ij')), where j' in C^_i.
If C_i has cardinality less than mincommon
, country i is eliminated from the set of countries that contributes to the definition of the reference standard.
Set it = it + 1
end WHILE
Define the expansion coefficients on the actual contryspecific severities. This final coefficients will be used to equate the countryspecific metric to a common metric, allowing comparable results.
β_i final = sd(comm.ref.sev.)/sd(comm.country.sev.),
and
α_i final = mean(comm.ref.sev.) β_i final * mean(comm.country.sev.)
It is important to note that β_i final and α_i final consider the actual country severities, and not the standardized ones.
A list with the following elements:
aa  Vector of the α_i, one for each country, at convergence. 
bb  Vector of the β_i, one for each country, at convergence. 
aaa  Vector of the α_i final, one for each country, at convergence. 
bbb  Vector of the β_i final, one for each country, at convergence. 
id.comm  TRUE/FALSE matrix with n rows and k columns. TRUE indicates that that item in that country is common. 
b  Matrix with n rows and k columns containing the estimated item severities for each country. 
b.scaled  Matrix with n rows and k columns containing the scaled item severities for each country at convergence. 
b.tot  Reference standard severity vector at convergence. 
diff.mat  Matrix with n rows and k columns containing the differences between the countryspecific severities (b.scaled ) and the reference standard severities (b.tot ). 
items  Names of the items. 
names  Names of the countries. 
diff  The tolerance (discr ) at convergence. 
eqset  Set of countries that contribute to the reference standard definition, at convergence. 
number  Number of common items per country, at convergence. 
Carlo Cafiero [email protected]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48  ## Not run:
data(data.FAO_country1)
data(data.FAO_country2)
data(data.FAO_country3)
data(data.FAO_country4)
# Questionnaire data and weights for countries 1, 2, 3 and 4
XX.country1 = data.FAO_country1[,1:8]
XX.country2 = data.FAO_country2[,1:8]
XX.country3 = data.FAO_country3[,1:8]
XX.country4 = data.FAO_country4[,1:8]
wt.country1 = data.FAO_country1$wt
wt.country2 = data.FAO_country2$wt
wt.country3 = data.FAO_country3$wt
wt.country4 = data.FAO_country4$wt
# Fit weighted Rasch for each country separately
rr.country1 = RM.w(XX.country1, wt.country1, country = "Country 1")
rr.country2 = RM.w(XX.country2, wt.country2, country = "Country 2")
rr.country3 = RM.w(XX.country3, wt.country3, country = "Country 3")
rr.country4 = RM.w(XX.country4, wt.country4, country = "Country 4")
# Prepare function input
listcountry = list(rr.country1, rr.country2, rr.country3, rr.country4)
# Perform equating
result = PerformEquating(listcountry, tol = 0.35, tol2 = 2, mincommon = 5, step = 1e9)
# Expansion factors
alphai = result$aaa
betai = result$bbb
# Compare prevalence curves on a common metric
s.levels = seq(5, 5, length.out = 200)
s.levels.eq = sapply(1:length(listcountry), function(i) alphai[i] + betai[i] * s.levels)
plot(s.levels.eq[,1], prob.assign(listcountry[[1]], sthres = s.levels)$sprob,
type = "l", col = 1, ylim = c(0, 1), xlab = "Latent trait", ylab = "Cumulative prevalence profile")
for(i in 2:length(listcountry)) {
lines(s.levels.eq[,i], prob.assign(listcountry[[i]], sthres = s.levels)$sprob,
type = "l", col = i)
}
legend("topright", lty = 1, col = 1:length(listcountry), legend = result$names,
bty = "n", x.intersp = 0.5, cex = 0.8)
text(result$b.tot, 0.2, result$items, srt = 90, cex = 0.6)
## End(Not run)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.