Oferty statystyczne Tutoriale Opinie Kontakt

Analiza głównych składowych (PCA) – przykład i interpretacja

Analiza głównych składowych (ang. principal component analysis, PCA) zastępuje kilka skorelowanych zmiennych jedną lub kilkoma nowymi zmiennymi – składowymi – tracąc jak najmniej informacji. Typowe pytanie z pracy dyplomowej: czy godziny nauki, obecności, punkty i czas w telefonie mogę zamienić na jeden wskaźnik zaangażowania?

W skróciePCA służy do redukcji wymiaru, a nie do odkrywania ukrytych cech. Kroki: standaryzacja → wartości własne i procent wariancji → liczba składowych → ładunki → wynik składowej dla każdej osoby. Jeśli chcesz sprawdzić, jakie cechy mierzy kwestionariusz, potrzebujesz analizy czynnikowej (EFA).

Krok 1. Cel i dane

Dziesięcioro studentów podało cztery informacje. Chcesz użyć ich jako jednego predyktora w regresji, np. wyniku egzaminu końcowego (nie kolokwium, które jest już w indeksie), bo cztery silnie skorelowane zmienne grożą współliniowością (tu VIF sięga 3,08). PCA nie testuje hipotezy – to metoda opisowa, która przekształca dane.

Tabela 1. Dane i wynik pierwszej składowej (PC1)
OsobaNauka (godz./tydz.)Obecności (na 10)Kolokwium (0–20)Telefon (min/dzień)Wynik PC1
1343240−3,30
2910181302,35
34910230−0,79
4119131801,43
5579250−1,42
687141600,58
76612160−0,34
87815801,47
94614230−1,10
1088161601,10
M (SD)6,50 (2,55)7,40 (1,78)12,40 (4,25)182,00 (54,93)0,00 (1,70)

Krok 2. Standaryzacja

PCA szuka kierunku, w którym dane najbardziej się rozrzucają. Telefon mierzony w minutach ma odchylenie standardowe około 55, a pozostałe zmienne – od 2 do 4. Bez standaryzacji pierwsza składowa wyjaśnia 99,5% wariancji, ale to po prostu „telefon”. Dlatego zmienne w różnych jednostkach zamieniamy na wyniki z (średnia 0, SD 1). To samo daje PCA liczona na macierzy korelacji.

Wagi zmiennych w pierwszej składowej: bez standaryzacji 0,03, 0,01, 0,05 i 1,00 dla minut w mediach przy 99,5% wariancji; po standaryzacji 0,51, 0,48, 0,53 i 0,48 przy 72,6% wariancji
Rys. 1. Wagi zmiennych w pierwszej składowej. Po lewej, bez standaryzacji, składowa to prawie wyłącznie minuty w mediach. Po prawej każda zmienna ma podobny udział.

Krok 3. Wartości własne i liczba składowych

Wartość własna to wariancja składowej. Przy czterech standaryzowanych zmiennych suma wariancji wynosi 4, więc procent to wartość własna podzielona przez 4.

  1. Wartości własne: 2,90; 0,56; 0,33; 0,21, czyli 72,6%, 14,0%, 8,2% i 5,1% wariancji.
  2. Kryterium Kaisera (wartość własna > 1): jedna składowa. Ta reguła bywa zawodna, więc sprawdź też inne kryteria.
  3. Wykres osypiska: po PC1 linia się wypłaszcza.
  4. Analiza równoległa (Horn, 1965): tylko PC1 przewyższa 95. centyl wartości z danych losowych (2,90 wobec 2,25).

Wiele programów, także SZTOS, podaje przy PCA miarę KMO i test Bartletta. Tu KMO = 0,75, a test Bartletta jest istotny, χ²(6) = 15,06; p = 0,020 – zmienne są skorelowane, więc jest co streszczać.

Wykres osypiska: wartości własne 2,90, 0,56, 0,33 i 0,21 na tle 95. centyla z danych losowych 2,25, 1,43, 0,97 i 0,59 oraz progu 1
Rys. 2. Wykres osypiska z analizą równoległą. Czerwona linia to nasze wartości własne, szara – wartości, jakie przy 10 osobach i 4 zmiennych dają dane czysto losowe. Tylko pierwsza składowa jest „ponad szumem”.

Krok 4. Ładunki i nazwa składowej

Ładunek to korelacja zmiennej ze składową: nauka 0,87, obecności 0,82, kolokwium 0,90, telefon −0,81. Wysokie wyniki PC1 mają osoby, które dużo się uczą, chodzą na zajęcia i dobrze piszą kolokwium, a mało czasu spędzają w mediach. Składową nazywamy więc „zaangażowanie w naukę”. Znak składowej jest umowny: inny program może odwrócić wszystkie znaki naraz i nie jest to błąd.

Wykres ładunków z aplikacji SZTOS dla składowej Zaangażowanie: kolokwium 0,90, nauka 0,87, obecności 0,82 i telefon −0,81 (czerwony słupek)
Rys. 3. Ładunki z raportu SZTOS (moduł analizy czynnikowej w trybie głównych składowych, bez rotacji). Długość słupka to siła związku, kolor czerwony – ujemny znak. Kropki dziesiętne to zapis programu.

Krok 5. Wynik składowej i opis w pracy

Wynik PC1 (ostatnia kolumna tabeli 1) to ważona suma wyników z. Najniższy ma osoba 1 (−3,30), najwyższy – osoba 2 (2,35). Ten wskaźnik możesz wstawić do regresji zamiast czterech zmiennych – zobacz regresja liniowa – przykład.

