Main Content

zscore

標準化された z スコア

説明

Z = zscore(X) は、X の各要素について、X のその列が平均値が 0 になるようセンタリングされ、標準偏差が 1 になるようスケーリングされるような z スコアを返します。ZX と同じサイズになります。

  • X がベクトルの場合、Z は z スコアのベクトルになります。

  • X が行列の場合、ZX と同じサイズの行列になり、Z の各列の平均が 0、標準偏差が 1 になります。

  • 多次元配列の場合、Z の z スコアは X大きさが 1 でない最初の次元に対して計算されます。

Z = zscore(X,flag) は、flag で指定された標準偏差を使用して X をスケーリングします。

  • flag が既定の設定で 0 の場合、zscore は n - 1 を標準偏差式の分母として標本標準偏差を使用して X をスケーリングします。zscore(X,0) は、zscore(X) と同じです。

  • flag が 1 の場合、zscore は n を標準偏差式の分母として母標準偏差を使用して X をスケーリングします。

Z = zscore(X,flag,'all') は、X のすべての値の平均および標準偏差を使用して、X を標準化します。

Z = zscore(X,flag,dim) は、作用次元 dim に沿って X を標準化します。たとえば X という行列について、dim = 1 の場合、zscoreX の列に沿って平均と標準偏差を使用します。dim = 2 の場合、zscoreX の行に沿って平均と標準偏差を使用します。

Z = zscore(X,flag,vecdim) は、ベクトル vecdim で指定された次元で X を標準化します。たとえば X が行列である場合、次元 1 および 2 によって定義される配列スライスには行列のそれぞれの要素がすべて含まれるため、zscore(X,0,[1 2])zscore(X,0,'all') に等しくなります。

[Z,mu,sigma] = zscore(___) は、センタリングとスケーリングに使用される平均 mu および標準偏差 sigma もそれぞれ返します。前の構文の入力引数のいずれかを使用できます。

すべて折りたたむ

2 つのデータ ベクトルの z スコアを計算してプロットし、結果を比較します。

標本データを読み込みます。

load lawdata

ワークスペースには 2 つの変数が読み込まれます。gpalsat

両方の変数を同じ軸上にプロットします。

plot([gpa,lsat])
legend('gpa','lsat','Location','East')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent gpa, lsat.

これら 2 つの測定値はスケールが異なるため、比較するのが困難です。

gpalsatz スコアを同じ座標軸にプロットします。

Zgpa = zscore(gpa);
Zlsat = zscore(lsat);
plot([Zgpa, Zlsat])
legend('gpa z-scores','lsat z-scores','Location','Northeast')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent gpa z-scores, lsat z-scores.

すると、gpalsat の両方の結果について各個人の相対的な成績を見ることができます。たとえば、3 人目の gpalsat の結果は両方とも標本平均より 1 標準偏差低くなっています。また、11 人目の gpa は標本平均とほぼ同じですが、lsat のスコアは標本平均を 1.25 標準偏差ほど上回っています。

作成した z スコアの平均と標準偏差をチェックします。

 mean([Zgpa,Zlsat])
ans = 1×2
10-14 ×

   -0.1088    0.0357

 std([Zgpa,Zlsat])
ans = 1×2

     1     1

定義により、gpalsatz スコアは平均が 0、標準偏差が 1 です。

標本データを読み込みます。

load lawdata

ワークスペースには 2 つの変数が読み込まれます。gpalsat

標準偏差について母集団の式を使用して、gpaz スコアを計算します。

Z1 = zscore(gpa,1); % population formula
Z0 = zscore(gpa,0); % sample formula
disp([Z1 Z0])
    1.2554    1.2128
    0.8728    0.8432
   -1.2100   -1.1690
   -0.2749   -0.2656
    1.4679    1.4181
   -0.1049   -0.1013
   -0.4024   -0.3888
    1.4254    1.3771
    1.1279    1.0896
    0.1502    0.1451
    0.1077    0.1040
   -1.5076   -1.4565
   -1.4226   -1.3743
   -0.9125   -0.8815
   -0.5724   -0.5530

母集団から派生した標本では、分母が n である母標準偏差の式が母標準偏差の最尤推定量に対応し、偏りがある可能性があります。これに対して標本標準偏差式は、標本の母標準偏差の不偏推定量です。

データ行列の列または行に沿って計算した平均および標準偏差を使用して、z スコアを計算します。

標本データを読み込みます。

load flu

データセット配列 flu をワークスペースに読み込みます。flu には 11 個の変数について 52 の観測値があります。最初の変数には日付 (週単位) が含まれています。ほかの変数には、米国の各地域別のインフルエンザ推定発生件数が含まれています。

