Page 1 of 1

JRP Function

Posted: Sat Mar 19, 2011 07:11
by sultornsanee
It seems JRP function in your manual is wrong. You said "CRP" in there.
Anyways, I tried to use multi time series for JRQA but I think it doesn't work. I tried to use 6 channels of time series but it doesn't work. Could you give me an example? .. or your toolbox is bugged ?

Thanks !!

Re: JRP Function

Posted: Sun Mar 20, 2011 23:12
by Norbert
Thanks for pointing to the typo (it should state "jrp" of course). I have corrected it.

For calculating JRP from multiple time series just calculate the RPs of them separately and then multiply them. The CRP toolbox includes only a very simple JRP function for illustration purposes. There was not need to have a more general JRP function, because it is so simple to calculate it with Matlab.

Code: Select all

RP1 = crp(x1,m,tau,.1,'rr','silent');
RP2 = crp(x2,m,tau,.1,'rr','silent');
RP3 = crp(x3,m,tau,.1,'rr','silent');
RP4 = crp(x4,m,tau,.1,'rr','silent');

JRP = RP1 .* RP2 .* RP3 .* RP4;
with m and tau the embedding parameters, and 'rr' together with 0.1 ensures to have RPs consisting of 10% recurrence points each.

Best
Norbert

Re: JRP Function

Posted: Mon Mar 21, 2011 00:18
by sultornsanee
Thanks a lot !!
Is it possible to make CRP for multiple time series?

Re: JRP Function

Posted: Mon Mar 21, 2011 08:36
by Norbert
No, at least not in a common sense. What you could do if you like to compare two different systems with many measurements (i.e. channels) is to use these measurements as state space vectors. In the CRP toolbox you have to use the crqa2 function, not the standard crqa.

Re: JRP Function

Posted: Mon Mar 21, 2011 14:27
by sultornsanee
Ok .. I got it !! .. Thanks :)

I have another questions for JRP and CRP. I have multiple signals which are collected from difference sampling frequency. How could we use JRP or CRP to compare these signals? ... Should I normalize these signals first? ... If yes, what techniques should I try ?

Re: JRP Function

Posted: Mon Mar 21, 2011 14:36
by sultornsanee
Norbert wrote:In the CRP toolbox you have to use the crqa2 function, not the standard crqa.
Anyways, do you mean crp2? .. I have never seen crqa2 function in your manual. :shock:

Re: JRP Function

Posted: Thu Apr 14, 2011 20:28
by Norbert
Yes, sorry I meant crp2.

Re: JRP Function

Posted: Fri Jun 20, 2014 10:11
by denise
Hi,

i just asked before about the embedding parameters, but I found my mistake. :o
Now I have a question about the computation of recurrence plots for multiple time series. I try to analyse the positional data (X,Y) of each soccer player for each second in a soccer game. Thus I have 44 time series with over 5000 datapoints and i want to analyse the recurrence of the players positions over the whole game.

Up to now I calculated crps for each time series (size: (1: 5492)) in the gui, got recurrence plots there. But I wanted to compare the X and Y positions together and also all players and not only one.

Thats why I computed a RP for each time series ( for X and Y of all players) and multiplied them.
for example:
first player:
RPx1 = crp(x1,1,25,.1,'rr');
RPy1 = crp(y1,1,7,.1,'rr');
second player:
RPx2 = crp(x2,1,20,.1,'rr');
RPy2 = crp(y2,1,25,.1,'rr');
...

--> JRP = RPx1.*RPy1.*RPx2.*RPy2....;

My question is how can I build a recurrence plot of this matrix (JRP) after that?

please excuse my many questions and thank you for answering me!

Best regards,
Denise

Re: JRP Function

Posted: Wed Jun 25, 2014 06:09
by Norbert
Hi Denise,

interesting data, indeed! :D

What you did is the construction of the joint recurrence plot. This is one possible solution. I am not sure why you have multiplied also the 2nd player with the 1st player. But when you simply multiply the RPs of the x- and y-component of the 1st player, this corresponds to the RP of the trajectory based on the x- and y-component (at least for max norm).

What I would do is to use the crp2 function of the CRP toolbox and use the x- and y component directly as the two-dimensional phase space trajectory:

Code: Select all

R1 = crp2([x1(:) y1(:)], 1, 1, 0.1, 'rr');
This is the RP of the player position 1. Depending on your research question you can then apply further analysis. For example, you can (as you did already) construct the joint RP with another player: JR = R1 .* R2 or apply a windowed RQA in order to study nonstationary behaviour or typical patterns over time.

Several years ago I had some questions from sport researchers from Bavaria which also worked with such data. Unfortunately, I haven't heard from them for long time. I would be curious to see the results of recurrence analysis of soccer games.

Best
Norbert

Re: JRP Function

Posted: Wed Jun 25, 2014 13:19
by denise
Hi Norbert,

thank you for your advices! I will try the CRP2 function, but how can I plot R1 or JR after that?

Best regards
Denise

Re: JRP Function

Posted: Wed Jun 25, 2014 15:40
by Norbert
you can plot with

Code: Select all

imagesc(R1)
axis xy square
colormap([1 1 1;0 0 0])
or you can simply use the interactive mode of the function:

Code: Select all

crp2(x,…)
(simply drop the left-hand output argument)

Re: JRP Function

Posted: Wed Jul 16, 2014 10:59
by denise
Dear Norbert,

if i use the crp2 function and use the x- and y component directly as the two-dimensional phase space trajectory, i have different delays for x and y. for example 26 and 8. Is there a rule to determine the delay in this case?

Regards,
Denise

Re: JRP Function

Posted: Wed Jul 16, 2014 13:06
by Norbert
If you use x and y as the state components then the assumption is that both form the phase space, i.e., embedding is usually not necessary. If you chose embedding anyway, then the embedding need to be the same for both. Theoretically, one should consider to use the highest embedding dimension, but practically a much lower dimension would be better (as long as the time series is short).