How to decide dimension (using correlationDimension function)?

1 Ansicht (letzte 30 Tage)
I have some data y and I want to derive correlation dimension of this data.
So, I followed the example of correlation function as followings.
xdata = y(:); Np = 100; dim = ??
[~,lag] = phaseSpaceReconstruction(xdata,[],dim)
tmp = correlataionDimension(xdata,'Dimenstion',dim,'Lag',lag,'NumPoints',Np)
And, here is the problem. I exactly know the dimension of original system of xdata =100, but correlation dimension of xdata is less than 10.
Then, can I use dim = 10 for given code?? Or still I need to use dim = 100?

Akzeptierte Antwort

Bora Eryilmaz
Bora Eryilmaz am 8 Feb. 2019
Bearbeitet: Bora Eryilmaz am 8 Feb. 2019
Hi JaeSung,
You can estimate the embedding dimension of your data using the phaseSpaceReconstruction command and use that value for the dimension argument of the correlationDimension command. You can code something like this:
[~, lag, dim] = phaseSpaceReconstruction(xdata);
cd = correlationDimension(xdata, lag, dim)
You can also experiment with the phaseSpaceReconstruction command by providing your own dimension (and lag, if you want) and look at the resulting plot to make sure that the dimension you provided makes sense. For example, you can try:
phaseSpaceReconstruction(xdata, lag, dim);
Once you are satisfied with the lag and dim values, then use them in the correlationDimension command.
Note that the length of your data vector, xdata, is NOT the dimension in question here. It is typically the dimension of the state-space of the system that generated the data. Think of it this way: you can have data of length Np from solving a second-order differential equation. Then, the dimension in question here is more like "2" rather than Np.
Hope this helps,
Bora
  2 Kommentare
中路 林
中路 林 am 8 Jun. 2021
Hi Bora,
Thanks for this answer, since I had the same question.
May I request a detailed instruction on the choice of the "dim" (i.e. embedding dimension) ?
For example, I study an object that can only move on y direction, then I guess dim = 1, is that correct?
I.e. if we consider the time series of a moving object: (X(t), Y(t), Z(t)), the embedding dimension is the number of dimensions involved in this motion. If the object moves on a line, then time series X(t) will have a embedded dimension of 1. If on a plane, then X(t) got "dim = 2". Is that right?
Sorry that it migth be very basic. Any material to understand these basic concepts are appreciated!
With kind regards,
Zhonglu Lin
Postdoc
Xiamen University
Bora Eryilmaz
Bora Eryilmaz am 8 Jun. 2021
Typically the number of dimensions is more related to the dimensions of the "state space" (or internal dynamics) of the system, not necessarily to the number of space dimensions of the motion.
Think of a car moving in 3D: Even though the motion of the car is limited to the 3 dimensional space, you would agree that the internal dynamics of a car is much more complex. Depending on what kind of signals you might be measuring (vibration, temperature, voltage, etc.), you can probably construct a much larger phase space to describe or visualize the internal dynamics of some parts of the car. It is this larger "dimension" that we are talking about when it comes to the phase space or correlation dimensions.
Hope this helps.
Bora

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Design Condition Indicators finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by