MATLAB Answers

データ解析をするためにプロットを多数表示する。

2 views (last 30 days)
ライブスクリプト上でデータ解析を実施するのが目的です。
エクセル、CSV上のデータをMatlab上にインポートしました。
特定の列(データ名有)のデータが別の列データと相関やn次関数と近似できるかどうかを確認したいです。
関係性を可視化するためにプロット一覧を表示したいのですが、そのために有効手段はあるでしょうか?
  3 Comments
Shinsuke Okayasu
Shinsuke Okayasu on 21 Feb 2020
ある列に対して、他の全ての列から別の列の相関係数や近似の係数が特定の数字以上をもつ列だけを抜き出してプロットということができればいいと考えています

Sign in to comment.

Accepted Answer

Hiroki Okawa
Hiroki Okawa on 21 Feb 2020
Edited: Hiroki Okawa on 21 Feb 2020
配列なのかTableによって、細かいコードは変わってきます。
データが二次元配列で、各列がデータだと仮定してみます。
data_x = 1 : 100;
data_y = rand(100, 50);
という1サンプル100点、50サンプルに対して、例えば相関係数であれば
mat_cc = corrcoef(data_y);
でそれぞれの組み合わせの相関係数が得られます。mat_cc(i, j) はdata_y(:, i)と data_y(:, j)の相関係数です。
ある列cに対して相関係数が最も高い列を一緒にプロットしたい場合、
c = 1; % 仮にc = 1と置きます。
[~, index] = max(mat_cc(c, :) - eye(50) * Inf);
% index = mat_cc(:, c) > 0.7; % 相関係数が0.7以上のものを全てプロットする場合はこのように。
figure;
plot(data_x, data_y(:, c), '-', data_x, data_y(:, index), '--');
title([num2str(c), '列目に対して最も相関係数が高い列: ', num2str(index)])
となります。
どのようなデータに対して、具体的にどのような処理を行い、どのようなグラフを示したいのかを示し、今どこで躓いているのかを教えていただけますとより具体的なアドバイスができるかもしれません。
  3 Comments
Shinsuke Okayasu
Shinsuke Okayasu on 24 Feb 2020
ありがとうございます!!
データ処理を進めることができそうです。

Sign in to comment.

More Answers (0)

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!