Для запуска канонического анализа соответствия (cca package ade4) мне нужна положительно определенная дисперсионная матрица. (Что в теории всегда так), но:
matrix(c(2,59,4,7,10,0,7,0,0,0,475,18714,4070,97,298,0,1,0,17,7,4,1,4,18,36),nrow=5)
> a
[,1] [,2] [,3] [,4] [,5]
[1,] 2 0 475 0 4
[2,] 59 7 18714 1 1
[3,] 4 0 4070 0 4
[4,] 7 0 97 17 18
[5,] 10 0 298 7 36
> eigen(var(a))
$values
[1] 6.380066e+07 1.973658e+02 3.551492e+01 1.033096e+01
[5] -1.377693e-09
Последнее собственное значение равно -1,377693e-09, что равно ‹ 0. Но теоретическое значение > 0.
Я не могу запустить функцию, если одно из собственных значений равно ‹ 0.
Я действительно не знаю, как это исправить, не меняя код функции cca()
Спасибо за помощь