Suppose I have two sets of (x,y) points like this: x1<-runif(n=10) y1<-runif(n=10) A<-cbind(x1,y1) x2<-runif(n=10) y2<-runif(n=10) B<-cbind(x2,y2) I would like to measure how similar the two sets of points are. Something like a correlation coefficient, where 0 means the two patterns are unrelated, and 1 means they are identical. And in addition I'd like to be able to assign a p-value to the calculated statistic. cor(x1,x2) cor(y1,y2) gives two numbers instead of one. cor(A,B) gives a correlation matrix I have looked a little at spatial statistics. I have seen methods that, for each point, search in some neighbourhood around it and then compute the correlation as a function of search radius. That is not what I am looking for. I would like a single number that summarises the strength of the relationship between the two patterns. I will do procrustes on the two point sets first, so that if A is just a rotated, translated, scaled, reflected version of B the two patterns will superimpose and the statistic I'm looking for will say there is perfect correspondence. Thanks very much for any help in finding such a statistic and calculating it using R. Bill
On Sun, 2009-08-30 at 07:51 +0100, William Simpson wrote:> Suppose I have two sets of (x,y) points like this: > > x1<-runif(n=10) > y1<-runif(n=10) > A<-cbind(x1,y1) > > x2<-runif(n=10) > y2<-runif(n=10) > B<-cbind(x2,y2) > > I would like to measure how similar the two sets of points are. > Something like a correlation coefficient, where 0 means the two > patterns are unrelated, and 1 means they are identical. And in > addition I'd like to be able to assign a p-value to the calculated > statistic. > > cor(x1,x2) > cor(y1,y2) > gives two numbers instead of one. > > cor(A,B) > gives a correlation matrix > > I have looked a little at spatial statistics. I have seen methods > that, for each point, search in some neighbourhood around it and then > compute the correlation as a function of search radius. That is not > what I am looking for. I would like a single number that summarises > the strength of the relationship between the two patterns. > > I will do procrustes on the two point sets first, so that if A is just > a rotated, translated, scaled, reflected version of B the two patterns > will superimpose and the statistic I'm looking for will say there is > perfect correspondence. > > Thanks very much for any help in finding such a statistic and > calculating it using R. > > BillHi Bill, If your 2 points set is similar I expect your Euclidean distance is 0, so I suggest this script: dist<-sqrt((x1-x2)^2+(y1-y2)^2) # Euclidean distance t.test(dist) # test for mean equal 0 -- Bernardo Rangel Tura, M.D,MPH,Ph.D National Institute of Cardiology Brazil
Bill, prod( cancor( A,B )$cor ) perhaps? Note that this accounts for linear transformations. HTH, Chuck On Sun, 30 Aug 2009, William Simpson wrote:> Suppose I have two sets of (x,y) points like this: > > x1<-runif(n=10) > y1<-runif(n=10) > A<-cbind(x1,y1) > > x2<-runif(n=10) > y2<-runif(n=10) > B<-cbind(x2,y2) > > I would like to measure how similar the two sets of points are. > Something like a correlation coefficient, where 0 means the two > patterns are unrelated, and 1 means they are identical. And in > addition I'd like to be able to assign a p-value to the calculated > statistic. > > cor(x1,x2) > cor(y1,y2) > gives two numbers instead of one. > > cor(A,B) > gives a correlation matrix > > I have looked a little at spatial statistics. I have seen methods > that, for each point, search in some neighbourhood around it and then > compute the correlation as a function of search radius. That is not > what I am looking for. I would like a single number that summarises > the strength of the relationship between the two patterns. > > I will do procrustes on the two point sets first, so that if A is just > a rotated, translated, scaled, reflected version of B the two patterns > will superimpose and the statistic I'm looking for will say there is > perfect correspondence. > > Thanks very much for any help in finding such a statistic and > calculating it using R. > > Bill > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >Charles C. Berry (858) 534-2098 Dept of Family/Preventive Medicine E mailto:cberry at tajo.ucsd.edu UC San Diego http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901