Cosa significano le frecce in un biplot PCA?


14

Considera il seguente biplot PCA:

library(mvtnorm)
set.seed(1)
x  <- rmvnorm(2000, rep(0, 6), diag(c(5, rep(1,5))))
x  <- scale(x, center=T, scale=F)
pc <- princomp(x)
biplot(pc)

inserisci qui la descrizione dell'immagine

Ci sono un sacco di frecce rosse tracciate, cosa significano? Sapevo che la prima freccia etichettata con "Var1" dovrebbe indicare la direzione più variabile del set di dati (se li consideriamo come 2000 punti di dati, ognuno dei quali è un vettore di dimensione 6). Ho anche letto da qualche parte, la direzione più variabile dovrebbe essere la direzione del primo vettore di autovettore.

Tuttavia, leggendo il codice del biplot in R. La riga sulle frecce è:

if(var.axes)
    arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L], 

Dov'è yla matrice dei carichi, che è la matrice degli autovettori. Quindi sembra che la prima freccia stia effettivamente puntando da (0, 0)a (y[1, 1], y[1, 2]). Capisco che stiamo cercando di tracciare una freccia ad alta dimensione su un piano 2D. Ecco perché stiamo prendendo il 1o e il 2o elemento del y[1, ]vettore. Tuttavia quello che non capisco è:

La prima direzione y[, 1]dell'autovettore non dovrebbe essere il vettore indicato da , anziché y[1, ]? (Anche in questo caso, ecco yla matrice degli autovettori, ottenuta dalla PCA o dalla composizione dell'endigeni di t(x) %*% x.) Cioè gli autovettori dovrebbero essere vettori di colonna, non quei vettori orizzontali.

Anche se li stiamo disegnando sul piano 2D, dovremmo disegnare la prima direzione da cui (0, 0)puntare (y[1, 1], y[2, 1])?


2
Considera anche di provare a utilizzare la formattazione disponibile per le domande sul sito, vedi la guida avanzata di markdown . Vedo che nessuna delle tue precedenti domande ha delle risposte e se le modifichi per renderle leggermente più leggibili, andranno in cima alla lista e potrebbero attirare risposte.
Andy W

@Andy W Riferimenti eccellenti
conjugateprior il

@Andy W: Dopo aver letto i tuoi eccellenti riferimenti, penso ancora che il codice R biplot.princomp abbia un bug: la matrice di caricamento (matrice di autovettori) dovrebbe essere trasposta prima di essere inviata in biplot.princomp ... Qualche idea?
Luna,

Sembra che non ci siano bug .
chl,

@Andy W: vuoi inserire i tuoi commenti in una "risposta" in modo che io possa accettare la tua risposta? È fantastico! Grazie mille!
Luna

Risposte:


9

Bene, sembra che Kevin Wright debba ricevere la maggior parte del merito per cercare di aiutare a spiegare la confusione (dalla lista di posta di aiuto R );

Le frecce non puntano nella direzione più variabile dei dati. I componenti principali puntano nella direzione più variabile dei dati. Ma non si tracciano i dati sulla scala originale, si tracciano i dati sulla scala ruotata, e quindi l'asse orizzontale è la direzione più variabile dei dati.

Le frecce puntano nella direzione delle variabili, come proiettato sul piano 2-d del biplot.

Non c'è nessun bug.

Kevin Wright

Michael Greenacre ha un eccellente libro online gratuito sui bipoti, Biplot in pratica , e la semplice lettura del primo capitolo dovrebbe aiutare a motivare la provenienza delle coordinate delle frecce. Ci sono anche molte altre domande sul sito che sono simili e che potrebbero interessarti, vedi Interpretazione dei biplot nell'analisi dei componenti principali in R e Interpretazione del diagramma del fattore MDS per due esempi. Guarda anche le domande con il biplot nella ricerca sul sito , in quanto ci sono alcuni potenziali interessi in più (sembra che forse anche fare un tag biplot sarebbe utile a questo punto dato il numero di domande in cui è emerso).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.