Download presentation
Presentation is loading. Please wait.
1
Multidimensional Scaling Producing a map of distances from proximities
2
Goals Given a matrix of proximities produce a map (preferably two dimensional) Fit is measured by stress – how well the proximities (data) match the distances (map) Proximities can be metric (interval) or non-metric (ordinal)
3
Procedure Unlike principal components or correspondence analysis, there is no direct solution A random configuration (map) is generated and gradually improved in a series of iterations It is possible to be trapped in a local minimum
4
Number of Dimensions Usually fit 2 dimensions, but more are possible As with cluster analysis or principal components, we can look at changes in stress as the number of dimensions is increased
5
Distances between U.S. Cities
6
> (Map <- isoMDS(as.matrix(USA))) # Print and save results initial value 3.464580 final value 3.464504 converged $points [,1] [,2] Albuquerque, NM 712.76792 471.745728 Atlanta, GA -711.36314 381.395065 Billings, MT 940.10158 -450.073277 Boston, MA -1279.59319 -506.804865 Chicago, IL -320.95509 -272.978491 Columbus, OH -629.47450 -162.220322 Dallas, TX 76.55510 565.929629 Denver, CO 640.00096 14.103036 Fargo, ND 265.19560 -584.525863 Kansas City, MO 10.53626 9.960602 Los Angeles, CA 1523.24283 619.728154 Miami, FL -1200.05304 867.120521 New Orleans, LA -422.83510 732.041469 New York, NY -1119.59507 -408.890719 Portland, ME -1370.52441 -564.153134 Salt Lake City, UT 1087.28692 -111.073569 Seattle, WA 1798.70636 -601.303964 $stress [1] 3.464504
7
> str(Map) List of 2 $ points: num [1:17, 1:2] 713 -711 940 -1280 -321.....- attr(*, "dimnames")=List of 2....$ : chr [1:17] "Albuquerque, NM ".......$ : NULL $ stress: num 3.46 > windows(10, 5, record=TRUE) > plot(Map$points, xlim=c(-2000, 2000), type="n", asp=1) > text(Map$points, labels=dimnames(Map$points)[[1]], cex=.8) > plot(-Map$points, xlim=c(-2000, 2000), type="n", asp=1) > text(-Map$points, labels=dimnames(Map$points)[[1]], cex=.8) > plot(as.dist(USA), dist(Coord)) > abline(a=0, b=1)
11
> (DarlMDS <- isoMDS(dist(DarlPoints[,6:9]))) initial value 9.569405 iter 5 value 7.807994 iter 10 value 6.842718 iter 15 value 6.479061 final value 6.429139 converged $points [,1] [,2] 41-0322 -0.4950437 -0.75340931 35-2921 -0.6560250 -0.07943608 36-3487 -0.2856965 -0.39100421.... $stress [1] 6.429139 > plot(DarlMDS$points, xaxp=c(-3, 4, 7), yaxp=c(-1, 1, 2), las=1, pch=16, asp=1) > plot(dist(DarlPoints[,6:9]), dist(DarlMDS$points)) > abline(a=0, b=1)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.