相関を調べたい

4 views (last 30 days)
Sato Ren
Sato Ren on 4 Nov 2021
Commented: Sato Ren on 26 Nov 2021
今、研究でデータの相関を調べています。
自分が使っている関数は”corrcoef”です。しかしながら、先行研究では、wavelet解析を行ってるため、waveletを使用して、相関を調べたいです。
調べたところ、”corrcoef”は短い時間においての相関を調べるにはあまり向いていないと記載されていました。時間は、短い時間において、相関を見るにはどのようにするのが最も良い選択でしょうか。
waveletで、相関を見ることは可能なのか、他の関数だと何がおすすめなのか、教えてほしいです。

Accepted Answer

Shunichi Kusano
Shunichi Kusano on 5 Nov 2021
waveletを使った相関ということですので、こちらの例が当てはまるかと思います。日本語訳がわかりにくいですがコヒーレンス=相関と思ってもらって大丈夫です。
wavelet解析では局所的な周波数応答を捉えることが可能になるので、短い時間での相関を見るのにも適しています。
  5 Comments
Shunichi Kusano
Shunichi Kusano on 17 Nov 2021
すみません、ライセンスの問題でAbstractくらいしか表示できませんでした。ライセンスの問題なので当該図のキャプチャを添付してもらうのもあまり良くないと思います。類似の図でWebで誰でも見れるものをみつけて貼付いただくか、どのような図なのか(横軸が何で縦軸が何、とか)を説明していただければ、何か言えることもあるかもしれませんが…。
Sato Ren
Sato Ren on 17 Nov 2021
パソコンでgoogle chromeを用いて見ると、閲覧することが可能かと思います。無料でオープンアクセスできるものなので。
縦軸はcoherence、横軸は時間で、グラフとなっております。各時間でコヒーレンスがどれくらいになるかわかります。また下記のURLでいう図2です。
くさの様が先ほど添付してくださったwavelet coherenceの図から、上記のグラフにしたいと考えております。

Sign in to comment.

More Answers (1)

Shunichi Kusano
Shunichi Kusano on 17 Nov 2021
時間ごとのコヒーレンスをプロットするということなので先のコメントで述べた通りかと思います。下記が例となります。
t = 0:0.001:2;
x = cos(2*pi*10*t).*(t>=0.5 & t<1.1)+...
cos(2*pi*50*t).*(t>= 0.2 & t< 1.4)+0.25*randn(size(t));
y = sin(2*pi*10*t).*(t>=0.6 & t<1.2)+...
sin(2*pi*50*t).*(t>= 0.4 & t<1.6)+ 0.35*randn(size(t));
wcoh = wcoherence(x,y,1000);
c = max(wcoh,[],1); % 時間ごとの最大の相関値
plot(t,c);
信頼区間みたいなものがどのように出ているかわかりかねますが、表示であればarea関数が使えそうです。
https://www.mathworks.com/help/matlab/ref/area.html
  1 Comment
Sato Ren
Sato Ren on 26 Nov 2021
ご回答ありがとうございます。
wavelet coherenceの図での→の意味は何を示しているんでしょうか。
下記のURLでは、位相の向きと書かれていますが、具体的に教えていただくことは可能でしょうか。

Sign in to comment.

Tags

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!