cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
huangr2
Level I

How to reproduce SAS Multidimensional Scaling (MDS)

I am doing nonmetric multidimensional scaling using both SAS and JMP. 

 

My input for JMP is an n*n distance matrix (or dissimilarity matrix ). I was following the steps: Analyze-->Multivariate methods-->Multidimensional scaling and set the number of dimensions to 5.

 

In SAS, I was using the proc mds procedure. My input matrix is the same lower triangle dissimilarity matrix

proc mds data=my_matrix level=ordinal out=mds_out dimens=5 nonorm;

                id NAME;

                        run;

 

I am comparing the coordinate values for my solution in JMP and SAS. The values in SAS results are different from those in JMP results. They are similar, but they differ in numerical values. I am guessing it is due to the starting values and number of iterations. Is there a way to match the results?

 

Meanwhile, the final stress value in JMP and SAS are very different. In SAS, I am using MAXITER=100. In the SAS iteration history, the stress value in SAS seems to match at ITER=2 to final stress value in JMP.

When I set maxiter=1 in SAS , the final configuration in JMP and SAS still are still quite different.

 

Appreciate if someone can let me what options to set in SAS or JMP (???) to match the MDS results.

Thanks in advance.

 
1 ACCEPTED SOLUTION

Accepted Solutions

Re: How to reproduce SAS Multidimensional Scaling (MDS)

It will not be possible to exactly match the JMP MDS output to the SAS PROC MDS output. JMP's algorithm was written independently from SAS. Also, the initial and final estimates from PROC MDS are normalized by default. Also, we wanted to point out that in multidimensional scaling models, the parameter estimates are not uniquely determined. The estimates can be transformed in various ways without changing their 'badness' of fit.

 

Some food for thought - attached is a SAS program file created using the JMP sample data, Flight Distances. If you specify the NONORM option, you can see the estimates are close to JMP’s results but with opposite signs. However, for MDS, the most important output is the Biplot. Although the estimates (or coordinates) are different, the Biplot from SAS and JMP are the same.

 

Regarding the Stress statistic, JMP presents Kruskal’s Stress, Type I, or simply Stress1. It should be fairly close to SAS's output (see documentation here) if the Formula option is set to 1.

 

PatrickGiuliano_0-1663563070692.png

 

Thank you!

Sincerely, JMP Technical Support. 

(Response courtesy of @sseligman)

View solution in original post

2 REPLIES 2

Re: How to reproduce SAS Multidimensional Scaling (MDS)

Thanks very much for your question! JMP Technical support is on the case as I am sure you are aware, and I look forward to updating this post with some additional information for the benefit of our users who frequent the JMP User Community.

Re: How to reproduce SAS Multidimensional Scaling (MDS)

It will not be possible to exactly match the JMP MDS output to the SAS PROC MDS output. JMP's algorithm was written independently from SAS. Also, the initial and final estimates from PROC MDS are normalized by default. Also, we wanted to point out that in multidimensional scaling models, the parameter estimates are not uniquely determined. The estimates can be transformed in various ways without changing their 'badness' of fit.

 

Some food for thought - attached is a SAS program file created using the JMP sample data, Flight Distances. If you specify the NONORM option, you can see the estimates are close to JMP’s results but with opposite signs. However, for MDS, the most important output is the Biplot. Although the estimates (or coordinates) are different, the Biplot from SAS and JMP are the same.

 

Regarding the Stress statistic, JMP presents Kruskal’s Stress, Type I, or simply Stress1. It should be fairly close to SAS's output (see documentation here) if the Formula option is set to 1.

 

PatrickGiuliano_0-1663563070692.png

 

Thank you!

Sincerely, JMP Technical Support. 

(Response courtesy of @sseligman)