smacofSym | R Documentation |
Multidimensional scaling on a symmetric dissimilarity matrix using SMACOF.
smacofSym(delta, ndim = 2, type = c("ratio", "interval", "ordinal", "mspline"),
weightmat = NULL, init = "torgerson", ties = "primary", principal = FALSE,
verbose = FALSE, relax = FALSE, modulus = 1, itmax = 1000, eps = 1e-06,
spline.degree = 2, spline.intKnots = 2)
mds(delta, ndim = 2, type = c("ratio", "interval", "ordinal", "mspline"),
weightmat = NULL, init = "torgerson", ties = "primary", principal = FALSE,
verbose = FALSE, relax = FALSE, modulus = 1, itmax = 1000, eps = 1e-06,
spline.degree = 2, spline.intKnots = 2)
delta |
Either a symmetric dissimilarity matrix or an object of class |
ndim |
Number of dimensions |
weightmat |
Optional matrix with dissimilarity weights |
init |
Either |
type |
MDS type: |
ties |
Tie specification (ordinal MDS only): |
principal |
If |
verbose |
If |
relax |
If |
modulus |
Number of smacof iterations per monotone regression call |
itmax |
Maximum number of iterations |
eps |
Convergence criterion |
spline.degree |
Degree of the spline for |
spline.intKnots |
Number of interior knots of the spline for |
The function mds()
is a wrapper function and can be used instead of smacofSym()
. It reports the Stress-1 value (normalized). The main output are the coordinates in the low-dimensional space (configuration; conf
; see also plot.smacof
).
Four types of MDS can be fitted: ratio MDS (no dissimilarity transformation), interval MDS (linear transformation), ordinal MDS (ordinal transformation with various options for handling ties), and spline MDS (monotone spline transformation). Shepard plots in plot.smacof
give insight into this transformation.
Setting principal = TRUE
is useful for interpretatbility of the dimensions, or to check hypotheses about the dimensions.
In case of missing input dissimilarities, the weightmat
is computed internally so that missings are blanked out during optimization.
delta |
Observed dissimilarities, not normalized |
dhat |
Disparities (transformed proximities, approximated distances, d-hats) |
confdist |
Configuration distances |
conf |
Matrix of fitted configurations |
stress |
Stress-1 value |
spp |
Stress per point (stress contribution of each point on a percentage scale) |
resmat |
Matrix with squared residuals |
rss |
Residual sum-of-squares |
weightmat |
Weight matrix |
ndim |
Number of dimensions |
init |
Starting configuration |
model |
Name of smacof model |
niter |
Number of iterations |
nobj |
Number of objects |
type |
Type of MDS model |
Jan de Leeuw, Patrick Mair, and Patrick Groenen
De Leeuw, J. & Mair, P. (2009). Multidimensional scaling using majorization: The R package smacof. Journal of Statistical Software, 31(3), 1-30, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.18637/jss.v031.i03")}
Mair, P, Groenen, P. J. F., De Leeuw, J. (2022). More on multidimensional scaling in R: smacof version 2. Journal of Statistical Software, 102(10), 1-47. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.18637/jss.v102.i10")}
Borg, I., & Groenen, P. J. F. (2005). Modern Multidimensional Scaling (2nd ed.). Springer.
Borg, I., Groenen, P. J. F., & Mair, P. (2018). Applied Multidimensional Scaling and Unfolding (2nd ed.). Springer.
smacofConstraint
, smacofRect
, smacofIndDiff
, smacofSphere
, plot.smacof
## simple SMACOF solution (interval MDS) for kinship data
res <- mds(kinshipdelta, type = "interval")
res
summary(res)
plot(res)
plot(res, type = "p", label.conf = list(label = TRUE, col = "darkgray"), pch = 25, col = "red")
## ratio MDS, random starts
set.seed(123)
res <- mds(kinshipdelta, init = "random")
res
## 3D ordinal SMACOF solution for trading data (secondary approach to ties)
data(trading)
res <- mds(trading, ndim = 3, type = "ordinal", ties = "secondary")
res
## spline MDS
delta <- sim2diss(cor(PVQ40agg))
res <- mds(delta, type = "mspline", spline.degree = 3, spline.intKnots = 4)
res
plot(res, "Shepard")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.