相関を調べたい

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

採用された回答

Shunichi Kusano
Shunichi Kusano 2021 年 11 月 5 日
waveletを使った相関ということですので、こちらの例が当てはまるかと思います。日本語訳がわかりにくいですがコヒーレンス=相関と思ってもらって大丈夫です。
wavelet解析では局所的な周波数応答を捉えることが可能になるので、短い時間での相関を見るのにも適しています。
  5 件のコメント
Sato Ren
Sato Ren 2021 年 11 月 17 日
パソコンでgoogle chromeを用いて見ると、閲覧することが可能かと思います。無料でオープンアクセスできるものなので。
縦軸はcoherence、横軸は時間で、グラフとなっております。各時間でコヒーレンスがどれくらいになるかわかります。また下記のURLでいう図2です。
くさの様が先ほど添付してくださったwavelet coherenceの図から、上記のグラフにしたいと考えております。

サインインしてコメントする。

その他の回答 (1 件)

Shunichi Kusano
Shunichi Kusano 2021 年 11 月 17 日
時間ごとのコヒーレンスをプロットするということなので先のコメントで述べた通りかと思います。下記が例となります。
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 件のコメント
Sato Ren
Sato Ren 2021 年 11 月 26 日
ご回答ありがとうございます。
wavelet coherenceの図での→の意味は何を示しているんでしょうか。
下記のURLでは、位相の向きと書かれていますが、具体的に教えていただくことは可能でしょうか。

サインインしてコメントする。

カテゴリ

Find more on 直交および双直交フィルター バンク in Help Center and File Exchange

タグ

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!