相関を調べたい
4 ビュー (過去 30 日間)
古いコメントを表示
今、研究でデータの相関を調べています。
自分が使っている関数は”corrcoef”です。しかしながら、先行研究では、wavelet解析を行ってるため、waveletを使用して、相関を調べたいです。
調べたところ、”corrcoef”は短い時間においての相関を調べるにはあまり向いていないと記載されていました。時間は、短い時間において、相関を見るにはどのようにするのが最も良い選択でしょうか。
waveletで、相関を見ることは可能なのか、他の関数だと何がおすすめなのか、教えてほしいです。
0 件のコメント
採用された回答
Shunichi Kusano
2021 年 11 月 5 日
waveletを使った相関ということですので、こちらの例が当てはまるかと思います。日本語訳がわかりにくいですがコヒーレンス=相関と思ってもらって大丈夫です。
wavelet解析では局所的な周波数応答を捉えることが可能になるので、短い時間での相関を見るのにも適しています。
5 件のコメント
Shunichi Kusano
2021 年 11 月 17 日
すみません、ライセンスの問題でAbstractくらいしか表示できませんでした。ライセンスの問題なので当該図のキャプチャを添付してもらうのもあまり良くないと思います。類似の図でWebで誰でも見れるものをみつけて貼付いただくか、どのような図なのか(横軸が何で縦軸が何、とか)を説明していただければ、何か言えることもあるかもしれませんが…。
その他の回答 (1 件)
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
参考
カテゴリ
Help Center および File Exchange で 信号解析 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!