Ковариация, игнорирующая 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')
.