Расположение стрелок на биплоте PCA

18

Я ищу, чтобы реализовать биплот для анализа основных компонентов (PCA) в JavaScript. Мой вопрос, как мне определить координаты стрелок из выходных данных сингулярного векторного разложения (SVD) матрицы данных?U,В,D

Вот пример биплота R:

biplot(prcomp(iris[,1:4]))

Биплот набора данных Iris

Я попытался найти его в статье в Википедии о биплоте, но это не очень полезно. Или правильно. Не уверен, какой.

ktdrv
источник
3
Биплот - это наложенная диаграмма рассеяния, показывающая как значения U, так и значения V. Или УД и В. Или У и ВД. Или УД и ВД. В терминах PCA, UD называются необработанными значениями основных компонентов, а VD - нагрузками переменных компонентов.
ttnphns
2
Также обратите внимание, что масштаб координат зависит от того, как вы изначально нормализуете данные. Например, в PCA обычно делят данные на sqrt (r) или sqrt (r-1) [r - количество строк]. Но в истинном «биплоте» в узком смысле слова обычно делят данные на sqrt (rc) [c - количество столбцов], а затем
снимают
Почему данные должны быть масштабированы на ? 1N-1
ktdrv
1
@ttnphns: Следуя вашим комментариям выше, я написал ответ на этот вопрос с целью предоставить что-то вроде обзора нормализации биплота PCA. Тем не менее, мое знание этой темы носит чисто теоретический характер, и я считаю, что у вас гораздо больше практического опыта работы с болтами, чем у меня. Так что буду благодарен за любые комментарии.
говорит амеба: восстанови Монику
1
@Aleksandr, одна из причин, по которой нужно что-то реализовывать, - это точно знать, что делается. Как видите, не так просто понять, что именно происходит при беге biplot(). Кроме того, зачем использовать интеграцию с R-JS для чего-то, что требует всего несколько строк кода.
говорит амеба: восстанови Монику

Ответы:

40

Существует много разных способов создания биплота PCA, и поэтому нет однозначного ответа на ваш вопрос. Вот краткий обзор.

Мы предполагаем, что матрица данных имеет n точек данных в строках и центрирована (т. Е. Все значения столбцов равны нулю). На данный момент мы не предполагаем, что он был стандартизирован, т.е. мы рассматриваем PCA на ковариационной матрице (не на корреляционной матрице). PCA сводится к разложению по единственному значению X = U S V , мой ответ вы можете увидеть здесь для получения подробной информации: Отношения между SVD и PCA. Как использовать SVD для выполнения PCA?ИксN

Иксзнак равноUSВ,

В биплоте PCA два первых главных компонента изображены в виде диаграммы рассеяния, то есть первый столбец нанесен относительно его второго столбца. Но нормализация может быть другой; например, можно использовать:U

  1. Столбцы : это главные компоненты, масштабированные до единичной суммы квадратов;U
  2. Колонны : это стандартизированные главные компоненты (единичная дисперсия);N-1U
  3. Столбцы : это «необработанные» основные компоненты (проекции на основные направления).US

Кроме того, исходные переменные изображены в виде стрелок; то есть координат точки я -м стрелка конечной точки задаются я -му значения в первом и втором столбце V . Но опять же, можно выбрать разные нормализации, например:(Икс,Y)яяВ

  1. Столбцы : я не знаю, какая здесь может быть интерпретация;ВS
  2. Колонны : это нагрузки;ВS/N-1
  3. Столбцы : это главные оси (или главные направления, или собственные векторы).В

Вот как все это выглядит для набора данных Fisher Iris:

Болты Fisher Iris, PCA на ковариации

9ИксUSαβVS(1α)/β9 являются «правильными болтами», а именно - комбинацией любого участка сверху с тем, который находится непосредственно внизу.

[Какую бы комбинацию ни использовали, может потребоваться масштабировать стрелки по некоторому произвольному постоянному коэффициенту, чтобы и стрелки, и точки данных выглядели примерно в одном масштабе.]

ВS/N-1UN-1

Этот [конкретный выбор], вероятно, предоставит наиболее полезную графическую помощь в интерпретации многомерных матриц наблюдений, при условии, конечно, что они могут быть адекватно аппроксимированы на втором уровне.

USВ

US

biplotUВSbiplot0.8biplotN/(N-1)1Стрелки базовых переменных в биплоте PCA в R )

СПС на корреляционной матрице

Икс1

Болты Fisher Iris, PCA по соотношениям

1рзнак равно1


Дальнейшее чтение:

амеба говорит восстановить монику
источник
1
+6, это заслуживает более 3 голосов.
gung - Восстановить Монику
3
Только что заметил, что? Ca :: plot.ca имеет хороший обзор различных возможных нормализаций: они различают принципал строки (форма biplot = строки в главных координатах, столбцы в стандартных координатах), принципал col (ковариация biplot = столбцы в главных координатах, строки в стандартных координатах), симметричный биплот (строки и столбцы, масштабированные так, чтобы иметь дисперсии, равные единичным значениям (квадратные корни из собственных значений)), rowgab и colgab (строки в главных координатах и ​​столбцы в стандартных координатах, умноженные на массу соответствующей точки или и наоборот) и рябина и одеколон (как рябина и колгаб, но с sqrt (массы))
Том Wenseleers
2
Эти последние также называются «вклады»; книга М. Гринакра «Биплоты на практике» также дает хороший обзор всего этого; эти способы масштабирования применяются ко всем методам, основанным на SVD (т. е. болты CA, PCA, LDA и т. д.); пример того, как это работает, смотрите в исходном коде ca ::: plot.ca и аргументе «карта»
Том Венселерс
1
N-1
1
@AntoniParellada Я отредактировал и вставил пару ссылок.
говорит амеба, восстанови Монику