Main Content

記述統計による計算

さらに高度な統計機能が必要な場合は、Statistics and Machine Learning Toolbox™ ソフトウェアを使用できます。

記述統計用の関数

データに対して記述統計計算を行うには、次の MATLAB® 関数を使用します。

メモ

行列データでは、列ごとに記述統計が別々に演算されます。

統計関数の概要

関数

説明

max

最大値

mean

平均、平均値

median

中央値

min

最小値

mode

最頻値

std

標準偏差

var

ベクトルの分散 (ベクトル値のばらつきや分散の尺度)

次の例では、MATLAB 関数を適用して、記述統計をとる方法を示します。

例 1 — 最大、平均、標準偏差の計算

次の例では、count という 24 行 3 列の行列に MATLAB 関数を適用して最大、平均、標準偏差の値を求める方法を示します。MATLAB では、行列の列ごとに別々に統計をとります。

% Load the sample data
load count.dat
% Find the maximum value in each column
mx = max(count)
% Calculate the mean of each column
mu = mean(count)
% Calculate the standard deviation of each column
sigma = std(count)

結果は、次のようになります。

mx =
          114          145          257

mu = 
      32.0000      46.5417      65.5833

sigma =
      25.3703      41.4057      68.0281

各データ列における最大データ値の行番号を知るには、行のインデックスを出力する第 2 の出力パラメーター indx を指定します。たとえば以下の

[mx,indx] = max(count)

は、次の結果を生成します。

mx =
      114     145     257

indx =
      20    20    20

ここで、出力変数 mx は、3 つのデータ列それぞれの最大値を含む行ベクトルです。変数 indx は、最大値に相当する各列の行インデックスを含みます。

行列 count 全体での最小値を見つけるには、構文 count(:) を使用して、この 24 行 3 列の行列を 72 行 1 列のベクトルに変換します。次に、データセット全体での count の最小値を見つけるために、次の構文を使用します。

min(count(:))

ans =
      7

例 2 — 平均を差し引く

次の構文を用いて、行列の各列から平均値を差し引きます。

% Get the size of the count matrix
[n,p] = size(count)
% Compute the mean of each column
mu = mean(count)
% Create a matrix of mean values by
% replicating the mu vector for n rows
MeanMat = repmat(mu,n,1)
% Subtract the column mean from each element
% in that column
x = count - MeanMat

メモ

データから平均を差し引くことは、"トレンド除去" とも呼ばれます。データから平均または最適な近似線を取り除く方法の詳細については、Remove Linear Trends from Timetable Dataを参照してください。

例: MATLAB データの統計量の利用

データの統計量

[データの統計量] ダイアログ ボックスを使用して、データの記述統計演算やプロットを行うことができます。この例は、count という 24 行 3 列の行列のデータの統計量をとり、プロットする方法を示します。このデータは、3 本の道路に設置された交通量調査ステーションを通過する車両の数を表します。

本節は、以下のトピックスを含みます。

メモ

MATLAB データの統計量は 2 次元プロットに対してのみ利用できます。

記述統計とプロット

  1. データの読み込みとプロット

    load count.dat
    [n,p] = size(count);
    
    % Define the x-values
    t = 1:n;
    
    % Plot the data and annotate the graph
    plot(t,count)
    legend('Station 1','Station 2','Station 3','Location','northwest')
    xlabel('Time')
    ylabel('Vehicle Count')
    

    Plot of Time and Vehicle Count variables with lines for Station 1, Station 2, and Station 3 data.

    メモ

    凡例には、関数 legend で指定された各データセットの名前 Station 1Station 2Station 3 が含まれます。"データセット" は、プロットした配列内のデータの各列を参照します。データセットの名前を指定しないと、data1data2 という要領で既定の名前が付けられます。

  2. Figure ウィンドウで、[ツール]、[データの統計量] を選択します。

    [データの統計量] ダイアログ ボックスが開き、Station 1 データセットの X データと Y データの記述統計が表示されます。

    メモ

    [データの統計量] ダイアログ ボックスに表示される "範囲" とは、選択されたデータセットの最小値と最大値の差です。このダイアログ ボックスではプロットの範囲は表示されません。

  3. [データの統計量の対象] リストで異なるデータセット Station 2 を選択します。

    これによって、Station 2 データセットの X データと Y データに対する統計量が表示されます。

  4. プロット上に表示したい統計量のチェック ボックスを選択し、[ワークスペースに保存] をクリックします。

    たとえば、Station 2 の平均をプロットするためには、[Y] 列の [平均値] チェック ボックスをオンにします。

    Data Statistics dialog with the Station 2 y mean selected.

    これにより、Station 2 の平均を表す水平線がプロットされ、凡例がこの統計情報を含むように更新されます。

    Plot of Time and Vehicle Count variables with a horizontal line representing the y mean.

