"Machine Learning For Hackers" di O'Reilly afferma che ogni componente principale rappresenta una percentuale della varianza. Ho citato la parte pertinente della pagina seguente (capitolo 8, p. 207). Parlando con un altro esperto, hanno concordato che è la percentuale.
Tuttavia, i 24 componenti si sommano al 133,2095%. Come può essere?
Avendo convinto noi stessi che possiamo usare PCA, come possiamo farlo in R? Ancora una volta, questo è un luogo in cui R brilla: l'intera PCA può essere eseguita in una riga di codice. Usiamo la funzione princomp per eseguire PCA:
pca <- princomp(date.stock.matrix[,2:ncol(date.stock.matrix)])Se digitiamo pca in R, vedremo un breve riepilogo dei componenti principali:
Call: princomp(x = date.stock.matrix[, 2:ncol(date.stock.matrix)]) Standard deviations: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 29.1001249 20.4403404 12.6726924 11.4636450 8.4963820 8.1969345 5.5438308 Comp.8 Comp.9 Comp.10 Comp.11 Comp.12 Comp.13 Comp.14 5.1300931 4.7786752 4.2575099 3.3050931 2.6197715 2.4986181 2.1746125 Comp.15 Comp.16 Comp.17 Comp.18 Comp.19 Comp.20 Comp.21 1.9469475 1.8706240 1.6984043 1.6344116 1.2327471 1.1280913 0.9877634 Comp.22 Comp.23 Comp.24 0.8583681 0.7390626 0.4347983 24 variables and 2366 observations.In questo riassunto, le deviazioni standard ci dicono quanta parte della varianza nel set di dati è rappresentata dai diversi componenti principali. Il primo componente, chiamato Comp.1, rappresenta il 29% della varianza, mentre il componente successivo rappresenta il 20%. Alla fine, l'ultimo componente, Comp.24, rappresenta meno dell'1% della varianza. Ciò suggerisce che possiamo imparare molto sui nostri dati semplicemente guardando il primo componente principale.
[Codice e dati possono essere trovati su github .]
Rsoftware stesso. Scoprire quell'errore è stato una buona cattura (spero che tu abbia trovato gratificante scoprire cosa sta realmente succedendo con PCA)!
Standard deviationssia leggermente off. Poiché le deviazioni standard sono in realtà deviazioni standard, dobbiamo quadrarle per vedere quanta varianza rappresenta ogni componente. Il primo componente rappresenterebbe percento della varianza totale.