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