データセット配列をデータセット行列に変換します。

flu2 = double(flu(:,2:end));

新しいデータ行列 flu2 は 52 行 10 列の double データ行列です。行はデータ セット配列 flu 内の週に対応し、列は米国の各地域に対応します。

地域ごと (flu2"列") のインフルエンザ推定発生件数を標準化します。

Z1 = zscore(flu2,[ ],1);

変数エディターで z スコアを確認するには、ワークスペースで作成した行列 Z1 をダブルクリックします。

週ごと (flu2"行") のインフルエンザ推定発生件数を標準化します。

Z2 = zscore(flu2,[ ],2);

さまざまな次元に沿ってデータを標準化するよう指定して、多次元配列の z スコアを求めます。入力引数 'all'dim および vecdim を使用した場合の結果を比較します。

3 x 4 x 2 の配列を作成します。

X = reshape(1:24,[3 4 2])
X = 
X(:,:,1) =

     1     4     7    10
     2     5     8    11
     3     6     9    12


X(:,:,2) =

    13    16    19    22
    14    17    20    23
    15    18    21    24

X のすべての値の平均および標準偏差を使用して、X を標準化します。

Zall = zscore(X,0,'all')
Zall = 
Zall(:,:,1) =

   -1.6263   -1.2021   -0.7778   -0.3536
   -1.4849   -1.0607   -0.6364   -0.2121
   -1.3435   -0.9192   -0.4950   -0.0707


Zall(:,:,2) =

    0.0707    0.4950    0.9192    1.3435
    0.2121    0.6364    1.0607    1.4849
    0.3536    0.7778    1.2021    1.6263

生成された z スコアの多次元配列は、平均が 0、標準偏差が 1 です。たとえば、Zall の平均と標準偏差を計算します。

mZall = mean(Zall(:,:,:),'all')
mZall = -9.2519e-18
sZall = std(Zall(:,:,:),0,'all')
sZall = 1.0000

次に、2 番目の次元に沿って X を標準化します。

Zdim = zscore(X,0,2)
Zdim = 
Zdim(:,:,1) =

   -1.1619   -0.3873    0.3873    1.1619
   -1.1619   -0.3873    0.3873    1.1619
   -1.1619   -0.3873    0.3873    1.1619


Zdim(:,:,2) =

   -1.1619   -0.3873    0.3873    1.1619
   -1.1619   -0.3873    0.3873    1.1619
   -1.1619   -0.3873    0.3873    1.1619

Zdim の各ページの各行の要素は、平均が 0、標準偏差が 1 です。たとえば、Zdim の 2 ページ目の 1 行目の平均と標準偏差を計算します。

mZdim = mean(Zdim(1,:,2),'all')
mZdim = 0
sZdim = std(Zdim(1,:,2),0,'all')
sZdim = 1

最後に、2 番目および 3 番目の次元に基づいて X を標準化します。

Zvecdim = zscore(X,0,[2 3])
Zvecdim = 
Zvecdim(:,:,1) =

   -1.4289   -1.0206   -0.6124   -0.2041
   -1.4289   -1.0206   -0.6124   -0.2041
   -1.4289   -1.0206   -0.6124   -0.2041


Zvecdim(:,:,2) =

    0.2041    0.6124    1.0206    1.4289
    0.2041    0.6124    1.0206    1.4289
    0.2041    0.6124    1.0206    1.4289

Zvecdim(i,:,:) スライスの要素は、平均が 0、標準偏差が 1 です。たとえば、Zvecdim(1,:,:) の要素の平均と標準偏差を計算します。

mZvecdim = mean(Zvecdim(1,:,:),'all')
mZvecdim = 2.7756e-17
sZvecdim = std(Zvecdim(1,:,:),0,'all')
sZvecdim = 1

z スコアの計算に使用する平均と標準偏差を取得します。

標本データを読み込みます。

load lawdata

ワークスペースには 2 つの変数が読み込まれます。gpalsat

gpaz スコア、平均および標準偏差を取得します。

[Z,gpamean,gpastdev] = zscore(gpa)
Z = 15×1

    1.2128
    0.8432
   -1.1690
   -0.2656
    1.4181
   -0.1013
   -0.3888
    1.3771
    1.0896
    0.1451
      ⋮

gpamean = 3.0947
gpastdev = 0.2435

入力引数

すべて折りたたむ

ベクトル、行列または多次元配列として指定される入力データ。

データ型: double | single

0 または 1 として指定される、z スコアの計算に使用される標準偏差のインジケーター。

  • flag が既定の設定で 0 の場合、zscore標本標準偏差を使用して X をスケーリングします。zscore(X,0)zscore(X) と同じです。

  • flag が 1 の場合、zscore母標準偏差を使用して X をスケーリングします。

