Main Content

nancov

(非推奨) NaN 値を無視した共分散

関数 nancov は推奨されません。代わりに、MATLAB® 関数 cov を使用してください。関数 cov では、計算に 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

拡張機能

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2020b: nancov は非推奨

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

コードを更新するには、関数名 nancov のインスタンスを cov に変更します。次に、入力引数 nanflag'omitrows' オプションを指定します。nancov'pairwise' オプションは、cov'partialrows' オプションに対応します。

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

参考

| |