Обратная задача Matlab - данные fmri - алгоритм частичной корреляции - PullRequest
0 голосов
/ 06 сентября 2011

Я использую следующий код Чтобы получить матрицу частичной корреляции (исходный код от http://www.fmrib.ox.ac.uk/analysis/netsim/)

ic=-inv(cov(ts1)); % raw negative inverse covariance matrix
r=(ic ./ repmat(sqrt(diag(ic)),1,Nnodes)) ./ repmat(sqrt(diag(ic))',Nnodes,1); % use diagonal to get normalised coefficients
r=r+eye(Nnodes); % remove diagonal 

Моя исходная матрица (ts1) - это активность мозга во времени (переменная X) внесколько вокселей - объемный пиксель 3X3 (переменная Y).

Проблема в том, что у меня больше зависимых переменных (y-вокселей), чем независимых переменных (x - временной ход). Я получаю следующее предупреждение-

Предупреждение: матрица близка к единственному или плохо масштабирована. Результаты могут быть неточными. RCOND = 4.998365e-022.

Любые мысли о том, как исправить код, чтобы я получил частичную корреляцию между всемииз вокселей?

1 Ответ

1 голос
/ 24 октября 2011

Предупреждение от Matlab о проблеме с инвертированием ковариационной матрицы.

Одним из решений может быть попытка pinv () http://www.mathworks.com/help/techdoc/ref/pinv.html

...