Какие переменные в совокупности образуют большую часть дисперсии главного компонента в PCA?

Я понимаю, как работает PCA и как реализовать его в Matlab, но я не могу понять, какие переменные вносят наибольший вклад в основной компонент.

Мои вопросы: предположим, у меня есть набор данных переменных A, B, C, D, E, F. Мне неизвестно, что переменные A, B, C, E измеряют почти одно и то же, а переменные D, F измеряют разные вещи. Существует небольшая корреляция между переменными из набора (A,B,C,E) и набора (D,F).

PCA говорит мне, что есть 2 основных компонента, которые я умею делать. Я не знаю, как определить, что A, B, C, E и D, F представляют собой две группы переменных, измеряющих одни и те же вещи внутри этой группы. Любые советы по этому поводу будут очень признательны.


person ndb    schedule 01.11.2013    source источник


Ответы (1)


Сначала давайте создадим некоторые данные, которые ведут себя так, как вы описали: четыре переменные, которые измеряют что-то похожее, и два фактора, которые измеряют что-то другое.

>> x = randn(100, 1);
>> y = randn(100, 1);
>> v = [[x,x,x,x] + 0.1*randn(100,4), [y,y]  + 0.1*randn(100,2)];

Теперь найдите главные компоненты с вызовом pca

>> [coeff, scores, latent, tsq, explained] = pca(v);

Глядя на переменную latent, мы видим, что первые два основных компонента являются доминирующими.

>> latent
latent =
    5.4821
    2.0491
    0.0120
    0.0106
    0.0089
    0.0073

Теперь, глядя на первые две строки coeff (которые содержат нагрузки каждой из ваших шести переменных на первые два фактора), становится ясно, что переменные 1-4 сильно нагружают первый фактор (синий), а переменные 5- 6 сильно нагружают второй фактор (красный).

>> bar(coeff(1:2, :)')

введите здесь описание изображения

person Chris Taylor    schedule 01.11.2013
comment
Кстати, я полагаю, вы хотите сказать: «Посмотрите на первые две КОЛОННЫ, а не на первые две строки». Спасибо еще раз. - person ndb; 04.11.2013