How to decide dimension (using correlationDimension function)?

조회 수: 1 (최근 30일)
JaeSung Choi
JaeSung Choi 2018년 11월 15일
댓글: Bora Eryilmaz 2021년 6월 8일
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?

채택된 답변

Bora Eryilmaz
Bora Eryilmaz 2019년 2월 8일
편집: Bora Eryilmaz 2019년 2월 8일
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
中路 林
中路 林 2021년 6월 8일
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 2021년 6월 8일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Design Condition Indicators에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by