ドキュメンテーション

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

nancov

NaN 値を無視した共分散

構文

Y = nancov(X)
Y = nancov(X1,X2)
Y = nancov(...,1)
Y = nancov(...,'pairwise')

説明

Y = nancov(X) は、NaN 値をもつ観測値を削除して計算された、X の共分散 cov です。

ベクトル x の場合、NaN の値を削除した後は、nancov(x) が残りの要素の標本分散になります。行列 X の場合、NaN 値を含む観測値 (行) を削除した後は、nancov(X) が残りの観測の標本分散になります。

Y = nancov(X1,X2) は、X1X2 が要素数の同じ行列の場合、nancov(X) と等価です。ここでは X = [X1(:) X2(:)] です。

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

Y = nancov(...,'pairwise') は、列 i または jNaN 値を含まない行を使用して Y(i,j) を計算します。結果 Y は、正定行列にはならない可能性があります。

乱数の欠損値を含む 2 つの変数 (列) の乱数データを生成します。

X = rand(10,2);
p = randperm(numel(X));
X(p(1:5)) = NaN
X =
    0.8147    0.1576
       NaN       NaN
    0.1270    0.9572
    0.9134       NaN
    0.6324       NaN
    0.0975    0.1419
    0.2785    0.4218
    0.5469    0.9157
    0.9575    0.7922
    0.9649       NaN

3 番目の変数と他の 2 つの変数間に相関を確立します。

X(:,3) = sum(X,2)
X =
    0.8147    0.1576    0.9723
       NaN       NaN       NaN
    0.1270    0.9572    1.0842
    0.9134       NaN       NaN
    0.6324       NaN       NaN
    0.0975    0.1419    0.2394
    0.2785    0.4218    0.7003
    0.5469    0.9157    1.4626
    0.9575    0.7922    1.7497
    0.9649       NaN       NaN

NaN 値のある観測 (行) を削除した後、3 つの変数の相関行列を計算します。

Y = nancov(X)
Y =
    0.1311    0.0096    0.1407
    0.0096    0.1388    0.1483
    0.1407    0.1483    0.2890

代替機能

nancov の代わりに、入力引数 nanflag を指定して MATLAB® 関数 cov を使用できます。たとえば、nancov(X) の代わりに cov(X,'omitrows') を、nancov(X,'pairwise') の代わりに cov(X,'partialrows') を使用します。

拡張機能

参考

| | |

R2006a より前に導入