(Не рекомендуется) Ковариация игнорирует NaN ценности
nancov не рекомендуется. Используйте функцию MATLAB ®cov вместо этого. С помощью cov функция, можно указать, включать или пропускать 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