プロット上のデータの統計量の書式設定

[データの統計量] ダイアログ ボックスは、プロット上のデータからの統計情報の識別に、色とライン スタイルを使用します。ここでは、色、線の太さ、ライン スタイル、マーカーなど、プロット上の記述統計量の表示をカスタマイズする方法を示します。

メモ

データに関する統計量をグラフに付加し終えるまで、データ統計量のプロットのプロパティを編集してはいけません。プロットのプロパティを編集後、統計量を追加または削除すると、変更が失われます。

プロットのデータの統計量の表示を変更するには

  1. MATLAB の Figure ウィンドウで、ツール バーの ([プロット編集]) ボタンをクリックします。

    この手順により、プロットを編集できます。

  2. 表示プロパティを編集したい統計量について、プロット上で統計量をダブルクリックします。たとえば、Station 2 の平均を表す水平ラインをダブルクリックします。

    この手順により、[プロパティ インスペクター] が開きます。ここで、この統計量の表示に使用するラインの外見を変更できます。

    Property Inspector dialog with line color, line style, line width, marker type, and marker size options.

  3. [プロパティ インスペクター] ウィンドウで、ラインとマーカーのスタイル、サイズ、色を指定します。

    ヒント

    または、プロット上で統計量を右クリックし、ショートカット メニューからオプションを選択します。

MATLAB ワークスペースへの統計量の保存

以下の手順により統計量を MATLAB ワークスペースに保存します。

メモ

プロットが複数のデータセットを含む場合、各データセットの統計量を個々に保存します。別のデータセットに対して統計量を表示するためには、[データの統計量] ダイアログ ボックスの [データの統計量の対象] リストからその統計量を選択します。

  1. [データの統計量] ダイアログ ボックスで、[ワークスペースに保存] ボタンをクリックします。

  2. [近似をワークスペースへ保存] ダイアログ ボックスで、X データ、Y データ、またはその両方の、どの統計量を保存するか、オプションを選択します。次に、対応する変数名を入力します。

    この例では、Y データのみ保存します。変数名を Loc2countstats と入力します。

    Dialog specifying to save Y stats to a MATLAB struct named Loc2countstats.

  3. [OK] をクリックします。

    この手順によって、構造体に記述統計量が保存されます。新しい変数が MATLAB ワークスペースに追加されます。

新しい構造体変数を表示するには、MATLAB プロンプトで変数名を入力します。

Loc2countstats
Loc2countstats = 

  struct with fields:

       min: 9
       max: 145
      mean: 46.5417
    median: 36
      mode: 9
       std: 41.4057
     range: 136

コード ファイルの生成

この例では、新しいデータを用いてプロットの形式とプロットする統計量を作成し直すための MATLAB コードを含むファイルを生成する方法を示します。コード ファイルの生成は MATLAB Online™ では利用できません。

  1. Figure ウィンドウで、[ファイル]、[コードの生成] を選択します。

    この手順により、関数コード ファイルが作成され、MATLAB エディターに表示されます。

  2. ファイルの最初の行の関数名を createfigure から、countplot のように、わかりやすい名前に変更します。このファイルを現在のフォルダーに countplot.m という名前で保存します。

  3. ランダムな新しい count データを生成します。

    rng('default')
    randcount = 300*rand(24,3);
  4. 新しいデータと再計算した統計量を用いてプロットを作成し直します。

    countplot(t,randcount)

    Plot of Time and Vehicle Count variables with a horizontal line representing the y mean.