Zapis w stylu APA: Cztery wskaźniki zaangażowania w naukę (N = 10) poddano analizie głównych składowych na zmiennych standaryzowanych. Pierwsza składowa miała wartość własną 2,90 i wyjaśniała 72,6% wariancji. Kolejne wartości własne były mniejsze od 1 (0,56; 0,33; 0,21), a analiza równoległa również wskazała jedną składową. Ładunki wynosiły: godziny nauki 0,87, obecności 0,82, punkty z kolokwium 0,90, czas w mediach społecznościowych −0,81.

PCA czy analiza czynnikowa?

PCA wybierz, gdy chcesz streścić dane: zbudować indeks, ograniczyć liczbę predyktorów albo narysować dane w dwóch wymiarach. Składowa to tylko ważona suma zmiennych i zawiera także ich błąd pomiaru. Gdy pytasz, jakie ukryte cechy mierzy kwestionariusz, użyj eksploracyjnej analizy czynnikowej. Analizuje ona tylko wariancję wspólną pytań (Fabrigar i in., 1999). Policzone na jednym zbiorze, PCA daje wyższe ładunki niż EFA – porównanie na innych danych (sześć pytań ankiety) znajdziesz we wpisie analiza czynnikowa – przykład.

Jak zrobić PCA w R?

# 10 studentów, 4 zmienne w różnych jednostkach
dane <- data.frame(nauka     = c(3, 9, 4, 11, 5, 8, 6, 7, 4, 8),              # godziny nauki w tygodniu
                   obecnosci = c(4, 10, 9, 9, 7, 7, 6, 8, 6, 8),              # obecności na 10 zajęciach
                   kolokwium = c(3, 18, 10, 13, 9, 14, 12, 15, 14, 16),       # punkty (0–20)
                   telefon   = c(240, 130, 230, 180, 250, 160, 160, 80, 230, 160))  # minuty dziennie w mediach

# 1) bez standaryzacji składowa 1 to prawie sam „telefon” (największa wariancja)
round(prcomp(dane)$rotation[, 1], 3)

# 2) PCA na danych standaryzowanych (= na macierzy korelacji)
pca <- prcomp(dane, scale. = TRUE)
round(pca$sdev^2, 2)                                   # wartości własne
round(100 * pca$sdev^2 / sum(pca$sdev^2), 1)           # % wyjaśnionej wariancji

# 3) ładunki = korelacje zmiennych ze składową 1
round(pca$rotation[, 1] * pca$sdev[1], 2)

# 4) wynik składowej dla każdej osoby (indeks „zaangażowania”)
round(pca$x[, 1], 2)

# 5) to samo w pakiecie psych (ładunki identyczne, wyniki w skali z)
psych::principal(dane, nfactors = 1, rotate = "none")$loadings

Wynik w konsoli R:

    nauka obecnosci kolokwium   telefon 
    0.029     0.014     0.055    -0.998 
[1] 2.90 0.56 0.33 0.21
[1] 72.6 14.0  8.2  5.1
    nauka obecnosci kolokwium   telefon 
     0.87      0.82      0.90     -0.81 
 [1] -3.30  2.35 -0.79  1.43 -1.42  0.58 -0.34  1.47 -1.10  1.10

Loadings:
          PC1   
nauka      0.873
obecnosci  0.817
kolokwium  0.904
telefon   -0.811

                 PC1
SS loadings    2.903
Proportion Var 0.726

Pytania promotora i recenzenta

Czy 10 osób wystarczy?

Do ilustracji tak, do badania nie. Przy małej próbie wartości własne z danych losowych są wysokie (tu 2,25), a wynik bywa niestabilny. W pracy podaj liczebność i wynik analizy równoległej.

Czy po PCA robi się rotację?

Przy jednej składowej nie ma czego obracać. Przy kilku rotacja ułatwia opis, ale składowe po rotacji nie wyjaśniają już kolejno największej części wariancji (Jolliffe i Cadima, 2016).

Najczęstsze błędy

  • PCA na surowych danych w różnych jednostkach.
  • Nazywanie składowych „czynnikami” i interpretowanie ich jak ukrytych cech.
  • Wybór liczby składowych tylko według kryterium Kaisera.
  • Interpretowanie znaku składowej bez spojrzenia na ładunki.
  • Brak informacji, ile procent wariancji wyjaśniają zachowane składowe.

Bibliografia

  1. Pearson, K. (1901). On lines and planes of closest fit to systems of points in space. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science, 2(11), 559–572. https://doi.org/10.1080/14786440109462720
  2. Hotelling, H. (1933). Analysis of a complex of statistical variables into principal components. Journal of Educational Psychology, 24(6), 417–441. https://doi.org/10.1037/h0071325
  3. Jolliffe, I. T., & Cadima, J. (2016). Principal component analysis: A review and recent developments. Philosophical Transactions of the Royal Society A, 374(2065), Article 20150202. https://doi.org/10.1098/rsta.2015.0202
  4. Horn, J. L. (1965). A rationale and test for the number of factors in factor analysis. Psychometrika, 30(2), 179–185. https://doi.org/10.1007/BF02289447
  5. Fabrigar, L. R., Wegener, D. T., MacCallum, R. C., & Strahan, E. J. (1999). Evaluating the use of exploratory factor analysis in psychological research. Psychological Methods, 4(3), 272–299. https://doi.org/10.1037/1082-989X.4.3.272
  6. Hryniewicz, K., & Milewska, A. (2023). SZTOS: System Zautomatyzowanego Tworzenia Opisu Statystycznego [Oprogramowanie]. SZTOS IT. https://sztos-it.com/

Zobacz też

Przygotowujesz artykuł, doktorat lub grant?

Zaplanujemy i wykonamy analizy, przygotujemy raport z tabelami, wykresami i kodem R oraz pomożemy odpowiedzieć na uwagi recenzentów dotyczące statystyki.

Na skróty