MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Map Correlation[] across sublists of matrices

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112510] Re: Map Correlation[] across sublists of matrices
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Sat, 18 Sep 2010 07:24:19 -0400 (EDT)
  • References: <i6vgl9$3kh$1@smc.vnet.net>

On Sep 17, 3:41 am, Garapata <warsaw95... at mypacks.net> wrote:
> Hi everyone,
>
> I have a matrix of times series data with the following dimensions:
>
> Dimensions[timeSeriesMatrix]
>
> {281, 5}
>
> I want to partition the data into sliding windows of varying lengths
> then find all the correlations of each window as it slides across the
> data.  To make this a bit clearer=E2=80=A6
>
> I set up the following list to hold the window lengths:
>
> window = {2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233}
>
> (Nothing important about the Fibonacci ratio, just using it to look at
> different chunks of data.  Eventually I'll do it continuously.)
>
> I then partition the data like this:
>
> partitionedData = Partition[timeSeriesMatrix, #, 1] & /@ windows;
>
> This gives me a list of sublists of matrices with the following
> dimensions:
>
> Dimensions[#] & /@ partitionedData
>
> {{280, 2, 5}, {279, 3, 5}, {277, 5, 5}, {274, 8, 5}, {269, 13, 5},
> {261, 21, 5}, {248, 34, 5}, {227, 55, 5}, {193, 89, 5}, {138, 144, 5},
> {49, 233, 5}}
>
> To explain a bit, the first sublist in partitionedData (dimensions
> {280, 2, 5}) has 280 matrices each with a 2 data point "window" for 5
> time series.  The last matrix has 49 matrices each with 233 data
> points for the 5 time series.
>
> Now I need to map Correlation[] across each matrix in each sublist.
>
> The following gets me part of the way there, but I don't think I've
> thought about the problem in the right way yet:
>
> Correlation[partitionedData[[#, 1]]] & /@ Range[Length[windows]];
> =E2=80=A8Dimensions[%]
>
> {11, 5, 5}
>
> This above only gives me the first matrix in each sublist.  I need
> them all.
>
> I think I've missed something simple.  Any suggestions much
> appreciated.
>
> Thanks to all in advance.
>
> G
>
> P.S., Once I have this I hope to wrap a manipulate around it with
> controls to let me display and examine how the correlations change as
> the different windows slide across the original time series data.  So
> if anyone has some terrific short cut to do it, let me know.
>
> Again, thanks in advance.
>
> G

Dimensions /@  Map[Correlation,partitionedData,{2}]

{{280, 5, 5}, {279, 5, 5}, {277, 5, 5}, {274, 5, 5}, {269, 5, 5},
 {261, 5, 5}, {248, 5, 5}, {227, 5, 5}, {193, 5, 5}, {138, 5, 5},
 { 49, 5, 5}}


  • Prev by Date: Re: New Version 3 Presentations
  • Next by Date: Re: Evaluate a Mathematica Notebook from Applescript (e.g. every morning)
  • Previous by thread: Map Correlation[] across sublists of matrices
  • Next by thread: A little help with sort