Path: news.mathworks.com!not-for-mail From: "Daniel Robbins" <d.w.e.robbins@gmail.com> Newsgroups: comp.soft-sys.matlab Subject: Re: Non linear association Date: Sun, 20 Jan 2013 18:24:08 +0000 (UTC) Organization: The MathWorks, Inc. Lines: 47 Message-ID: <kdhco8$rq7$1@newscl01ah.mathworks.com> References: <kdcenb$s4n$1@newscl01ah.mathworks.com> <kdgp44$o93$1@newscl01ah.mathworks.com> Reply-To: "Daniel Robbins" <d.w.e.robbins@gmail.com> NNTP-Posting-Host: www-05-blr.mathworks.com Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: newscl01ah.mathworks.com 1358706248 28487 172.30.248.37 (20 Jan 2013 18:24:08 GMT) X-Complaints-To: news@mathworks.com NNTP-Posting-Date: Sun, 20 Jan 2013 18:24:08 +0000 (UTC) X-Newsreader: MATLAB Central Newsreader 2776992 Xref: news.mathworks.com comp.soft-sys.matlab:786941 Hi Greg, Thanks for the feedback - very helpful! If I understand your suggestions for my third query correctly, you are using an approach similar to standard or absolute deviations to quantify the amount of variance in a signal? This could be useful for quantifying the consistency of signals; however I am looking to see if the patterns of change in two signals follow a similar style and timescale. I have been playing with some code to calculate the first derivative of the signals which can then be analysed statistically. Would you say this is a valid approach? Thanks again Dan "Greg Heath" <heath@alumni.brown.edu> wrote in message <kdgp44$o93$1@newscl01ah.mathworks.com>... > "Daniel Robbins" <d.w.e.robbins@gmail.com> wrote in message <kdcenb$s4n$1@newscl01ah.mathworks.com>... > > Hi, > > > > I am trying to establish the best way to check the similarity of the pattern of change in two signals/vectors. For a simple example I generated four datasets. One positive parabolic curve, one equal negative curve, one smaller positive curve with a time lag and one vector with a fixed value e.g. [6 6 6 6 6 6 ...etc]. All vectors were the same lengths. > > > > My thinking is that I should use some sort of cross correlation e.g. > > > > [Rxy, Lag] = xcorr(data(:,4),data(:,3)); > > plot(Lag,Rxy) > > > > By changing the two signals compared I note that the peak of the graph changes location. Therefore I could use the x axis values to calculate the lag in the signal. However I don't understand the values on the Y-axis. I also note that if I input the fixed value vector the graph becomes platykurtic, I'm not sure how to interpret this. > > > > Please can someone help me with the following queries: > > > > 1.) How do I interpret the Y-values of the graph? > > If you standardize those columns of data, then the two autocorrelation functions > will have unity peaks at zero lag. > > Then you can compare the peak of the crosscorrelation function at zero lag with unity > and how many lags it takes the function to decay to some fraction of the max. > > > 2.) Is there some way of quantifying the level of agreement in the form of liner correlations e.g. from -1 to 1? Or via p-values? > > Most likely. However, that probably isn't the best approach. > > > 3.) Is this the best approach to analyse the pattern of change in two non linear signals or is there a better approach? > > I would choose sqrt(mean((y1-y2).^2)), mean(abs(y1-y2)) or max(abs(y1-y2)) > > > Many thanks > > You're welcome. > > Greg