Я применяю PCA к некоторым функциям ЭКГ, которые я извлек.Я нашел некоторый код и узнал его на веб-сайте Matlab, чтобы применить PCA.Тем не менее, я хотел бы отбелить свои данные перед применением PCA к нему.Мои данные - это матрица (125 х 9), с 9 функциями и 125 тестами.Моя матрица зовется рейтинги.У меня есть два блока кода: код PCA и код для отбеливания.Мой код PCA не включает отбеливание, но я надеюсь, что ответив на этот вопрос, он будет.
Код отбеливания
Я вычел среднее значение каждого столбца из матрицы следующим образом:
mean_ratings=mean(ratings); %get mean of each column
ratings=ratings-repmat(mean_ratings, 375,1); %subtract mean of each
%column from each element of the column
Я немного, но застрял начто делать после этого.Я вычислил , следуя примеру кода:
sigma = ratings * ratings' / size(ratings, 2); %calculate the value of sigma
[U,S,V] = svd(sigma); %get S value and eigen vectors
xPCAwhite = diag(1./sqrt(diag(S) + epsilon)) * U' * ratings; %calculate
%whitened data
Код PCA
Я выполняю PCA, не рассматривая отбеливание, используя приведенный ниже код:
C = corr(ratings,ratings);
w=1./var(ratings);
[wcoeff,score,latent,tsquared,explained] = pca(ratings,...
'VariableWeights',w);
coefforth = inv(diag(std(ratings)))*wcoeff;
cscores = zscore(ratings)*coefforth;
figure()
plot(score(:,1),score(:,2),'+')
xlabel('1st Principal Component')
ylabel('2nd Principal Component')
Теперь мой вопрос заключается в том, могу ли я просто включить переменную 'xPCAwhite' вместо оценок для моего кода PCA?