Learn R Programming

SEAsic (version 0.1)

rmsd: Root Mean Square Difference

Description

The root mean square difference index ($RMSD$) is a conditional index of the weighted differences between each subpopulation equated score, $y_j(x)$, and the equated score based on the overall population, $y(x)$. Formally, $$RMSD=\frac{\sqrt{\sum_j w_j\lbrack y_j(x)-y(x)\rbrack^2}}{\sigma_x},$$ where $w_j$ is a subpopulation weight, $x$ is a score on the original (i.e., unequated) scale, and $s$ is the standard deviation of $x$ scores in the (sub)population of interest. It is considered an omnibus, conditional index. It was originally presented by Dorans and Holland (2000). It provides practitioners with the magnitude of weighted differences between subpopulation equated scores and equated scores based on the overall population.

Usage

rmsd(x, o, g, w, d, s, ymax, xlab, color)

Arguments

x
a column vector of scores on which the rmsd is conditioned
o
a column vector of equated scores based on the overall population (aligned with elements in x)
g
column vectors of equated scores based on various subpopulations (aligned with elements in x)
w
a row vector of weights for subpopulations 1 thru n (length = number of groups)
d
a scalar of the difference that matters
s
a scalar representing the standard deviation of x for any (sub)population of interest (e.g., synthetic population) (default is 1, which leads to calculation of the unstandardized rmsd)
ymax
A maximum value for the y axis of the RMSD graph (default = 3 + the maximum RMSD value)
xlab
A label for the x axis of the RMSD graph (default = Score Scale)
color
color of RMSD line and points on plot (default = red)

Value

A data frame of RMSD indices, conditioned on the score scaleA plot of the RMSD in reference to the difference that matters

References

  • Dorans, N.J., & Holland, P.W. (2000). Population invariance and the equitability of tests: Theory and the linear case. Journal of Educational Measurement, 37, 281-306.

See Also

remsd

Examples

Run this code
#Unstandardized RMSD for subpopulations 1 and 2 in the example data set, ex.data, 
#assuming equal weights for the subpopulations
rmsd(x=ex.data[,1],o=ex.data[,2],g=c(ex.data[,3],ex.data[,4]),w=c(.5,.5),d=.5)

#Unstandardized RMSD for all five subpopulations in the example data set, ex.data
rmsd(x=ex.data[,1],o=ex.data[,2],
g=c(ex.data[,3],ex.data[,4],ex.data[,5],ex.data[,6],ex.data[,7]),
w=c(.1,.2,.4,.2,.1),d=.5)

#Unstandardized RMSD for all five subpopulations in the example data set, ex.data, 
#with adjustments to the maximum y-axis on the plot, a new xlabel, 
#and points/line in blue
rmsd(x=ex.data[,1],o=ex.data[,2],
g=c(ex.data[,3],ex.data[,4],ex.data[,5],ex.data[,6],ex.data[,7]),
w=c(.1,.2,.4,.2,.1),d=.5,ymax=3,xlab="Old Form",color="blue")

#Standardized RMSD for all five subpopulations in the example data set, ex.data
rmsd(x=ex.data[,1],o=ex.data[,2],
g=c(ex.data[,3],ex.data[,4],ex.data[,5],ex.data[,6],ex.data[,7]),
w=c(.1,.2,.4,.2,.1),d=.5,s=4.2)

Run the code above in your browser using DataLab