X の z スコア計算の対象となる次元。正の整数スカラーを指定します。値を指定しなかった場合、サイズが 1 ではない最初の配列次元が既定値になります。

たとえば X という行列について、dim = 1 の場合、zscoreX の列に沿って平均と標準偏差を使用します。dim = 2 の場合、zscoreX の行に沿って平均と標準偏差を使用します。

X の z スコア計算の対象となる次元のベクトル。正の整数ベクトルを指定します。vecdim の各要素は、入力配列 X の次元を表します。出力 Z の次元数は X と同じですが、平均 mu および標準偏差 sigma はそれぞれ作用次元で長さ 1 になります。他の次元の長さは、Xmu および sigma で同じになります。

たとえば、X が 2 x 3 x 3 の配列である場合、zscore(X,0,[1 2])X のページに沿った平均と標準偏差を使用して X の値を標準化します。

データ型: single | double

出力引数

すべて折りたたむ

z- スコア。ベクトル、行列、または多次元配列として返されます。Z の次元数は X と同じです。

Z の値は、'all'dim または vecdim を指定するかどうかによって異なります。これらの入力引数を指定しない場合、以下の条件が適用されます。

  • X がベクトルである場合、Z は平均 0 および分散 1 をもつ z スコアのベクトルになります。

  • X が配列である場合、zscoreX の大きさが 1 でない最初の次元に沿って標準化を行います。

'all'dim および vecdim を使用する場合の Z の違いを示す例については、多次元配列の z スコアを参照してください。

z スコアの計算に使用した X の平均。スカラー、ベクトル、行列、または多次元配列として返されます。mu の長さは、指定された作用次元で 1 になります。他の次元の長さは、Xmu で同じになります。

たとえば、X が 2 x 3 x 3 の配列であり、vecdim[1 2] である場合、mu は 1 x 1 x 3 の平均の配列になります。mu の各値は、X のページの平均に対応します。

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

z スコアの計算に使用した X の標準偏差。スカラー、ベクトル、行列、または多次元配列として返されます。sigma の長さは、指定された作用次元で 1 になります。他の次元の長さは、Xsigma で同じになります。

たとえば、X が 2 x 3 x 3 の配列であり、vecdim[1 2] である場合、sigma は 1 x 1 x 3 の標準偏差の配列になります。sigma の各値は、X のページの標準偏差に対応します。

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

詳細

すべて折りたたむ

z スコア

平均が μ、標準偏差が σ である確率変数 X の場合、値 x の z スコアは次のようになります。

z=(xμ)σ.

平均が X¯、標準偏差が S である標本データの場合、データ点 x の z スコアは次のようになります。

z=(xX¯)S.

z スコアは、データ点の平均からの距離を標準偏差に換算して測定します。これは、データの "標準化" とも呼ばれます。標準化されたデータ セットは平均 0、標準偏差 1 であり、元のデータ セットの形状プロパティ (つまり同じ歪度と尖度) を維持します。

z スコアを使用して、追加の解析を行う前にデータを同じスケールに直すことができます。これにより、単位の異なる複数のデータ セットを比較できます。

多次元配列

"多次元配列" は、3 つ以上の次元をもつ配列です。たとえば、1 x 3 x 4 の配列 X は 3 次元配列です。

大きさが 1 でない最初の次元

"大きさが 1 でない最初の次元" とは、配列の次元のうちサイズが 1 ではない最初の次元です。たとえば X が 1 x 2 x 3 x 4 の配列の場合、X の大きさが 1 でない最初の次元は 2 番目の次元です。

標本標準偏差

"標本標準偏差" S は、次の式によって与えられます。

S=i=1n(xiX¯)2n1.

一様に分布している独立した標本から X が構成されている場合、S は X を抽出した母集団の分散に対する不偏推定量の平方根です。X¯ は標本平均です。

この分散式の分母は n – 1 です。

母標準偏差

値の母集団全体がデータである場合、次の "母標準偏差" を使用できます。

σ=i=1n(xiμ)2n.

X がある母集団の無作為標本である場合、平均 μ は標本の平均によって推定され、σ は母標準偏差の偏った最尤推定量になります。

この分散式の分母は n です。

アルゴリズム

zscore は、NaN を含む任意の標本について NaN を返します。

zscore は、一定した (つまりすべての値が同じ) 任意の標本について 0 を返します。たとえば、X が同一の数値から成るベクトルである場合、Z0 から成るベクトルになります。

拡張機能

バージョン履歴

R2006a より前に導入