Main Content

nanstd

(非推奨) NaN 値を無視した標準偏差

関数 nanstd は推奨されません。代わりに、MATLAB® 関数 std を使用してください。関数 std では、計算に NaN 値を含めるか省略するかを指定できます。詳細は、互換性の考慮事項を参照してください。

説明

y = nanstd(X) は、すべての NaN 値を削除して計算された、X の標準偏差 std です。

  • X がベクトルである場合、nanstd(X)X のすべての非 NaN 要素の標本標準偏差です。

  • X が行列である場合、nanstd(X)NaN 値を削除して計算された、列標本標準偏差の行ベクトルです。

  • X が多次元配列である場合、nanstdX の大きさが 1 でない最初の次元に作用します。この次元のサイズは 1 になりますが、他の次元のサイズはすべて変化しません。nanstd はすべての NaN 値を削除します。

  • 既定では、nanstd は n - 1 によって y を正規化します。n は、NaN 値が含まれている観測値を削除した後で残った観測値の個数です。

y = nanstd(X,flag) は、flag によって指定された正規化に基づいて、X の標準偏差を返します。flag は、n - 1 による正規化を指定する 0 (既定値) または n による正規化を指定する 1 です。n は、NaN 値が含まれている観測値を削除した後で残った観測値の個数です。

y = nanstd(X,flag,'all') は、NaN 値を削除して計算された、X のすべての要素の標準偏差を返します。

y = nanstd(X,flag,dim) は、NaN 値を削除して計算された、X の作用次元 dim に沿った標準偏差を返します。

y = nanstd(X,flag,vecdim) は、ベクトル vecdim で指定された次元における標準偏差を返します。標準偏差は、NaN 値を削除した後で計算されます。たとえば X が行列である場合、次元 1 および 2 によって定義される配列スライスには行列のそれぞれの要素がすべて含まれるため、nanstd(X,0,[1 2])X のすべての非 NaN 要素の標本標準偏差になります。

すべて折りたたむ

欠損値が含まれている行列データの列標準偏差を求めます。

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanstd(X)
y = 1×3

    0.7071    2.8284       NaN

carsmall データ セットを読み込みます。

load carsmall

Horsepower データの母標準偏差と標本標準偏差を計算します。関数 nanstd は、Horsepower 内の欠損値を無視します。

y1 = nanstd(Horsepower,1)   % Population formula
y1 = 45.2963
y2 = nanstd(Horsepower,0)   % Sample formula
y2 = 45.5268

欠損値を無視して、配列内のすべての値の標準偏差を求めます。

欠損値が含まれている 3 x 4 x 2 の配列 X を作成します。

X = reshape(1:24,[3 4 2]);
X([8:10 18]) = NaN
X = 
X(:,:,1) =

     1     4     7   NaN
     2     5   NaN    11
     3     6   NaN    12


X(:,:,2) =

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

X の要素の標本標準偏差を求めます。

y = nanstd(X,0,'all')
y = 7.5385

欠損値が含まれている行列データの行標準偏差を求めます。2 番目の次元に沿って標本標準偏差を計算するよう指定します。

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanstd(X,0,2)
y = 3×1

         0
    1.4142
         0

複数の次元における多次元配列の標準偏差を求めます。

欠損値が含まれている 3 x 4 x 2 の配列 X を作成します。

X = reshape(1:24,[3 4 2]);
X([8:10 18]) = NaN
X = 
X(:,:,1) =

     1     4     7   NaN
     2     5   NaN    11
     3     6   NaN    12


X(:,:,2) =

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

作用次元として 1 番目の次元と 2 番目の次元を指定して、X の各ページの標本標準偏差を求めます。

ypage = nanstd(X,0,[1 2])
ypage = 
ypage(:,:,1) =

    3.8079


ypage(:,:,2) =

    3.7779

たとえば、ypage(1,1,2)X(:,:,2) の非 NaN 要素の標本標準偏差です。

作用次元として 2 番目の次元と 3 番目の次元を指定して、各 X(i,:,:) スライスの要素の標本標準偏差を求めます。

yrow = nanstd(X,0,[2 3])
yrow = 3×1

    7.9102
    7.6904
    8.2158

たとえば、yrow(3)X(3,:,:) の非 NaN 要素の標本標準偏差です。

入力引数

すべて折りたたむ

入力データ。スカラー、ベクトル、行列または多次元配列を指定します。

データ型: single | double

標準偏差の計算に使用する正規化のインジケーター。0 または 1 を指定します。

  • flag0 (既定値) である場合、nanstdX標本標準偏差を返します。nanstd(X,0)nanstd(X) と同じです。

  • flag1 である場合、nanstdX母標準偏差を返します。

データ型: single | double

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

dim は、長さを 1 に縮小する次元を指定します。size(y,dim) は 1 ですが、他の次元のサイズはすべて変化しません。

2 次元配列 X について考えます。

  • dim が 1 に等しい場合、nanstd(X,0,1) は各列の標本標準偏差が格納されている行ベクトルを返します。

  • dim が 2 に等しい場合、nanstd(X,0,2) は各行の標本標準偏差が格納されている列ベクトルを返します。

dimndims(X) より大きい場合、または size(X,dim) が 1 である場合、nanstd はゼロの配列を返します。この配列の次元および欠損値は X と同じです。

データ型: single | double

次元のベクトル。正の整数ベクトルを指定します。vecdim の各要素は、入力配列 X の次元を表します。出力 y の指定された作用次元における長さは 1 です。他の次元の長さは、Xy で同じになります。

たとえば、X が 2 x 3 x 3 の配列である場合、nanstd(X,0,[1 2]) は 1 x 1 x 3 の配列を返します。出力配列の各要素は、X の対応するページにおける要素の標本標準偏差です。

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

データ型: single | double

出力引数

すべて折りたたむ

標準偏差の値。スカラー、ベクトル、行列または多次元配列として返されます。

詳細

すべて折りたたむ

標本標準偏差

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

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

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

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

母標準偏差

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

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

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

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

拡張機能

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2020b: nanstd は非推奨

関数 nanstd は推奨されません。代わりに、MATLAB 関数 std を使用してください。nanstd が削除される予定はありません。

コードを更新するには、関数名 nanstd のインスタンスを std に変更します。次に、入力引数 nanflag'omitnan' オプションを指定します。

std は、tall 配列、GPU 配列、分散配列、C/C++ コード生成、および GPU コード生成をサポートするための、より拡張された機能を提供します。

参考

|