ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

nanvar

NaN 値を無視した分散

説明

y = nanvar(X) は、NaN 値を削除して計算された、X の分散 var です。

ベクトル x の場合、NaN の値を削除した後は、nanvar(x) が残りの要素の標本分散になります。行列 X の場合、NaN 値を削除した後は、nanvar(X) が列標本分散の行ベクトルになります。多次元配列 X の場合、nanvar は大きさが 1 でない最初の次元に対して作用します。

nanvar は、y を計算する前に、各変数 (行列 X の列) から平均値を削除します。NaN 値が含まれている観測値を削除した後で残った観測値の個数が n である場合、nanvar は n > 1 の場合は n - 1 で、n = 1 の場合は n で y を正規化します。

y = nanvar(X,w) は、加重スキームw に従って X の分散を計算します。w0 (既定値) である場合、X は n - 1 によって正規化されます。n は非 NaN 観測値の個数です。w1 である場合、w は非 NaN 観測値の個数によって正規化されます。それ以外の場合、w は非負要素が含まれている重みベクトルにすることができます。w の長さは、nanvar が作用する次元の長さに等しくなければなりません。wNaN 値に対応する X の要素は無視されます。

y = nanvar(X,w,'all') は、w = 0 または w = 1 である場合、X のすべての要素の分散を返します。関数 nanvar は、NaN 値を削除した後で分散を計算します。

y = nanvar(X,w,dim) は、X の作用次元 dim に沿った分散を返します。

y = nanvar(X,w,vecdim) は、NaN 値を削除して計算された、ベクトル vecdim で指定された次元における分散を返します。vecdim の各要素は、入力配列 X の次元を表します。出力 y の指定された作用次元における長さは 1 です。他の次元の長さは、Xy で同じになります。たとえば、X が 2 x 3 x 4 の配列である場合、nanvar(X,[],[1 2]) は 1 x 1 x 4 の配列を返します。出力配列の各要素は、X の対応するページにおける要素の分散です。この構文は、w = 0 または w = 1 である場合にサポートされます。

すべて折りたたむ

欠損値が含まれている行列データの列の分散を求めます。

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

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanvar(X)
y = 1×3

    0.5000    8.0000       NaN

複数の次元における多次元配列の分散を求めます。

欠損値が含まれている 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 = nanvar(X,0,[1 2])
ypage = 
ypage(:,:,1) =

   14.5000


ypage(:,:,2) =

   14.2727

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

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

ycol = nanvar(X,0,[1 3])
ycol = 1×4

   44.0000   40.3000   42.9167   40.3000

たとえば、ycol(4)X(:,4,:) の非 NaN 要素の標本分散です。

代替機能

nanvar の代わりに、入力引数 nanflag の値として 'omitnan' を指定して MATLAB® 関数 var を使用できます。

拡張機能

参考

| | |

R2006a より前に導入