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)
は、X1
と X2
が要素数の同じ行列の場合、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
または j
に NaN
値を含まない行を使用して 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