このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
zscore
標準化された z スコア
構文
説明
は、Z
= zscore(X
)X
の各要素について、X
のその列が平均値が 0 になるようセンタリングされ、標準偏差が 1 になるようスケーリングされるような z スコアを返します。Z
は X
と同じサイズになります。
X
がベクトルの場合、Z
は z スコアのベクトルになります。X
が行列の場合、Z
はX
と同じサイズの行列になり、Z
の各列の平均が 0、標準偏差が 1 になります。多次元配列の場合、
Z
の z スコアはX
の大きさが 1 でない最初の次元に対して計算されます。
例
2 つのデータ ベクトルの z スコア
2 つのデータ ベクトルの スコアを計算してプロットし、結果を比較します。
標本データを読み込みます。
load lawdata
ワークスペースには 2 つの変数が読み込まれます。gpa
と lsat
。
両方の変数を同じ軸上にプロットします。
plot([gpa,lsat]) legend('gpa','lsat','Location','East')
これら 2 つの測定値はスケールが異なるため、比較するのが困難です。
gpa
と lsat
の スコアを同じ座標軸にプロットします。
Zgpa = zscore(gpa); Zlsat = zscore(lsat); plot([Zgpa, Zlsat]) legend('gpa z-scores','lsat z-scores','Location','Northeast')
すると、gpa
と lsat
の両方の結果について各個人の相対的な成績を見ることができます。たとえば、3 人目の gpa
と lsat
の結果は両方とも標本平均より 1 標準偏差低くなっています。また、11 人目の gpa
は標本平均とほぼ同じですが、lsat
のスコアは標本平均を 1.25 標準偏差ほど上回っています。
作成した スコアの平均と標準偏差をチェックします。
mean([Zgpa,Zlsat])
ans = 1×2
10-14 ×
-0.1088 0.0357
std([Zgpa,Zlsat])
ans = 1×2
1 1
定義により、gpa
と lsat
の スコアは平均が 0、標準偏差が 1 です。
母集団と標本の z スコア
標本データを読み込みます。
load lawdata
ワークスペースには 2 つの変数が読み込まれます。gpa
と lsat
。
標準偏差について母集団の式を使用して、gpa
の スコアを計算します。
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
母集団から派生した標本では、分母が である母標準偏差の式が母標準偏差の最尤推定量に対応し、偏りがある可能性があります。これに対して標本標準偏差式は、標本の母標準偏差の不偏推定量です。
データ行列の z スコア
データ行列の列または行に沿って計算した平均および標準偏差を使用して、 スコアを計算します。
標本データを読み込みます。
load flu
データセット配列 flu
をワークスペースに読み込みます。flu
には 11 個の変数について 52 の観測値があります。最初の変数には日付 (週単位) が含まれています。ほかの変数には、米国の各地域別のインフルエンザ推定発生件数が含まれています。
データセット配列をデータセット行列に変換します。
flu2 = double(flu(:,2:end));
新しいデータ行列 flu2
は 52 行 10 列の double データ行列です。行はデータ セット配列 flu
内の週に対応し、列は米国の各地域に対応します。
地域ごと (flu2
の "列") のインフルエンザ推定発生件数を標準化します。
Z1 = zscore(flu2,[ ],1);
変数エディターで スコアを確認するには、ワークスペースで作成した行列 Z1
をダブルクリックします。
週ごと (flu2
の "行") のインフルエンザ推定発生件数を標準化します。
Z2 = zscore(flu2,[ ],2);
多次元配列の z スコア
さまざまな次元に沿ってデータを標準化するよう指定して、多次元配列の 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 つの変数が読み込まれます。gpa
と lsat
。
gpa
の スコア、平均および標準偏差を取得します。
[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
入力引数
X
— 入力データ
ベクトル | 行列 | 多次元配列
ベクトル、行列または多次元配列として指定される入力データ。
データ型: double
| single
dim
— 次元
正の整数スカラー
X
の z スコア計算の対象となる次元。正の整数スカラーを指定します。値を指定しなかった場合、サイズが 1 ではない最初の配列次元が既定値になります。
たとえば X
という行列について、dim
= 1 の場合、zscore
は X
の列に沿って平均と標準偏差を使用します。dim
= 2 の場合、zscore
は X
の行に沿って平均と標準偏差を使用します。
出力引数
Z
— z- スコア
ベクトル | 行列 | 多次元配列
z- スコア。ベクトル、行列、または多次元配列として返されます。Z
の次元数は X
と同じです。
Z
の値は、'all'
、dim
または vecdim
を指定するかどうかによって異なります。これらの入力引数を指定しない場合、以下の条件が適用されます。
X
がベクトルである場合、Z
は平均 0 および分散 1 をもつ z スコアのベクトルになります。X
が配列である場合、zscore
はX
の大きさが 1 でない最初の次元に沿って標準化を行います。
'all'
、dim
および vecdim
を使用する場合の Z
の違いを示す例については、多次元配列の z スコアを参照してください。
詳細
z スコア
平均が μ、標準偏差が σ である確率変数 X の場合、値 x の z スコアは次のようになります。
平均が 、標準偏差が S である標本データの場合、データ点 x の z スコアは次のようになります。
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 は、次の式によって与えられます。
一様に分布している独立した標本から X
が構成されている場合、S は X
を抽出した母集団の分散に対する不偏推定量の平方根です。 は標本平均です。
この分散式の分母は n – 1 です。
母標準偏差
値の母集団全体がデータである場合、次の "母標準偏差" を使用できます。
X
がある母集団の無作為標本である場合、平均 μ は標本の平均によって推定され、σ は母標準偏差の偏った最尤推定量になります。
この分散式の分母は n です。
アルゴリズム
zscore
は、NaN
を含む任意の標本について NaN
を返します。
zscore
は、一定した (つまりすべての値が同じ) 任意の標本について 0
を返します。たとえば、X
が同一の数値から成るベクトルである場合、Z
は 0
から成るベクトルになります。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は、tall 配列を完全にサポートします。詳細は、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
入力引数
'all'
およびvecdim
はサポートされません。入力引数
dim
はコンパイル時の定数でなければなりません。入力引数
dim
を指定しなかった場合、生成されるコードでは作用次元が異なる可能性があります。この結果、ランタイム エラーが発生する可能性があります。詳細は、自動次元選択の制限事項 (MATLAB Coder)を参照してください。
コード生成の詳細については、コード生成の紹介および一般的なコード生成のワークフローを参照してください。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数は、スレッドベースの環境を完全にサポートします。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
入力引数
'all'
およびvecdim
はサポートされません。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)