В чем разница между «нагрузками» и «корреляционными нагрузками» в PCA и PLS?

11

При анализе основных компонентов (PCA) обычно нужно распределить две нагрузки друг на друга, чтобы исследовать отношения между переменными. В документе, сопровождающем пакет PLS R для выполнения регрессии главных компонентов и регрессии PLS, есть другой график, называемый графиком корреляционных нагрузок (см. Рисунок 7 и страницу 15 в документе). Корреляция нагрузки , как это объясняется, является корреляция между баллами (от PCA или PLS) и фактические наблюдаемые данные.

Мне кажется, что нагрузки и корреляционные нагрузки довольно похожи, за исключением того, что они масштабируются немного по-другому. Воспроизводимый пример в R со встроенным набором данных mtcars выглядит следующим образом:

data(mtcars)
pca <- prcomp(mtcars, center=TRUE, scale=TRUE)

#loading plot
plot(pca$rotation[,1], pca$rotation[,2],
     xlim=c(-1,1), ylim=c(-1,1),
     main='Loadings for PC1 vs. PC2')

#correlation loading plot
correlationloadings <- cor(mtcars, pca$x)
plot(correlationloadings[,1], correlationloadings[,2],
     xlim=c(-1,1), ylim=c(-1,1),
     main='Correlation Loadings for PC1 vs. PC2')

loadingplot correlationloadinsplot

В чем разница в интерпретации этих сюжетов? И какой сюжет (если есть) лучше всего использовать на практике?

user1593755
источник
для лучшего обзора PCA, используйте biplot (PCA), он показывает загрузку и оценки PCA, и поэтому вы можете интерпретировать его лучше.
Пол
6
R prcompПакет опрометчиво называет собственные векторы «нагрузками». Я советую держать эти условия отдельно. Нагрузки являются собственными векторами, масштабированными до соответствующих собственных значений.
ttnphns
1
Объяснение геометрии участка загрузки: stats.stackexchange.com/a/119758/3277
ttnphns

Ответы:

13

Предупреждение: Rтермин «загрузки» используется в замешательстве. Я объясню это ниже.

Рассмотрим набор данных с (центрированными) переменными в столбцах и точками данных в строках. Выполнение PCA этого набора данных представляет собой разложение по сингулярным значениям . Столбцы являются главными компонентами (ПК "очки"), а столбцы являются главными осями. Ковариационная матрица задается как , поэтому главные оси являются собственными векторами ковариационной матрицы.XNX=USVUSV1N1XX=VS2N1VV

«Нагрузки» определяются как столбцы , то есть они являются собственными векторами, масштабированными по квадратным корням соответствующих собственных значений. Они отличаются от собственных векторов! Смотрите мой ответ здесь для мотивации.L=VSN1

Используя этот формализм, мы можем вычислить кросс-ковариационную матрицу между исходными переменными и стандартизированными ПК: т. Е. Определяется нагрузками. Матрица взаимной корреляции между исходными переменными и ПК задается тем же выражением, деленным на стандартные отклонения исходных переменных (по определению корреляции). Если исходные переменные были стандартизированы до выполнения PCA (т. Е. PCA была выполнена на матрице корреляции), они все равны . В этом последнем случае матрица взаимной корреляции снова задается просто как .

1N1X(N1U)=1N1VSUU=1N1VS=L,
1L

Чтобы прояснить терминологическую путаницу: то, что пакет R называет «нагрузками», является главными осями, а то, что он называет «корреляционными нагрузками», (для PCA, выполненных на корреляционной матрице) в фактических нагрузках. Как вы сами заметили, они отличаются только масштабированием. Что лучше построить, зависит от того, что вы хотите увидеть. Рассмотрим следующий простой пример:

Biplots

