Vertailin ? prcomp
ja ? princomp
ja löysin jotain Q-mode- ja R-mode-pääkomponenttianalyyseista (PCA). Mutta rehellisesti - en ymmärrä sitä. Voiko kukaan selittää eron ja ehkä jopa selittää, milloin soveltaa mitä?
Vertailin ? prcomp
ja ? princomp
ja löysin jotain Q-mode- ja R-mode-pääkomponenttianalyyseista (PCA). Mutta rehellisesti - en ymmärrä sitä. Voiko kukaan selittää eron ja ehkä jopa selittää, milloin soveltaa mitä?
Ero niiden välillä ei ole mitään tekemistä sen kanssa, minkä tyyppistä PCA: ta he suorittavat, vain menetelmää, jota he käyttävät. Kuten prcomp
-palvelun ohjesivu sanoo:
Laskenta tapahtuu (keskitetyn ja mahdollisesti skaalatun) datan yksittäisen arvon hajotuksella matriisia, ei käyttämällä kovakoviarvomatriisissa
eigen
. Tämä on yleensä ensisijainen menetelmä numeerisen tarkkuuden saamiseksi.
Toisaalta princomp
-ohjesivulla sanotaan:
Laskenta suoritetaan käyttämällä
eigen
-korrelaatio- tai kovarianssimatriisiacor
-määrityksen avulla. Tämä tehdään yhteensopivuuden S-PLUS-tuloksen kanssa. Ensisijainen laskentamenetelmä on käyttääsvd
-toimintoax
-kohdassa, kuten tehdään kohdassaprcomp
."
Joten prcomp
on suositeltava , vaikka käytännössä et todennäköisesti näe paljon eroja (esimerkiksi jos suoritat esimerkkejä ohjesivuilla, sinun pitäisi saada samanlaisia tuloksia) .
Yleensä monivaihteluanalyysi (korrelaatioiden laskeminen, latenssien poimiminen jne.) tehdään tietosarakkeista, jotka ovat ominaisuuksia tai kysymyksiä, - kun taas näyteyksiköt, rivit, ovat r esittäjiä. Siksi tätä tapaa kutsutaan R -analyysiksi. Joskus saatat kuitenkin haluta tehdä monivaiheisen analyysin vastaajista, kun taas q -tehtäviä käsitellään otosyksiköinä. Se olisi Q -analyysi.
Näiden kahden välillä ei ole muodollista eroa, joten voit hallita molempia samalla toiminnolla, vain siirtää tietojasi. Standardoinnissa ja tulosten tulkinnassa on kuitenkin eroja.
Tämä on yleinen vastaus: En koske erityisesti R-funktioita prcomp
ja princomp
, koska en ole R-käyttäjä, enkä ole tietoinen heidän mahdollisista eroista.
Hyödyllinen ja erityinen Gregory B.Andersonin julkaisu, jonka otsikko on PERUSKOMPONENTTIANALYYSI ERITTÄIN PCA: N TOIMINTOJEN JA MENETELMIEN TUTKIMISESSA
on antanut lisätietoja tästä aiheesta.
Seuraavat kaksi kappaletta otettiin johdannosta:
R: ssä on kaksi yleistä tapaa suorittaa PCA ilman puuttuvia arvot: (1) spektrihajoaminen (R-tila [tunnetaan myös nimellä eigendecomposition]) ja (2) yksittäisen arvon hajoaminen (Q-tila; R Development Core Team 2011). Molemmat näistä menetelmistä voidaan suorittaa pitkällä kädellä käyttämällä funktioita eigen (R-tila) ja svd (Q-tila), tai vastaavasti, tai ne voidaan suorittaa käyttämällä monia PCA-toimintoja, jotka löytyvät stats-paketista ja muista käytettävissä olevista lisäpaketeista. Spektraalisen hajoamisen analyysimenetelmä tutkii kovariansseja ja muuttujien välisiä korrelaatioita, kun taas yksikön arvon hajoamismenetelmä tarkastelee kovariansseja ja korrelaatioita näytteiden välillä. Vaikka molemmat menetelmät voidaan helposti suorittaa R: n sisällä, yksikköarvon hajoamismenetelmä (ts. Q-tila) on ensisijainen analyysi numeerisen tarkkuuden kannalta (R Development Core Team 2011).
Tässä asiakirjassa keskitytään vertailemaan erilaisia menetelmiä PCA: n suorittamiseksi R: ssä ja tarjoaa asianmukaiset visualisointitekniikat normaalisuuden tutkimiseksi tilastopaketissa. Tarkemmin sanottuna tässä asiakirjassa verrataan kuutta erilaista toimintoa, jotka on joko luotu PCA: lle tai joita voidaan käyttää PCA: lle: eigen, princomp, svd, prcomp, PCA ja pca. Näiden toimintojen suorittamiseksi välttämätön R-koodi on koko asiakirjassa upotettu tekstiin kirjasimella Courier New, ja se on värikoodattu käyttämällä Tinn-R: n tekniikkaa ( https://sourceforge.net/projects/tinn-r). Lisäksi funktioiden tuloksia verrataan simulointimenettelyllä sen selvittämiseksi, eroavatko eri menetelmät tuotoksesta saatavissa ominaisarvoissa, ominaisvektoreissa ja pisteissä.
Ne ovat erilaisia, kun molemmat käyttävät kovarianssimatriisia. Kun skaalataan (normalisoidaan) harjoitustietoja, prcomp
käyttää nimittäjänä $ n-1 $, mutta princomp
käyttää nimittäjänä $ n $. Näiden kahden nimittäjän ero selitetään tässä pääkomponenttianalyysin opetusohjelmassa.
Alla ovat testitulokseni:
> job<-read. taulukko ("./ job_perf.txt", header = TOSI, sep = "") > pc.cr<-prcomp (työ, asteikko = TOSI, cor = TOSI, pisteet = TOSI) > pc.cr1<-princomp (työ, asteikko = TOSI, kor = TOSI, tulokset = TOSI) > pc.cr $ asteikko kommun_nimi_solv looginen oppia fyysinen ulkonäkö 5.039841 1.689540 2.000000 4.655398 3.770700 4.526689> pc.cr1 $ aste kommun. >
Testitiedot:
commun probl_solv looginen oppia fyysinen ulkonäkö 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