nancov

Ковариация, игнорирующая значения NaN

Синтаксис

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

Описание

Y = nancov(X) ковариация cov X, вычисленного после удаления наблюдений со значениями NaN.

Для векторов x nancov(x) является демонстрационным отклонением остающихся элементов, если значения NaN удалены. Для матриц X nancov(X) является выборочной ковариацией остающихся наблюдений, если наблюдения (строки), содержащие любые значения NaN, удалены.

Y = nancov(X1,X2), то, где X1 и X2 являются матрицами с тем же числом элементов, эквивалентно nancov(X), где X = [X1(:) X2(:)].

nancov удаляет среднее значение из каждой переменной (столбец для матричного X) прежде, чем вычислить Y. Если n является количеством остающихся наблюдений после удаления наблюдений со значениями NaN, nancov нормирует Y или n – 1 или n , в зависимости от ли n> 1 или n = 1, соответственно. Чтобы задать нормализацию n, использовать Y = nancov(...,1).

Y = nancov(...,'pairwise') вычисляет Y(i,j) с помощью строк без значений NaN в столбцах i или j. Результатом Y не может быть положительная определенная матрица.

Примеры

Сгенерируйте случайные данные для двух переменных (столбцы) со случайными отсутствующими значениями:

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

Установите корреляцию между третьей переменной и другими двумя переменными:

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:

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

Альтернативная функциональность

Вместо того, чтобы использовать nancov, можно использовать функцию MATLAB® cov с входным параметром nanflag. Например, вместо nancov(X), используйте cov(X,'omitrows'), и вместо nancov(X,'pairwise'), используйте cov(X,'partialrows').

Расширенные возможности

Смотрите также

| | |

Представлено до R2006a