Ho confrontato ?prcomp
e ?princomp
trovato qualcosa sull'analisi dei componenti principali in modalità Q e modalità R (PCA). Ma onestamente, non lo capisco. Qualcuno può spiegare la differenza e forse anche spiegare quando applicare quale?
Ho confrontato ?prcomp
e ?princomp
trovato qualcosa sull'analisi dei componenti principali in modalità Q e modalità R (PCA). Ma onestamente, non lo capisco. Qualcuno può spiegare la differenza e forse anche spiegare quando applicare quale?
Risposte:
La differenza tra loro non ha nulla a che fare con il tipo di PCA che eseguono, solo il metodo che usano. Come dice la pagina di aiuto per prcomp
:
Il calcolo viene effettuato mediante una scomposizione del valore singolare della matrice di dati (centrata e possibilmente ridimensionata), non utilizzando
eigen
la matrice di covarianza. Questo è generalmente il metodo preferito per l'accuratezza numerica.
D'altra parte, la princomp
pagina di aiuto dice:
Il calcolo viene eseguito utilizzando
eigen
la matrice di correlazione o covarianza, come determinato dacor
. Questo viene fatto per compatibilità con il risultato S-PLUS. Un metodo preferito di calcolo deve usaresvd
sux
, come avviene inprcomp
".
Pertanto, prcomp
è preferibile , anche se in pratica è improbabile che si notino molte differenze (ad esempio, se si eseguono gli esempi nelle pagine della guida, si dovrebbero ottenere risultati identici).
prcomp
, è un metodo preferito.
Di solito un'analisi multivariata (correlazioni di calcolo, l'estrazione di impronte latenti, etc.) è fatto di colonne di dati che sono caratteristiche o domande, - mentre le unità di campionamento, le righe, sono r espondents. Quindi in questo modo si chiama analisi della R. A volte, però, si consiglia di fare l'analisi multivariata di responsents, mentre q OMANDE sono trattati come unità di campionamento. Sarebbe un'analisi Q way.
Non c'è alcuna differenza formale tra i due, quindi puoi gestirli entrambi con la stessa funzione, solo trasporre i tuoi dati. Vi sono tuttavia differenze nelle questioni relative alla standardizzazione e all'interpretazione dei risultati.
Questa è una risposta generale: non tocco specificamente le funzioni R prcomp
e princomp
perché non sono un utente R e non sono consapevole delle possibili differenze tra loro.
Una documentazione utile e specifica di Gregory B. Anderson , intitolata, PRINCIPAL COMPONENT ANALYSIS IN R AN EXAMINATION OF THE DIFFERENT FUNCTIONS AND METHODS TO PERFORM PCA
ha fornito ulteriori informazioni su questo argomento.
I seguenti due paragrafi sono stati estratti dall'introduzione:
In R ci sono due metodi generali per eseguire la PCA senza alcun valore mancante: (1) decomposizione spettrale (R-mode [anche conosciuta come eigendecomposition]) e (2) singular value decomposition (Q-mode; R Development Core Team 2011). Entrambi questi metodi possono essere eseguiti manualmente usando le funzioni eigen (R-mode) e svd (Q-mode), rispettivamente, oppure possono essere eseguiti usando le molte funzioni PCA presenti nel pacchetto stats e altri pacchetti disponibili aggiuntivi. Il metodo di analisi della decomposizione spettrale esamina le covarianze e le correlazioni tra le variabili, mentre il metodo di decomposizione a valore singolare esamina le covarianze e le correlazioni tra i campioni. Mentre entrambi i metodi possono essere facilmente eseguiti all'interno di R, il metodo di decomposizione del valore singolare (ovvero
Questo documento si concentra sul confronto tra i diversi metodi per eseguire PCA in R e fornisce tecniche di visualizzazione appropriate per esaminare la normalità all'interno del pacchetto statistico. Più specificamente questo documento mette a confronto sei diverse funzioni create per o utilizzabili per PCA: eigen, princomp, svd, prcomp, PCA e pca. In tutto il documento il codice R essenziale per eseguire queste funzioni è incorporato nel testo usando il font Courier New ed è codificato a colori usando la tecnica fornita in Tinn-R ( https://sourceforge.net/projects/tinn-r ). Inoltre, i risultati delle funzioni vengono confrontati usando la procedura di simulazione per vedere se i diversi metodi differiscono in autovalori, autovettori e punteggi forniti dall'output.
Di seguito sono riportati i risultati dei miei test:
> job<-read.table("./job_perf.txt", header=TRUE, sep="")
> pc.cr<-prcomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr1<-princomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr$scale
commun probl_solv logical learn physical appearance
5.039841 1.689540 2.000000 4.655398 3.770700 4.526689
> pc.cr1$scale
commun probl_solv logical learn physical appearance
4.805300 1.610913 1.906925 4.438747 3.595222 4.316028
Dati di test:
commun probl_solv logical learn physical appearance
12 52 20 44 48 16
12 57 25 45 50 16
12 54 21 45 50 16
13 52 21 46 51 17
14 54 24 46 51 17
22 52 25 54 58 26
22 56 26 55 58 27
17 52 21 45 52 17
15 53 24 45 53 18
23 54 23 53 57 24
25 54 23 55 58 25