Det ser ud til, at et antal af de statistiske pakker, som jeg bruger, pakke disse to koncepter sammen. Imidlertid spekulerer jeg på, om der er forskellige antagelser eller data “formaliteter”, der skal være sande for at bruge den ene over den anden. Et rigtigt eksempel ville være utroligt nyttigt.
Kommentarer
- Kapitlerne om hovedkomponentanalyse og faktoranalyse i den følgende bog, som er tilgængelige på de fleste universitetsbiblioteker, adresserer dit spørgsmål nøjagtigt: apa.org/ pubs / books / 4316510.aspx
- Ud over nedenstående svar kan du også læse dette og denne af mig.
- Og et andet godt spørgsmål som ” skal jeg bruge PCA eller FA “: stats.stackexchange.com/q/123063/3277 .
- @ttnphns: Jeg vil opfordre dig til at udstede et svar i denne tråd, måske bestående af en kommenteret liste over dine svar i andre relaterede tråde. Dette kan erstatte dine kommentarer ovenfor (i øjeblikket fire co med links), og det ville være mere praktisk, især hvis du kort kommenterede hvert link. For eksempel. se her for forklaringen på dette emne, se der for en forklaring af dette emne osv. Det er bare et forslag, men jeg tror, denne tråd ville have stor gavn af det! En særlig fordel er, at du altid kan tilføje flere links til det svar.
- Et lignende spørgsmål blev stillet på MathOverflow og fik det, som jeg ville betragte som et fremragende svar: mathoverflow.net/questions/40191/ …
Svar
Hovedkomponentanalyse involverer ekstraktion af lineære kompositter af observerede variabler.
Faktoranalyse er baseret på en formel model, der forudsiger observerede variabler fra teoretiske latente faktorer.
I psykologi er disse to teknikker anvendes ofte i konstruktionen af test i flere skalaer for at bestemme, hvilke genstande der belastes på hvilke skalaer. De giver typisk lignende materielle konklusioner (for en diskussion se Comrey (1988) Faktor-analytiske metoder til skalaudvikling inden for personlighed og klinisk psykologi). Dette hjælper med at forklare, hvorfor nogle statistikpakker ser ud til at samle dem sammen. Jeg har også set situationer, hvor “hovedkomponentanalyse” er forkert mærket “faktoranalyse”.
Med hensyn til en enkel tommelfingerregel , jeg foreslår, at du:
-
Kør faktoranalyse, hvis du antager eller ønsker at teste en teoretisk model af latente faktorer, der forårsager observerede variabler.
-
Kør hovedkomponentanalyse Hvis du blot vil reducere dine korrelerede observerede variabler til et mindre sæt vigtige uafhængige sammensatte variabler.
Kommentarer
- Tommelfingerreglen der er meget nyttig. Tak for det.
- Med hensyn til tommelfingerregel (1): Ville ikke ‘ t Jeg tester en teoretisk model for latente faktorer med en bekræftende faktoranalyse snarere end en udforskende fa?
- @roman Ja. En CFA giver dig meget mere kontrol over modellen end EFA. F.eks. kan du begrænse belastninger til nul; sidestille belastninger; have korreleret residua ls; tilføj faktorer med højere ordre osv.
- @Jeromy Anglim Er det virkelig korrekt at sige PCA laver et ” mindre sæt vigtige uafhængige sammensatte variabler. ” Eller skal du virkelig sige ” mindre sæt vigtige ikke-korrelerede sammensatte variabler “. Hvis de underliggende data, der bruges i PCA, ikke (multivariate) normalt distribueres, vil de reducerede dimensionelle data kun være ukorrelerede?
- 2. regel for tommelfinger er let at få, men hvordan anvender jeg den første? Lyder måske mærkeligt, men hvornår ved jeg, at jeg vil ‘ køre en faktormodel mod observerede variabler?
Svar
Fra mit svar her:
Er PCA efterfulgt af en rotation (såsom varimax) stadig PCA?
Principal Component Analysis (PCA) og Common Factor Analysis (CFA) er forskellige metoder. Ofte producerer de lignende resultater, og PCA bruges som standardudvindingsmetode i SPSS-faktoranalyserutinerne. Dette resulterer utvivlsomt i en masse forvirring omkring sondringen mellem de to.
Bunden er, at disse er to forskellige modeller, begrebsmæssigt. I PCA er komponenterne faktiske ortogonale lineære kombinationer, der maksimerer den samlede varians.I FA er faktorerne lineære kombinationer, der maksimerer den delte del af variansen – underliggende “latente konstruktioner”. Derfor kaldes FA ofte for “fælles faktoranalyse”. FA bruger en række optimeringsrutiner, og resultatet, i modsætning til PCA, afhænger af den anvendte optimeringsrutine og udgangspunkt for disse rutiner. Der er simpelthen ikke en eneste unik løsning.
I R giver funktionen factanal () CFA en maksimal sandsynlighedsudtrækning. Så du bør ikke forvente, at den reproducerer et SPSS-resultat, der er baseret på en PCA-ekstraktion. Det er simpelthen ikke den samme model eller logik. Jeg er ikke sikker på, om du ville få det samme resultat, hvis du brugte SPSSs maksimale sandsynlighedsudtræk, da de muligvis ikke bruger den samme algoritme.
For bedre eller værre i R, kan du dog gengive den blandede “faktoranalyse”, som SPSS giver som standard. Her er processen i R. Med denne kode er jeg i stand til at gengive SPSS-hovedkomponenten ” Faktoranalyseresultat ved hjælp af dette datasæt. (Med undtagelse af tegnet, som er ubestemt). Dette resultat kunne også derefter roteres ved hjælp af en hvilken som helst af Rs tilgængelige rotationsmetoder.
data(attitude) # Compute eigenvalues and eigenvectors of the correlation matrix. pfa.eigen <- eigen(cor(attitude)) # Print and note that eigenvalues are those produced by SPSS. # Also note that SPSS will extract 2 components as eigenvalues > 1 = 2. pfa.eigen$values # Set a value for the number of factors (for clarity) kFactors <- 2 # Extract and transform two components. pfa.eigen$vectors[, seq_len(kFactors)] %*% diag(sqrt(pfa.eigen$values[seq_len(kFactors)]), kFactors, kFactors)
Kommentarer
- Bemærk at du får de samme resultater med
principal(attitude, 2, rotate="none")
frapsych
pakke, og at Kayser ‘ s regel (ev > 1) er ikke den mest anbefalede måde at teste på for dimensionalitet (det overvurderer antallet af faktorer). - Ja, jeg kender psych p rektor pakker dette op. Mit formål var at vise, hvad SPSS ” faktoranalyse ” lavede, når jeg anvendte metode til ekstraktion af hovedkomponenter. Jeg er enig i, at egenværdireglen er en dårlig måde at vælge antallet af faktorer på. Men det er præcis, hvad SPSS gør som standard, og det var det, jeg demonstrerede.
-
factanal()
giver EFA ikke CFA. Fra min erfaring bør også SPSS ‘ s Maksimal sandsynlighedstraktion give det samme resultat somfactanal()
, da der ikke er nogen skrå rotation. - Hvad betyder følgende: ‘ I FA er faktorerne lineære kombinationer, der maksimerer den delte del af variansen – underliggende ” latente konstruktioner “. ‘?
- Bemærk også, at CFA kan stå for bekræftende FA (i modsætning til forklarende FA ) i stedet for fælles FA .
Svar
Der er mange foreslåede definitioner på web. Her er en fra en online ordliste om statistisk læring :
Hovedkomponent Analyse
Konstruktion af nye funktioner, der er de vigtigste komponenter i et datasæt. De vigtigste komponenter er tilfældige variabler med maksimal varians konstrueret ud fra lineære kombinationer af inputfunktionerne. Tilsvarende er de fremspringene på hovedkomponentakserne, som er linjer, der minimerer den gennemsnitlige kvadratiske afstand til hvert punkt i datasættet. For at sikre unikhed skal alle hovedkomponentakserne være ortogonale. PCA er en højst sandsynlig teknik til lineær regression i nærvær af Gaussisk støj på både indgange og udgange. I nogle tilfælde svarer PCA til en Fourier-transformation, såsom DCT, der anvendes i JPEG-billedkomprimering. Se “Eigenfaces for recognition” (Turk & Pentland, J Cognitive Neuroscience 3 (1), 1991), Bishop, “Probabilistic Principal Component Analysis” og “Automatic choice of dimensionality for PCA “.dimensionalitet for PCA”.
Faktoranalyse
En generalisering af PCA, der udtrykkeligt er baseret på maksimal sandsynlighed. Ligesom PCA antages hvert datapunkt at opstå ved prøveudtagning et punkt i et underrum og forstyrrer det derefter med fulddimensionel gaussisk støj. Forskellen er, at faktoranalyse tillader støj at have en vilkårlig diagonal kovariansmatrix, mens PCA antager, at støj er sfærisk. Ud over at estimere underområdet, faktoranalyse estimerer støjkovariansmatrixen. Se “EM-algoritmen for blandinger af faktoranalysatorer”. valg af dimensionalitet for PCA “.
Kommentarer
- Beskrivelse af faktoranalyse får hovedpunktet (diagonal kovarians), men historisk set s ikke udviklet som en generalisering af PCA.
- Så dybest set er der i PCA en svd ‘ kovariansmatrixen og i FA korrelationsmatricen? Det er altid svært for mig at finde den faktiske matematik, efter at metoder har opbygget en masse terminologi fra det felt, hvor de anvendes.(uden for emnet: det tog mig engang en hel eftermiddag at forstå, hvad stemmodelleringen er, indtil jeg fandt et (1) papir fra de 70 ‘, der angav matrixligningen bag det. )
Svar
Du har ret i dit første punkt, selvom du i FA generelt arbejder med begge (unikhed og samfund). Valget mellem PCA og FA er en langvarig debat blandt psykometrikere. Jeg følger dog ikke helt dine punkter. Rotation af hovedakser kan anvendes uanset hvilken metode der bruges til at konstruere latente faktorer. Faktisk er det de fleste gange VARIMAX-rotation (ortogonal rotation, i betragtning af ikke-korrelerede faktorer), der er anvendt af praktiske årsager (nemmeste fortolkning, nemmeste scoringsregler eller fortolkning af faktor scores osv.), selvom skrå rotation (f.eks. PROMAX) sandsynligvis bedre afspejler virkeligheden (latente konstruktioner er ofte korreleret med hinanden), i det mindste tradition for FA, hvor du antager, at en latent konstruktion virkelig er kernen i de observerede indbyrdes korrelationer mellem dine variabler. Pointen er, at PCA efterfulgt af VARIMAX-rotation noget forvrænger fortolkningen af de lineære kombinationer af de originale variabler i “data analyse “tradition (se Michel Tenenhauss arbejde). Fra et psykometrisk perspektiv er FA-modeller at foretrække, da de udtrykkeligt tegner sig for målefejl s, mens PCA ikke er ligeglad med det. Kort sagt, ved hjælp af PCA udtrykker du hver komponent (faktor) som en lineær kombination af variablerne, mens det i FA er de variabler, der udtrykkes som lineære kombinationer af faktorerne (inklusive kommunaliteter og unikhedskomponenter, som du sagde). / p>
Jeg anbefaler dig først at læse følgende diskussioner om dette emne:
- Hvad er forskellene mellem faktoranalyse og Principal Komponentanalyse
- Om brugen af skrå rotation efter PCA – se reference deri
Kommentarer
- Bare for at sige, at mit svar faktisk kan se en smule uden for emnet, da dette spørgsmål er blevet flettet med et andet, stats.stackexchange.com/questions/3369/… (jeg svarer oprindeligt på sidstnævnte).
- Ah, Jeg spekulerede på, hvorfor du linkede til denne queston, i dette spørgsmål … 🙂
- . Chl, kunne du forklare det? Det ‘ er interessant.
Svar
Det øverste svar i denne tråd antyder, at PCA mere er en dimensionalitetsreduktionsteknik, mens FA mere er en latent variabel teknik. Dette er sensu stricto korrekt. Men mange svar her og mange behandlinger andre steder præsenterer PCA og FA som to helt forskellige metoder med forskellige, hvis ikke modsatte mål, metoder og resultater. Jeg er uenig; Jeg tror, at når PCA anses for at være en latent variabel teknik, er det ret tæt på FA, og de bør bedre ses som meget lignende metoder.
Jeg fremlagde min egen beretning om ligheder og forskelle mellem PCA og FA i følgende tråd: Er der nogen god grund til at bruge PCA i stedet for EFA? Kan PCA også være en erstatning for faktoranalyse? Der argumenterer jeg for, at resultatet af PCA og FA af enkle matematiske grunde kan forventes at være ret ens, da kun antallet af variabler ikke er meget lille (måske over et dusin). Se mit [lange!] Svar i den linkede tråd for matematiske detaljer og Monte Carlo-simuleringer. For en meget mere kortfattet version af mit argument se her: Under hvilke betingelser giver PCA og FA lignende resultater?
Her vil jeg gerne have for at vise det på et eksempel. Jeg analyserer vinsættet fra UCI Machine Learning Repository. Det er et ret kendt datasæt med $ n = 178 $ vine fra tre forskellige druer beskrevet af $ p = 13 $ variabler. Sådan ser korrelationsmatrixen ud:
Jeg kørte både PCA og FA analyse og viste 2D-fremskrivninger af dataene som biplots for dem begge på nedenstående figur (PCA til venstre, FA til højre). Vandrette og lodrette akser viser 1. og 2. komponent / faktor score. Hver af $ n = 178 $ prikker svarer til en vin, og prikker farves i henhold til gruppen (se forklaring):
Belastningerne af 1. og 2. komponent / faktor på hver af de $ p = 13 $ originale variabler vises som sorte streger. De er lig med korrelationer mellem hver af de oprindelige variabler og de to komponenter / faktorer.Selvfølgelig kan korrelationer ikke overstige $ 1 $, så alle indlæsningslinjer er indeholdt i “korrelationscirklen”, der viser maksimal mulig korrelation. Alle belastninger og cirklen skaleres vilkårligt med en faktor på $ 3 $, ellers ville de være for små til at blive set (så cirkelens radius er $ 3 $ og ikke $ 1 $).
Bemærk at der er næppe nogen forskel mellem PCA og FA! Der er små afvigelser her og der, men det generelle billede er næsten identisk, og alle belastningerne er meget ens og peger i samme retning. Dette er nøjagtigt, hvad der var forventet af teorien, og det er ingen overraskelse; stadig er det lærerigt at observere.
PS. For en meget pænere PCA-biplot af samme datasæt, se dette svar af @vqv .
PPS. Mens PCA-beregninger er standard, kan FA-beregninger muligvis kræve en kommentar. Faktorbelastninger blev beregnet af en “itereret hovedfaktor” -algoritme indtil konvergens (9 iterationer), hvor kommunaliteter blev initialiseret med delvise korrelationer. Når belastningerne var konvergerede, blev scores beregnet ved hjælp af Bartletts metode. Dette giver standardiserede scores. Jeg skalerede dem op med de respektive faktorvariationer (givet ved belastningslængder).
Kommentarer
- Hvilken software brugte du til at oprette PCA- og faktoranalyser?
- Jeg brugte Matlab. Jeg tænkte på at indsætte koden i mit svar (som normalt er min vane ), men ønskede ikke at rod i denne travle tråd endnu mere. Men når jeg tænker på det, skal jeg sende det på et eksternt websted og efterlade et link her. Det gør jeg.
- Det er sandt at PCA og FA undertiden og slet ikke sjældent giver lignende resultater (belastninger), og så kan PCA ses som et specifikt tilfælde af FA, når faktoranalyse er defineret bredt. Stadig FA (sensu stricto) og PCA er teoretisk ret forskellige.
- (fortsat) Faktorer er transcendente latente træk; pr. komponenter er immanente afledninger. På trods af din to indlæsnings-app øre praktisk talt ens, teoretisk de er fundamentalt forskellige. Komponentplanet til venstre blev produceret som et delområde af de variabler, der projicerer sig selv på det. Faktorplanet blev produceret som et andet rum end variablenes rum, og så projicerer de sig selv på en ” fremmed ” plads på det rigtige plot.
- (fortsat) Men det rigtige billede (FA) er faktisk ikke en ægte biplot , det er snarere et overlay af to forskellige spredningsplotter, forskellige rum: belastningsdiagrammet (hvor akser er sande faktorer) og objektet scorer plot (hvor akser er de estimerede faktorer som scores). Ægte faktorrum overskrider ” forælder ” variabelt rum, men faktor scorer plads er dets underområde. Du overlejrede to heterogene par akser, men de bærer de samme etiketter (” factor1 ” og ” faktor2 ” i begge par) hvilken omstændighed er stærkt vildledende og overtaler os til at tro, at det er en bona fide biplot , ligesom den venstre.
Svar
En grundlæggende, men alligevel en slags omhyggelig forklaring på PCA vs Factor analyse ved hjælp af scatterplots i logiske trin. (Jeg takker @amoeba, der i sin kommentar til spørgsmålet har tilskyndet mig til at sende et svar i stedet for at skabe links til andre steder. Så her er et fritidssent, sent svar.)
PCA som variabel opsummering (udtrækning af funktioner)
Håber du allerede har forståelse for PCA. For at genoplive nu.
Antag, at vi har korrelerende variabler $ V_1 $ og $ V_2 $ . Vi centrerer dem (fratræk middelværdien) og laver en scatterplot. Derefter udfører vi PCA på disse centrerede data. PCA er en form for akser rotation som tilbyder akser P1 og P2 i stedet for V1 og V2. nøgleegenskaben for PCA er, at P1 – kaldet 1. hovedkomponent – orienteres, så variansen af datapunkter langs den maksimeres. De nye akser er nye variabler, som kan beregnes, så længe vi kender rotationskoefficienterne $ a $ (PCA giver dem) [ Lig.1 ]:
$ P1 = a1_1V_1 + a1_2V_2 $
$ P2 = a2_1V_1 + a2_2V_2 $
Disse koefficienter er cosinus for rotation (= retning cosinus, hovedretning) og omfatter det, der kaldes egenvektorer, mens egenværdier af kovariansmatrixen er de vigtigste komponentafvigelser. I PCA kasserer vi typisk svage sidste komponenter: Vi opsummerer således data med få først ekstraherede komponenter med lidt informationstab.
Covariances V1 V2 V1 1.07652 .73915 V2 .73915 .95534 ----PCA---- Eigenvalues % P1 1.75756 86.500 P2 .27430 13.500 Eigenvectors P1 P2 V1 .73543 -.67761 V2 .67761 .73543
Med vores plottede data, P1 komponentværdier (scores) P1 = .73543*V1 + .67761*V2
og komponent P2, som vi kasserer. P1 “s varians er 1.75756
, den første egenværdi af kovariansmatrixen, og så forklarer P1 86.5%
af total varians, der er lig med (1.07652+.95534) = (1.75756+.27430)
.
PCA som variabel forudsigelse (” latent ” -funktion)
Så vi kasserede P2 og forventer, at P1 alene med rimelighed kan repræsentere dataene. Det svarer til at sige, at $ P1 $ kan med rimelighed ” rekonstruere ” eller forudsige $ V_1 $ og $ V_2 $ [ Ligning 2 ]:
$ V_1 = a1_ {1} P1 + E_1 $
$ V_2 = a1_ {2} P1 + E_2 $
hvor koefficienter $ a $ er det, vi allerede ved, og $ E $ er fejlene (uforudsigelighed). Dette er faktisk en ” regressionsmodel ” hvor observerede variabler forudsiges (tilbage) af den latente variabel (hvis det er muligt at kalde en komponent en ” latent ” en) P1 ekstraheret fra de samme variabler. Se på plottet Fig.2 , det er intet andet end Fig .1 , kun detaljeret:
P1-aksen vises flisebelagt med sine værdier (P1-score) i grønt (disse værdier er fremskrivningerne af datapunkter på P1). Nogle vilkårlige datapunkter blev mærket A, B, …, og deres afgang (fejl) fra P1 er fed sort stik. For punkt A vises detaljer: koordinaterne for P1-score (grøn A) på V1- og V2-akser er de P1-rekonstruerede værdier for V1 og V2 i henhold til Eq.2 , $ \ hat {V_1} = a1_ {1} P1 $ og $ \ hat {V_2} = a1_ {2} P1 $ . Rekonstruktionsfejlene $ E_1 = V_1- \ hat {V_1} $ og $ E_2 = V_2- \ hat {V_2} $ vises også i beige. Stikket ” fejl ” længde i kvadrat er summen af de to fejl i kvadrat ifølge Pythagorean.
Nu, hvad der er karakteristisk for PCA er, at hvis vi beregner E1 og E2 for hvert punkt i dataene og plotter disse koordinater – dvs. scatterplot af fejlene alene, skyen ” fejldata ” falder sammen med den kasserede komponent P2. Og det gør den: skyen er tegnet på det samme billede som den beige sky – og du ser den faktisk danner akse P2 (af Fig.1 ) som flisebelagt med P2-komponent score.
Ikke underligt, kan du sige. Det er så indlysende: i PCA , den / de kasserede juniorkomponent (er) er, hvad der præcist nedbrydes (s) i forudsigelsesfejlene E, i modellen, der forklarer (gendanner) originale variabler V ved hjælp af det eller de latente træk P1. Fejl E sammen udgør bare de udeladte komponenter. Her er hvor faktoranalyse begynder at adskille sig fra PCA.
Ideen om fælles FA (latent funktion )
Formelt er modellen, der forudsiger manifestvariabler ved hjælp af den eller de ekstraherede latente egenskaber, den samme i FA som i PCA; [ Eq.3 ]:
$ V_1 = a_ {1} F + E_1 $
$ V_2 = a_ {2} F + E_2 $
hvor F er den latente fælles faktor ekstraheret fra dataene og erstatter hvad der var P1 i Ligning 2 .Forskellen i modellen er, at der i FA, i modsætning til PCA, kræves fejlvariabler (E1 og E2) for at være ukorreleret med hinanden .
Digression . Her vil jeg pludselig afbryde historien og lave en opfattelse af, hvad der er koefficienter $ a $ . I PCA sagde vi, dette var poster af egenvektorer, der findes inden for PCA (via egen- eller entalværdi-nedbrydning). Mens latent P1 havde sin oprindelige varians. Hvis vi vælger at standardisere P1 til enhedsvarians skal vi kompensere ved passende opskalering af koefficienter $ a $ for at understøtte ligning. Den skalerede $ a $ s kaldes loadings ; de er af interesse numerisk, fordi de er kovarianter (eller korrelationer) mellem de latente og de observerbare variabler og derfor kan hjælpe med at fortolke den latente funktion. I begge modeller – Lig.2 og Eq.3 – du er fri til at beslutte uden at skade ligningen , hvilken vej vilkårene skaleres. Hvis F (eller P1) betragtes som enhedsskaleret, indlæses $ a $ , mens F (P1) skal have sit oprindelige skala (varians), så skal $ a $ afskaleres i overensstemmelse hermed – i PCA, der svarer til egenvektorposter, b ut i FA vil de være forskellige og kaldes normalt ikke ” egenvektorer “. I de fleste tekster om faktoranalyse antages F for enhedsvarians, så $ a $ er belastninger . I PCA-litteratur diskuteres P1 typisk med sin reelle varians, så $ a $ er egenvektorer.
OK, tilbage til tråden. El og E2 er ukorreleret i faktoranalyse; således skal de danne en sky af fejl enten runde eller elliptiske, men ikke diagonalt orienteret. Mens de var i PCA dannede deres sky lige linje, der faldt sammen med diagonalt P2. Begge ideer demonstreres på billedet:
Bemærk, at fejl er runde (ikke diagonalt langstrakte) skyer i FA. Faktor (latent) i FA er orienteret noget anderledes, dvs. det er ikke rigtigt, at den første hovedkomponent er ” latent ” i PCA . På billedet er faktorlinjen underligt konisk lidt – det bliver klart hvorfor i sidste ende.
Hvad er meningen med denne forskel mellem PCA og FA? Variabler korrelerede, som ses i den diagonalt elliptiske form af dataskyen. P1 skummet den maksimale varians, så ellipsen er co-dirigeret til P1. Derfor forklarede P1 af sig selv sammenhængen; men det forklarede ikke den eksisterende mængde korrelation tilstrækkeligt; det så ud til at forklare variation i datapunkter, ikke sammenhæng. Faktisk overregner det sammenhængen, hvis resultat var udseendet af den diagonale, korrelerede sky af fejl, der kompenserer for overkontoen. P1 alene kan ikke forklare styrken af korrelation / samvariation omfattende. Faktor F kan gøre det alene; og betingelsen, når det bliver i stand til at gøre det, er nøjagtigt, hvor fejl kan tvinges til ikke at være korreleret. Da fejlskyen er rund, har der ikke været nogen korrelation – positiv eller negativ – efter at faktoren blev ekstraheret, og derfor er det den faktor, der skummet det hele.
Som en dimensionalitetsreduktion PCA forklarer varians men forklarer sammenhænge nøjagtigt. FA forklarer sammenhænge men kan ikke redegøre for (af de fælles faktorer) så meget datavariation som PCA kan. Faktor (er) i FA tegner sig for den del af variabilitet, som er nettokorrelationsdelen kaldet fællesskab ; og derfor kan faktorer fortolkes som reelle, men ikke-observerbare kræfter / træk / træk, der skjuler ” i ” eller ” bag ” inputvariablerne for at bringe dem til at korrelere. Fordi de forklarer korrelation godt matematisk. Hovedkomponenter (få første) forklarer det matematisk ikke så godt, og så kan kaldes ” latent træk ” (eller sådan) kun i en vis strækning og foreløbigt .
Multiplikation af belastninger er det, der forklarer (gendanner) korrelation eller korrelerethed i form for kovarians – hvis analysen var baseret på kovariansmatrix (som i ud eksempel) snarere end korrelationsmatrix.Faktoranalyse, som jeg foretog med de data, der gav a_1=.87352, a_2=.84528
, så produkt a_1*a_2 = .73837
er næsten lig med kovariansen .73915
. På den anden side var PCA-belastninger a1_1=.97497, a1_2=.89832
, så a1_1*a1_2 = .87584
overvurderer .73915
betydeligt.
Efter at have forklaret den vigtigste teoretiske skelnen mellem PCA og FA, lad os vende tilbage til vores data for at eksemplificere ideen.
FA: omtrentlig løsning (faktor scores)
Nedenfor er scatterplot, der viser resultaterne af analysen, som vi “foreløbigt kalder ” suboptimal faktoranalyse “, Fig.3 .
A technical detail (you may skip): PAF method used for factor extraction. Factor scores computed by Regression method. Variance of the factor scores on the plot was scaled to the true factor variance (sum of squared loadings).
Se afgang fra Fig .2 af PCA. Beige sky af fejlene er ikke runde, den er diagonalt elliptisk, – alligevel er den åbenbart meget federe end den tynde diagonale linje, der har fundet sted i PCA. Bemærk også, at fejlkonnektorerne (vist for nogle punkter) ikke længere er parallelle ( PCA, de var pr. Definition parallelle med P2). Hvis man for eksempel ser på punkter ” F ” og ” E ” som ligger spejl symmetrisk over faktoren “s F akse, vil du uventet finde, at deres tilsvarende faktor score er helt forskellige værdier. Med andre ord, faktor scores er ikke bare lineært transformerede hovedkomponent scores: faktor F findes på sin egen måde anderledes fra P1-måde. Og deres akser falder ikke helt sammen, hvis de vises sammen på samme plot Fig.4 :
Bortset fra at de er lidt anderledes orienterede, er F (som flisebelagt med scores) kortere, dvs. det tegner sig for mindre afvigelse end P1 tegner sig for. Som tidligere nævnt tegner faktoren sig kun for variabilitet, der er ansvarlig for korrelationen af V1 V2, dvs. den del af total varians, der er tilstrækkelig til at bringe variablerne fra urkovarians 0
til den faktiske kovarians .73915
.
FA: optimal løsning (ægte faktor)
En optimal faktorløsning er, når fejl er runde eller ikke-diagonale elliptiske skyer : E1 og E2 er fuldt ukorreleret . Faktoranalyse returnerer faktisk sådan en optimal løsning. Jeg viste det ikke på en simpel scatterplot som dem ovenfor. Hvorfor gjorde jeg det? – for det ville trods alt have været den mest interessante ting.
Årsagen er, at det ville være umuligt at vise på en scatterplot tilstrækkeligt nok, endda at vedtage et 3D-plot. Det er teoretisk et ganske interessant punkt. For at gøre E1 og E2 fuldstændig ukorreleret ser det ud til, at alle disse tre variabler, F, E1, E2 skal lyve ikke i rummet (plan) defineret af V1, V2; og de tre skal ikke være korreleret med hinanden . Jeg tror, det er muligt at tegne en sådan scatterplot i 5D (og måske med noget gimmick – i 4D), men vi lever i 3D-verden, desværre. Faktor F skal være ikke-korreleret til både E1 og E2 (mens de to også er ukorrelerede), fordi F formodes at være (ren) og komplet kilde til sammenhæng i de observerede data. Faktoranalyse opdeler total varians af p
inputvariabler i to ukorrelerede (ikke-overlappende) ) dele: kommunalitet del (m
-dimensional, hvor m
fælles faktorer styrer) og entydighed del (p
-dimensional, hvor fejl er, også kaldet unikke faktorer, gensidigt ukorreleret).
Så undskyld for ikke at vise den sande faktor for vores data på et scatterplot her. Det kunne visualiseres ganske passende via vektorer i ” emneområde ” som gjort her uden at vise datapunkter.
Ovenfor i sektionen ” Idéen om fælles FA (latent træk) ” Jeg viste faktor (akse F) som kil for at advare om, at ægte faktorakse ikke ligger på planet V1 V2. Det betyder, at – i modsætning til hovedkomponent P1 – faktor F som akse ikke er en rotation af akse V1 eller V2 i deres rum, og F som variabel er ikke en lineær kombination af variablerne V1 og V2.Derfor er F modelleret (ekstraheret fra variabler V1 v2) som om en ydre, uafhængig variabel, ikke en afledning af dem. Ligninger som Eq.1 hvorfra PCA begynder, er ikke anvendelige til at beregne true (optimal) faktor i faktoranalyse, hvorimod formelt isomorfe ligninger Eq.2 og Eq. 3 er gyldige til begge analyser. Det vil sige, i PCA-variabler genererer komponenter og komponenter forudsiger variabler tilbage; i FA faktor (er) genererer / forudsiger variabler og ikke tilbage – fælles faktormodel antager konceptuelt so , selvom der teknisk udvindes faktorer fra de observerede variabler.
Ikke kun sand faktor er ikke en funktion af manifestvariablerne, sand faktor “s værdier er ikke entydigt defineret . Med andre ord er de simpelthen ukendte. Alt skyldes, at vi” befinder dig i det overdrevne 5D-analytiske rum og ikke i vores hjemmets 2D-rum af dataene. Kun gode tilnærmelser (et antal metoder findes ) til ægte faktorværdier, kaldet faktor scores , er der for os. Faktorscores ligger i planet V1 V2, ligesom hovedkomponentscores er, de beregnes som de lineære funktioner for V1, V2, og det var de som jeg plottede i sektionen ” FA: omtrentlig løsning (faktor scores) “. Hovedkomponentscore er ægte komponentværdier; faktor score er kun rimelig tilnærmelse til de ubestemte sande faktorværdier.
FA: afrunding af proceduren
At samle i en lille blodprop, hvad de to foregående sektioner sagde, og tilføje endelige streger . Faktisk kan FA ( hvis du gør det rigtigt og se også dataantagelser ) finde den rigtige faktorløsning (ved ” sand ” Jeg mener her optimalt til dataprøven). Imidlertid findes forskellige ekstraktionsmetoder (de adskiller sig i nogle sekundære begrænsninger, de lægger). Den sande faktorløsning er kun op til belastninger $ a $ . Således er belastninger af optimale, sande faktorer. Faktorscores – hvis du har brug for dem – kan beregnes ud fra disse belastninger på forskellige måder og returnerer tilnærmelser til faktorværdier.
Således vises ” faktorløsning ” i sektion ” FA: omtrentlig løsning (faktor scores) ” var faktisk baseret på optimale belastninger, dvs. på sande faktorer. Men scoringerne var ikke optimale efter skæbne. Scorerne beregnes som en lineær funktion af de observerede variabler, ligesom komponentscorerne er, så de kunne begge sammenlignes på et scatterplot, og jeg gjorde det i didaktisk stræben for at vise som en gradvis overgang fra PCA-ideen til FA-idé. / p>
Man skal være forsigtig, når man plotter på den samme biplot faktorbelastning med faktor score i ” faktorernes rum “, vær opmærksom på, at belastninger vedrører sande faktorer, mens scoringer vedrører surrogatfaktorer (se mine kommentarer til dette svar i denne tråd).
Rotation af faktorer (belastninger) hjælper med at fortolke de latente funktioner. Rotation af belastninger kan udføres også i PCA , hvis du bruger PCA, som om faktoranalyse (dvs. se PCA som variabel forudsigelse). PCA har tendens til at konvergere i resultater med FA, når antallet af variabler vokser (se den ekstreme rige tråd om praktiske og konceptuelle ligheder og forskelle mellem de to metoder). Se min liste over forskelle mellem PCA og FA i slutningen af dette svar . Trin for trin-beregninger af PCA vs FA på iris datasæt findes her . Der er et betydeligt antal gode links til andre deltagers “svar om emnet uden for denne tråd. Jeg beklager, at jeg kun har brugt få af dem i det aktuelle svar.
Se også en punktliste over forskellene mellem PCA og FA her .
Kommentarer
- +1. Det ‘ er fantastisk, at du skrev det op, denne tråd manglede bestemt ikke et svar fra dig. Jeg stemte inden læsning (hvilket jeg sjældent gør) og nød bestemt efterfølgende læsning. Jeg kan kommentere mere senere, men en lille nitpick for nu: du skrev flere gange, at i FA skulle fejlskyen være ” rund ” .Men faktisk kan det godt være elliptisk (fordi unikke egenskaber for V1 og V2 kan have forskellige afvigelser), det skal bare have nul korrelationer. Jeg gætter på, at du ikke ville forveksle læsere med denne detalje.
- @amoeba Jeg har en naiv tvivl med hensyn til den matematiske umulighed til at præsentere den optimale F, E1, E2 i det rum (plan), der er defineret af V1, V2. Jeg kan tænke på et modeksempel til dette: Sig $ V_1 = a_ {1} F + E_1 $ og $ V_2 = a_ {2} F + E_2 $, hvor $ (E_1, E_2) = \ mathcal {N} (0 , \ Bbb {I}) $ – Brug nu disse forhold til at generere prøver af V1 og V2. Når først V1 og V2 er genereret, hvis vi skulle udføre den optimale FA, skulle vi få næsten nøjagtige estimater af (E1, E2), og det vil danne en elliptisk sky. Desuden kan nu F, E1, E2 være repræsenteret i samme plan som V1 og V2.
- @kasa, var din kommentar, der hyldede mit svar eller amøbe ‘ s kommentar? Hvis din kommentar er imod min hovedpåstand om, at de tre latente variabler i FA ikke ligger i det oprindelige rum, og du kan vise det, hvorfor ikke udstede et svar, der viser det? Men vær opmærksom på, at i optimal FA er fejlene nøjagtigt ukorrelerede, ikke at de kunne forestilles som kommer fra normal ukorreleret befolkning.
- @ttnphns : Undskyld forvirringen, jeg tvivlede på dit hovedkrav. Jeg vil prøve at vise det som et svar om et par dage. Tak!
Svar
Forskelle mellem faktoranalyse og hovedkomponentanalyse er:
• I faktoranalyse er der en struktureret model og nogle antagelser. I denne henseende er det en statistisk teknik, der ikke gælder for hovedkomponentanalyse, der er en rent matematisk transformation.
• Formålet med hovedkomponentanalyse er at forklare variansen, mens faktoranalyse forklarer kovariansen mellem variabler.
En af de største årsager til forvirringen mellem de to har at gøre med, at en af faktorekstraktionsmetoderne i faktoranalyse kaldes “metode til hovedkomponenter”. Det er dog en ting at bruge PCA og en anden ting at bruge metoden til hovedkomponenter i FA. Navnene kan være ens, men der er betydelige forskelle. Førstnævnte er en uafhængig analysemetode, mens sidstnævnte er blot et værktøj til faktorekstraktion.
Svar
For mig (og jeg håber det er nyttigt) er faktoranalyse meget mere nyttigt end PCA.
For nylig havde jeg fornøjelsen at analysere en skala ved hjælp af faktoranalyse. Denne skala (selvom den i vid udstrækning anvendes i industrien) blev udviklet ved hjælp af PCA, og efter min viden havde aldrig blevet faktoranalyseret.
Da jeg udførte faktoranalysen (hovedaksen), opdagede jeg, at fællesskaberne for tre af varerne var mindre end 30%, hvilket betyder, at over 70% af varernes varians ikke blev analyseret. PCA transformerer bare dataene til en ny kombination og er ligeglad med kommuner. Min konklusion var, at skalaen ikke var særlig god set fra et psykometrisk synspunkt, og jeg har bekræftet dette med en anden prøve.
I det væsentlige, hvis du vil forudsige at bruge faktorerne, skal du bruge PCA , mens hvis du vil forstå de latente faktorer, skal du bruge faktoranalyse.
Svar
Udvides med @StatisticsDocConsultings svar: forskellen i belastninger mellem EFA og PCA er ikke triviel med et lille antal variabler. Her “er en simuleringsfunktion for at demonstrere dette i R:
simtestit=function(Sample.Size=1000,n.Variables=3,n.Factors=1,Iterations=100) {require(psych);X=list();x=matrix(NA,nrow=Sample.Size,ncol=n.Variables) for(i in 1:Iterations){for(i in 1:n.Variables){x[,i]=rnorm(Sample.Size)} X$PCA=append(X$PCA,mean(abs(principal(x,n.Factors)$loadings[,1]))) X$EFA=append(X$EFA,mean(abs(factanal(x,n.Factors)$loadings[,1])))};X}
Som standard udfører denne funktion 100 Iterations
, i hver af dem producerer den tilfældige, normalt distribuerede prøver (Sample.Size
$ = 1000 $) på tre variabler og udtrækker en faktor ved hjælp af PCA og ML-EFA. Den udsender en liste med to Iterations
-lange vektorer sammensat af gennemsnitsstørrelser af de simulerede variabler “belastninger på den ikke-roterede første komponent fra henholdsvis PCA og generel faktor fra EFA. Det giver dig mulighed for at lege med stikprøvestørrelse og antal variabler og faktorer, der passer til din situation inden for rammerne af principal()
og factanal()
funktioner og din computer.
Ved hjælp af denne kode har jeg simuleret prøver på 3–100 variabler med 500 iterationer hver for at producere data:
Y=data.frame(n.Variables=3:100,Mean.PCA.Loading=rep(NA,98),Mean.EFA.Loading=rep(NA,98)) for(i in 3:100) {X=simtestit(n.Variables=i,Iterations=500);Y[i-2,2]=mean(X$PCA);Y[i-2,3]=mean(X$EFA)}
… for et plot af følsomheden af gennemsnitlige belastninger (på tværs af variabler og iterationer) over for antallet af variabler:
Dette viser, hvor forskelligt man skal fortolke styrken af belastninger i PCA vs. EFA. Begge afhænger noget af antallet af variabler, men belastningerne er forudindtaget meget stærkere i PCA. Forskellen mellem gennemsnitlige belastninger falder disse metoder, når antallet af variabler stiger, men selv med 100 variabler, PCA-belastninger er gennemsnitligt $ 0,067 $ højere end EFA-belastninger i tilfældige normale data.Bemærk dog, at gennemsnitlige belastninger normalt vil være højere i rigtige applikationer, fordi man generelt bruger disse metoder til mere korrelerede variabler. Jeg er ikke sikker på, hvordan dette kan påvirke forskellen mellem gennemsnitlige belastninger.
Svar
Et citat fra en rigtig flot lærebog ( Brown, 2006, s. 22, fremhævelse tilføjet).
PCA = hovedkomponentanalyse
EFA = sonderende faktoranalyse
CFA = bekræftende faktoranalyse
Selvom relateret til EFA, er hovedkomponentanalyse (PCA) ofte forkategoriseret som en estimeringsmetode for fælles faktoranalyse. I modsætning til estimatorerne, der er diskuteret i det foregående afsnit (ML, PF), er PCA afhængig af et andet sæt kvantitative metoder, der ikke er baseret på den fælles faktor model. PCA skelner ikke mellem fælles og unik varians. PCA sigter snarere på at tage højde for variansen i de observerede mål snarere end at forklare sammenhængen mellem dem. PCA bruges således mere hensigtsmæssigt som datareduktionsteknik for at reducere et større sæt målinger til et mindre, mere håndterbart antal sammensatte variabler, der skal bruges i efterfølgende analyser. Imidlertid har nogle metodologer hævdet, at PCA er et rimeligt eller måske overlegen alternativ til EFA, i betragtning af det faktum, at PCA har flere ønskelige statistiske egenskaber (f.eks. Beregningsmæssigt enklere, ikke modtagelig for ukorrekte løsninger, ofte producerer resultater svarende til dem af EFA , PCAs evne til at beregne en deltagers score på en hovedkomponent, mens EFAs ubestemte karakter komplicerer sådanne beregninger). Selvom debatten om dette spørgsmål fortsætter, siger Fabrigar et al. (1999) giver flere grunde i modsætning til argumentet for placeringen af PCA i faktoranalyse. Disse forfattere understreger situationerne, hvor EFA og PCA giver forskellige resultater; for eksempel når kommunaliteter er lave, eller når der kun er få indikatorer for en given faktor (jf. Widaman, 1993). Uanset om den overordnede begrundelse og empiriske mål for en analyse er i overensstemmelse med den fælles faktormodel, så er det begrebsmæssigt og matematisk inkonsekvent at gennemføre PCA; EFA er mere hensigtsmæssigt, hvis det angivne mål er at reproducere sammenhængen mellem et sæt indikatorer med et mindre antal latente dimensioner og genkende eksistensen af målefejl i de observerede mål. Floyd og Widaman (1995) anfører det relaterede punkt, at estimater baseret på EFA er mere tilbøjelige til at generalisere til CFA, end de er opnået fra PCA, idet EFA og CFA i modsætning til PCA er baseret på den fælles faktormodel. Dette er en bemærkelsesværdig overvejelse i lyset af det faktum, at EFA ofte bruges som en forløber for CFA i skalaudvikling og validering af konstruktioner. En detaljeret demonstration af beregningsforskellene mellem PCA og EFA kan findes i multivariate og faktoranalytiske lærebøger (f.eks. Tabachnick & Fidell, 2001).
Brown, TA (2006). Bekræftende faktoranalyse for anvendt forskning. New York: Guilford Press.
Svar
Man kan tænke af en PCA som en FA, hvor kommuner antages at være lig 1 for alle variabler. I praksis betyder dette, at genstande, der ville have relativt lave faktorbelastninger i FA på grund af lav fællesskab, vil have højere belastninger i PCA. Dette er ikke et ønskeligt træk, hvis det primære formål med analysen er at skære varelængden og rense et batteri af genstande fra dem med lave eller tvetydige belastninger eller at identificere begreber, der ikke er godt repræsenteret i varepuljen.
Svar
I et papir fra Tipping og Bischop diskuteres det tætte forhold mellem probabalistisk PCA (PPCA) og faktoranalyse. PPCA er tættere på FA end den klassiske PCA er. Den almindelige model er
$$ \ mathbf {y} = \ mu + \ mathbf {Wx} + \ epsilon $$
hvor $ \ mathbf {W} \ i \ mathbb {R} ^ {p, d} $, $ \ mathbf {x} \ sim \ mathcal {N} (\ mathbf {0}, \ mathbf {I}) $ og $ \ epsilon \ sim \ mathcal {N} ( \ mathbf {0}, \ mathbf {\ Psi}) $.
- Faktoranalyse antager, at $ \ mathbf {\ Psi} $ er diagonal.
- PPCA antager $ \ mathbf {\ Psi} = \ sigma ^ 2 \ mathbf {I} $
Michael E. Tipping, Christopher M. Bishop (1999). Probabilistic Principal Component Analysis , Journal of the Royal Statistical Society, bind 61, udgave 3, sider 611–622
Kommentarer
- + 1. Ja. Jeg mener, at forståelse af PPCA er nødvendig for at forstå forholdet mellem PCA og FA. Men du kan forbedre dit svar ved at diskutere PCA / PPCA-forholdet.
Svar
Ingen af disse svar er Perfekt. Enten FA eller PCA har nogle varianter. Vi skal tydeligt påpege, hvilke varianter der sammenlignes. Jeg vil sammenligne den maksimale sandsynlighedsfaktoranalyse og Hotellings PCA.Førstnævnte antager, at den latente variabel følger en normalfordeling, men PCA har ikke en sådan antagelse. Dette har ført til forskelle, såsom løsningen, indlejring af komponenterne, det unikke ved løsningen, optimeringsalgoritmerne.
Kommentarer
- Jeg spekulerer på, om du kunne udvide lidt om dette – du har sagt, at der er forskelle i sidste sætning, men ikke givet meget information om hvad disse forskelle kan være, eller på hvilken måde disse forskelle kan være vigtige?
- At vælge to fjerneste metoder og hævde, at de virkelig er forskellige – som du gør – er heller ikke en perfekt logik . Man skulle sandsynligvis finde og rapportere, hvordan disse to ligner hinanden. Alternativt kan man vælge de fleste lignende metoder (såsom almindelig PCA vs PAF ) og rapportere på hvilken måde de er forskellige.
- Hotelling ‘ s PCA antager ikke latente gaussere.
Svar
Der er mange gode svar til dette indlæg, men for nylig stødte jeg på en anden forskel.
Clustering er et program, hvor PCA og FA giver forskellige resultater. Når der er mange funktioner i dataene, kan man forsøge at finde de øverste pc-retninger og projicere dataene på disse pcer, og fortsæt derefter med klyngedannelse. Ofte forstyrrer dette de iboende klynger i dataene – Dette er et gennemprøvet resultat. Forskere foreslår at gå videre med klyngemetoder i underrum, som ser efter lavdimensionale latente faktorer i modellen.
Bare for at illustrere denne forskel skal du overveje Crabs
datasættet i R. Crabs dataset har 200 rækker og 8 kolonner, der beskriver 5 morfologiske målinger på 50 krabber hver af to farver former og begge køn, af arten – I det væsentlige er der 4 (2×2) forskellige klasser af krabber.
library(MASS) data(crabs) lbl <- rep(1:4,each=50) pc <- princomp(crabs[,4:8]) plot(pc) # produce the scree plot X <- as.matrix(crabs[,4:8]) %*% pc$loadings library(mclust) res_12 <- Mclust(X[,1:2],G=4) plot(res_12) res_23 <- Mclust(X[,2:3],G=4) plot(res_23)
Clustering ved hjælp af PC1 og PC2:
Clustering ved hjælp af PC2 og PC3:
#using PC1 and PC2: 1 2 3 4 1 12 46 24 5 2 36 0 2 0 3 2 1 24 0 4 0 3 0 45 #using PC2 and PC3: 1 2 3 4 1 36 0 0 0 2 13 48 0 0 3 0 1 0 48 4 1 1 50 2
Som vi kan se fra ovenstående plot, bærer PC2 og PC3 mere kræsne oplysninger end PC1.
Hvis man forsøger at klynge ved hjælp af de latente faktorer ved hjælp af en blanding af faktoranalysatorer, ser vi meget bedre resultat sammenlignet med brug af de to første pcer.
mfa_model <- mfa(y, g = 4, q = 2) |............................................................| 100% table(mfa_model$clust,c(rep(1,50),rep(2,50),rep(3,50),rep(4,50))) 1 2 3 4 1 0 0 0 45 2 16 50 0 0 3 34 0 0 0 4 0 0 50 5
Kommentarer
- Jeg må sige, at jeg tvivler på, at dette svar virkelig besvarer spørgsmålet. Svaret handler om klyngeanalyse efter PCA eller FA, ikke om PCA og FA selv. Men selv i den henseende er svaret svagt eller ufærdigt. Hvordan den forskel, du viser, skal forklares?
- @ttnphns Jeg er enig i, at svaret handler om klyngeanalyse. OP havde imidlertid også bedt om et virkeligt scenarie med PCA / FA, hvor den ene skal bruges over den anden. Typisk er PCA eller FA aldrig det endelige mål – For f.eks. I samfundsvidenskab ville det endelige mål være at segmentere emnerne i forskellige klynger / grupper. Mit svar adresserer sådanne scenarier. Hvis du tror, at mit svar kan forbedres, er du velkommen til at påpege.
- Jeg tror, at dit svar kan blive virkelig relevant, hvis du forklarer dit fund. Du hævder, at forskellene mellem PCA og FA er iboende forskelle for de to metoder (kun de bliver tydelige under klyngedannelse). Jeg synes, du burde vise eller i det mindste spekulere i, hvordan eller hvorfor forskellene opstår teoretisk fra forskellene i metoderne ‘ modeller.