I get the following message:
Error in isoMDS(tt) : zero or negative distance between objects 1 and 2
This makes sense since a and b are identical in their relationship to c to
h. 
Drop row 1 and col 1 and you get
> isoMDS(tt[2:8,2:8])
initial  value 14.971992 
iter   5 value 8.027815
iter  10 value 4.433377
iter  15 value 3.496364
iter  20 value 3.346726
final  value 3.233738 
converged
$points
           [,1]       [,2]
[1,] -2.3143653 -0.1259226
[2,] -0.3205746 -1.1534662
[3,] -2.8641922 -0.1182906
[4,]  0.7753674  0.1497328
[5,] -0.5705552  1.2416843
[6,]  2.2305175 -0.6995917
[7,]  3.0638025  0.7058540

$stress
[1] 3.233738

Does this help?

-----Original Message-----
From: Doran, Harold [mailto:[EMAIL PROTECTED] 
Sent: September 9, 2004 8:26 AM
To: Jari Oksanen
Cc: Doran, Harold; Prof Brian Ripley; R-News
Subject: RE: [R] isoMDS


Thank you. I use the same matrix on cmdscale as I did with isoMDS. I have
reproduced my steps below for clarification if this happens to shed any
light.
 
Here is the original total matrix (see opening thread if you care how this
is created)
 
  a b c d e f g h
a 4 4 2 4 1 2 0 0
b 4 4 2 4 1 2 0 0
c 2 2 4 2 3 2 2 1
d 4 4 2 4 1 2 0 0
e 1 1 3 1 4 3 3 2
f 2 2 2 2 3 4 2 1
g 0 0 2 0 3 2 4 3
h 0 0 1 0 2 1 3 4
 
So, there are 8 items. This matrix indicates that items 1,2, and 4 were
always grouped together (or viewed as being similar by individuals). I
transformed this using 
 
tt<-max(t)-t
 
which results in
  a b c d e f g h
a 0 0 2 0 3 2 4 4
b 0 0 2 0 3 2 4 4
c 2 2 0 2 1 2 2 3
d 0 0 2 0 3 2 4 4
e 3 3 1 3 0 1 1 2
f 2 2 2 2 1 0 2 3
g 4 4 2 4 1 2 0 1
h 4 4 3 4 2 3 1 0
 
When I run isoMDS on this new matrix, it tells me to specify the initial
config because of the NA/INFs/ But when I perform cmdscale on this same
matrix I end up with the following results,
 
> bt<-cmdscale(tt);bt
 
         [,1]       [,2]
a -1.79268634 -0.2662750
b -1.79268634 -0.2662750
c -0.02635497  0.5798934
d -1.79268634 -0.2662750
e  1.08978620  0.6265313
f -0.02635497  0.5798934
g  2.20852966  0.2828937
h  2.13245309 -1.2703869
 
The results suggest that items 1,2, and 4 have similar locations as is
expected. Also items 3 and 6 have similar locations as would also be
expected. So, my results seem to have been replicated correctly using
cmdscale. 
 
I've tried to specify an initial config using isoMDS in a few ways without
success, so I am surely doing something wrong. So far, I have tried the
following:
 
> ll<-isoMDS(tt, y=cmdscale(tt))
 
which tells me "zero or negative distance between objects 1 and 2"
 
> ll<-isoMDS(tt, y=cmdscale(tt, k=2))
 
 
Again, thanks,
 
Harold
 
 

        -----Original Message----- 
        From: Jari Oksanen [mailto:[EMAIL PROTECTED] 
        Sent: Thu 9/9/2004 4:26 AM 
        To: Doran, Harold 
        Cc: Prof Brian Ripley; R-News 
        Subject: RE: [R] isoMDS
        
        

        On Wed, 2004-09-08 at 21:31, Doran, Harold wrote:
        > Thank you. Quick clarification. isoMDS only works with
dissimilarities.
        > Converting my similarity matrix into the dissimilarity matrix is
done as
        > (from an email I found on the archives)
        >
        > > d<- max(tt)-tt
        >
        > Where tt is the similarity matrix. With this, I tried isoMDS as
follows:
        >
        > > tt.mds<-isoMDS(d)
        >
        > and I get the following error message.
        >
        > Error in isoMDS(d) : An initial configuration must be supplied
with
        > NA/Infs in d. I was a little confused on exactly how to specify
this
        > initial config. So, from here I ran cmdscale on d as
        >
        This error message is quite informative: you have either missing or
        non-finite entries in your data. The only surprising thing here is
that
        cmdscale works: it should fail, too. Are you sure that you haven't
done
        anything with your data matrix in between, like changed it from
matrix
        to a dist object? If the Inf/NaN/NA values are on the diagonal, they
        will magically disappear with as.dist. Anyway, if you're able to get
a
        metric scaling result, you can manually feed that into isoMDS for
the
        initial configuration, and  avoid the check. See ?isoMDS.
        
        > > d.mds<-cmdscale(d)
        >
        > which seemed to work fine and produce reasonable results. I was
able to
        > take the coordinates and run them through a k-means cluster and
the
        > results seemed to correctly match the grouping structure I created
for
        > this sample analysis.
        >
        > Cmdscale is for metric scaling, but it seemed to produce the
results
        > correctly.
        >
        > So, did I correctly convert the similarity matrix to the
dissimilarity
        > matrix? Second, should I have used cmdscale rather than isoMDS as
I have
        > done? Or, is there a way to specify the initial configuration that
I
        > have not done correctly.
        
        If you don't know whether you should use isoMDS or cmdscale, you
        probably should use cmdscale. If you know, things are different.
        Probably isoMDS gives you `better'(TM) results, but it is more
        complicated to handle.
        
        cheers, jari oksanen
        --
        Jari Oksanen -- Dept Biology, Univ Oulu, 90014 Oulu, Finland
        Ph. +358 8 5531526, cell +358 40 5136529, fax +358 8 5531061
        email [EMAIL PROTECTED], homepage http://cc.oulu.fi/~jarioksa/
        
        


        [[alternative HTML version deleted]]

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to