Розміщення стрілок на біплоті PCA


18

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

Ось приклад біплота виробництва R:

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

Біплет набору даних Iris

Я спробував розглянути це у статті Вікіпедії про біплот, але це не дуже корисно. Або правильно. Не впевнений, який.


3
Біплот - це накладений розсіювач, що показує значення U і V. Або UD і V. Або U і VD '. Або UD і VD '. З точки зору PCA, UD називаються основними компонентами основного компонента, а VD - називаються змінними компонентами.
ttnphns

2
Зауважте також, що масштаб координат залежить від того, як ви спочатку нормалізуєте дані. Наприклад, у PCA, один звичайний поділяє дані на sqrt (r) або sqrt (r-1) [r - кількість рядків]. Але в істинному "біплоті" у вузькому розумінні цього слова зазвичай ділять дані на sqrt (rc) [c - кількість стовпців], а потім денормалізує отримані U та V.
денормалізує

Чому дані потрібно масштабувати на 1н-1 ?
ktdrv

1
@ttnphns: Після ваших коментарів вище, я написав відповідь на це питання, маючи на меті надати огляд нормалізації PCAP біплоту. Однак мої знання з цієї теми суто теоретичні, і я вважаю, що у вас набагато більше практичного досвіду роботи з біплотами, ніж я. Тож я буду вдячний за будь-які коментарі.
амеба каже: Поновіть Моніку

1
Одна з причин втілення речей, Олександре, - це точно знати, що робиться. Як бачите, розібратися, що саме відбувається, коли біжить, не так просто biplot(). Крім того, навіщо турбуватися з інтеграцією в R-JS за те, що вимагає лише пари рядків коду.
амеба каже, що повернеться до Моніки

Відповіді:


40

Існує багато різних способів виготовлення біплота PCA, тому немає однозначної відповіді на ваше запитання. Ось короткий огляд.

Ми припускаємо, що матриця даних має n точок даних у рядках і є по центру (тобто кошти стовпців - це всі нулі). Наразі ми не припускаємо, що вона була стандартизованою, тобто ми розглядаємо PCA на коваріаційній матриці (а не на кореляційній матриці). PCA дорівнює сингулярному розкладанню значення X = U SХнви можете ознайомитись з моєю відповіддю:Зв'язок між SVD та PCA. Як використовувати SVD для виконання PCA?

Х=USV,

У біплоті PCA два перші основні компоненти побудовані у вигляді діаграми розсіювання, тобто перший стовпчик побудований проти другого стовпця. Але нормалізація може бути різною; наприклад, можна використовувати:U

  1. Стовпці : це основні компоненти, масштабовані до одиниці суми квадратів;U
  2. Стовпці : це стандартизовані основні компоненти (дисперсія одиниці);n1U
  3. Стовпці : це "сирі" основні компоненти (проекції на основні напрямки).US

Далі, оригінальні змінні зображуються у вигляді стрілок; тобто координати i- ї кінцевої точки стрілки задаються значенням i -ї у першому та другому стовпцях(x,y)ii . Але знову ж таки, можна вибрати різні нормалізації, наприклад:V

  1. Колонки : Я не знаю, якою може бути тут інтерпретація;VS
  2. Стовпчики : це вантажі;VS/n1
  3. Стовпці : це головні осі (також основні напрямки, також власні вектори).V

Ось як все це виглядає для набору даних Fisher Iris:

Біплоти Fisher Iris, PCA про коваріацію

9XUSαβVS(1α)/β9 є "належними біплотами": а саме поєднанням будь-якого підмножини зверху та безпосередньо безпосередньо внизу.

[Яку б комбінацію не використовували, може знадобитися масштабування стрілок за деяким довільним постійним коефіцієнтом, щоб і стрілки, і точки даних відображалися приблизно в одній шкалі.]

VS/n1Un1

Цей [конкретний вибір], ймовірно, надасть найбільш корисну графічну допомогу в інтерпретації багатоваріантних матриць спостережень за умови, звичайно, що їх можна адекватно наблизити до другого рангу.

USV .

US Візуалізація мільйона, видання PCA - це показує PCA винного набору даних.

biplotUVSbiplot0.8biplotn/(n1)1Стрілки базових змінних у біклоті PCA в Р. )

PCA на кореляційній матриці

X1

Біплоти Fisher Iris, PCA про кореляції

Тут навантаження ще привабливіші, бо (крім вищезазначених властивостей) вони дають 1R=1


Подальше читання:


1
+6, це заслуговує більше ніж 3 оновлення.
gung - Відновити Моніку

3
Щойно зауважив, що? Ca :: plot.ca має хороший огляд різних можливих нормалізацій: вони розрізняють головний рядок (утворюють біплот = рядки в головних координатах, знаки в стандартних координатах), основні елементи колів (коваріація біплот = cols в головних координатах, рядки у стандартних координатах), симетричний біплот (рядки та стовпчики масштабуються таким чином, щоб вони мали відхилення, рівні рівним сингулярним значенням (квадратні корені власних значень)), рядкаб і колгаб (рядки в основних коордах і колби в стандартних коордах, помножені на масу відповідної точки або навпаки) і рябозелена та кольгрена (як веслува та колгаб, але з sqrt (маси))
Tom Wenseleers

2
Ці останні називаються також "біплотами для внесків"; книга М. Грінакре "Біплоти на практиці" також дає хороший огляд всього цього; ці способи масштабування застосовуються до всіх методів, заснованих на SVD (наприклад, біплоти CA, PCO біплоти, LDA біплоти тощо); для прикладу того, як це працює, дивіться вихідний код ca ::: plot.ca та аргумент "map"
Том Венселерз

1
н-1

1
@AntoniParellada я відредагував і вставив пару посилань.
Амеба каже, що повернеться до Моніки
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.