Левый подпункт показывает стандартизированный 2D-набор данных (каждая переменная имеет единичную дисперсию), вытянутый вдоль основной диагонали. Средний подплот представляет собой биплот : это график рассеяния PC1 против PC2 (в данном случае просто набор данных, повернутый на 45 градусов) со строками нанесенными сверху в качестве векторов. Обратите внимание, что векторы и разнесены на 90 градусов; они говорят вам, как ориентированы исходные оси. Правый подплот - это тот же биплот, но теперь векторы показывают строки из . Обратите внимание, что теперь векторы и имеют острый угол между ними; они говорят вам, сколько исходных переменных коррелируют с ПК, а также и x y L x y x yVxyLxyxyгораздо сильнее связаны с ПК1, чем с ПК2. Я думаю, что большинство людей предпочитают видеть правильный тип биплота.

Обратите внимание, что в обоих случаях векторы и имеют единичную длину. Это произошло только потому, что набор данных был 2D для начала; в случае, когда имеется больше переменных, отдельные векторы могут иметь длину меньше , но они никогда не могут достичь за пределами единичного круга. Доказательство этого факта я оставляю в качестве упражнения.у 1xy1

Давайте теперь еще раз посмотрим на набор данных mtcars . Вот биплот PCA, сделанный на матрице корреляции:

Mtcars PCA Biplot

Черные линии отображаются с помощью , красные линии - с помощью .LVL

И вот биплот PCA, сделанный на ковариационной матрице:

Mtcars PCA Biplot

Здесь я масштабировал все векторы и единичный круг на , потому что в противном случае он не был бы виден (это часто используемый прием). Опять же, черные линии показывают строки , а красные линии показывают корреляции между переменными и ПК (которые больше не задаются , см. Выше). Обратите внимание, что видны только две черные линии; это потому, что две переменные имеют очень высокую дисперсию и доминируют в наборе данных mtcars . С другой стороны, все красные линии можно увидеть. Оба представления передают некоторую полезную информацию.В л100VL

PS Существует много различных вариантов болтов PCA, см. Мой ответ здесь для некоторых дополнительных объяснений и общего обзора: Расположение стрелок на биплоте PCA . Самый красивый биплот, когда-либо размещенный на CrossValidated, можно найти здесь .

амеба говорит восстановить монику
источник
2
Хотя это очень хороший ответ (+1), у него есть только один дидактический недостаток: он изначально помещает переменные в строки X, а не в столбцы X, как это обычно делается в статистических наборах данных / примерах. Из-за этого транспонирования U-векторы становятся в ответе переменными, а V - случаями. Большинство людей, знающих PCA, привыкли к противоположному расположению; так что немного мешает восприятию.
ttnphns
1
Я мог бы порекомендовать устно подчеркнуть «мораль» различия между «биплотом осей» и «биплотом нагрузок» на скане. В первом случае изменчивость (= масштаб, = кратность, = инерция, = масса) не представлена: она сохраняется в собственных значениях. Во втором он был полностью передан собственным векторам, представляющим переменные; благодаря этому «оживлению» переменные становятся значимым облаком данных из двух точек, или векторов, с определенной длиной от начала координат и определенного угла. Вот как мы «внезапно» оказываемся в предметном пространстве .
ttnphns
Спасибо @ttnphns, оба хороших момента. Что касается строк / столбцов : на самом деле, я предпочитаю макет, который я использовал. Одна точка данных обычно записывается как вектор-столбец . Матрица действующая на нее, будет записана как . Если теперь - это набор векторов столбцов, сложенных вместе, то я могу написать , что удобно. Если вместо этого имеет образцы в строках, как вы рекомендуете, то мне нужно написать , что выглядит странно. Но я признаю, что многие учебники используют это соглашение (я не уверен, почему). x U U x X U X X X UXxUUxXUXXXU
Амеба говорит Восстановить Монику
1
Это, конечно, дело вкуса. Имейте в виду, однако, что подавляющее большинство статистических программ показывают таблицы данных как cases X variables. Тогда, по традиции, линейная алгебра в большинстве текстов статистического анализа делает случай вектор-строкой. Может быть, в машинном обучении все иначе?
ttnphns
1
@user_anon Нет, этот ответ учитывает стандарт PCA, без каких-либо поворотов.
говорит амеба: восстанови Монику