필터 지우기
필터 지우기

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

조회 수: 2 (최근 30일)
Shinsuke Okayasu
Shinsuke Okayasu 2020년 2월 21일
댓글: Shinsuke Okayasu 2020년 2월 24일
ライブスクリプト上でデータ解析を実施するのが目的です。
エクセル、CSV上のデータをMatlab上にインポートしました。
特定の列(データ名有)のデータが別の列データと相関やn次関数と近似できるかどうかを確認したいです。
関係性を可視化するためにプロット一覧を表示したいのですが、そのために有効手段はあるでしょうか?
  댓글 수: 3
Shinsuke Okayasu
Shinsuke Okayasu 2020년 2월 21일
相関係数や近似可能性の検討はまだmatlabでは行っていません。 計算も含めて、可視化matlab 上でを行いたいと考えています。
Shinsuke Okayasu
Shinsuke Okayasu 2020년 2월 21일
편집: Shinsuke Okayasu 2020년 2월 21일
ある列に対して、他の全ての列から別の列の相関係数や近似の係数が特定の数字以上をもつ列だけを抜き出してプロットということができればいいと考えています

댓글을 달려면 로그인하십시오.

채택된 답변

Hiroki Okawa
Hiroki Okawa 2020년 2월 21일
편집: Hiroki Okawa 2020년 2월 21일
配列なのか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
Hiroki Okawa
Hiroki Okawa 2020년 2월 21일
편집: Hiroki Okawa 2020년 2월 21일
綺麗にまとまっているデータですね!
今回必要なセンサーデータを table2array関数などで取り出せば、上記のcorrcoef関数が利用可能です。
data_y = table2array(T(:, 5:end)); % Tがエクセルから取り出したテーブル変数と仮定しています。
ちなみに、得られたインデックスindexから列名を取得したい場合、テーブル変数Tに対して
T.Properties.VariableNames{index}
となります。コマンドウィンドウに文字列で表示する場合は
disp([T.Properties.VariableNames{c}, ' に対して最も相関係数が高いセンサー: ', T.Properties.VariableNames{index}])
となります。これらをfor文で実行すれば各列分の処理ができます。
高いものから順番にn個見つけたい場合はmaxk関数もありますので、ぜひコードを書いてみてください。
Shinsuke Okayasu
Shinsuke Okayasu 2020년 2월 24일
ありがとうございます!!
データ処理を進めることができそうです。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!