Programowanie w R - analiza składowych głównych

Mathematica, Matlab, Statistica, LaTeX i wszelkiego rodzaju oprogramowanie przydatne matematykowi w pracy. Miejsca w sieci poświęcone zagadnieniu.
wczymrzecz
Użytkownik
Użytkownik
Posty: 36
Rejestracja: 19 lis 2017, o 22:10
Płeć: Kobieta
Lokalizacja: xxxx
Podziękował: 10 razy

Programowanie w R - analiza składowych głównych

Post autor: wczymrzecz »

Cześć,
prosiłabym o pomoc w wytłumaczeniu poniższych wniosków jakie mi wyszły.
Chciałam przeprowadzić analizę składowych głównych w programie R , po wpisaniu komendy:

Kod: Zaznacz cały

 princomp(data, cor=T)

wyskakują mi wyniki:

Kod: Zaznacz cały

Standard deviations:
 (Comp.1,      1.5871532,   Comp.2 , 0.9657289       
  Comp.3 0.8406119 , Comp.4   0.7086540, Comp.5 0.5826607 

 5  variables and  50 observations
Co one oznaczają?
Ostatnio zmieniony 17 lip 2018, o 23:03 przez Jan Kraszewski, łącznie zmieniany 2 razy.
Powód: Poprawa wiadomości.
HelperNES
Użytkownik
Użytkownik
Posty: 70
Rejestracja: 2 lut 2017, o 10:12
Płeć: Mężczyzna
Lokalizacja: Stęszew
Podziękował: 5 razy
Pomógł: 14 razy

Re: Programowanie w R - analiza składowych głównych

Post autor: HelperNES »

To co wykonałaś to analiza składowych głównych względem macierzy korelacji.

To co wypluwa Ci R to odchylenia standardowe dla konkretnych składowych. Dalej mówi Ci ile jest zmiennych i ile jest obserwacji.

To tyle jak na tą komendę

Jeżeli chciałabyś wiedzieć coś konkretnego to napisz tutaj, a postaram się na to odpowiedzieć
wczymrzecz
Użytkownik
Użytkownik
Posty: 36
Rejestracja: 19 lis 2017, o 22:10
Płeć: Kobieta
Lokalizacja: xxxx
Podziękował: 10 razy

Re: Programowanie w R - analiza składowych głównych

Post autor: wczymrzecz »

Jeżeli wezmę z Excella i policzę odchylenie standardowe dla poszczególnych składowych to wyniki mi się nie zgadzają z tymi z R. Mam pięć składowych: Szybkość, Obsługa, Cena, Jakość, Popularność.
Wyniki mam w skali od 1 do 5 (1 zdecydowanie się nie zgadzam - 5 zdecydowanie się zgadzam)
Jak zliczę wyniki np dla kolumny Szybkość to odchylenie standardowe wychodzi mi 0,8 a nie 1,58.
Nie rozumiem
Kolejno po wpisaniu komendy:

Kod: Zaznacz cały

 summary(pca, loadings=T) 

wyskakuje mi:

Kod: Zaznacz cały

 Importance of components:
                         Comp.1    Comp.2    Comp.3    Comp.4     Comp.5
Standard deviation     1.587153 0.9657289 0.8406119 0.7086540 0.58266074
Proportion of Variance 0.503811 0.1865265 0.1413257 0.1004381 0.06789871
Cumulative Proportion  0.503811 0.6903375 0.8316632 0.9321013 1.00000000 
oraz

Kod: Zaznacz cały

 

Loadings:
            Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
Szybkość    -0.473  0.455  0.367        -0.655
Obsługa     -0.497  0.229 -0.241 -0.653  0.464
Cena        -0.371 -0.558  0.693         0.266
Jakość      -0.392 -0.610 -0.533        -0.435
Popularność -0.488  0.240 -0.208  0.752  0.310
> pca
Call:
princomp(x = data, cor = T) 
Proszę o pomoc w interpatacji wyników;)
HelperNES
Użytkownik
Użytkownik
Posty: 70
Rejestracja: 2 lut 2017, o 10:12
Płeć: Mężczyzna
Lokalizacja: Stęszew
Podziękował: 5 razy
Pomógł: 14 razy

Re: Programowanie w R - analiza składowych głównych

Post autor: HelperNES »

Mylisz pojęcia składowa, a zmienna.

Składową nazywamy kombinację liniową zmiennych. Odchylenie składowej w takim razie to zwykłe odchylenie standardowe po przekształceniu danych daną kombinacją liniową.

Co do współczynników tych kombinacji liniowych masz je podane w tabeli ładunków (Loadings)

Ładunek nazywamy oczywiście dodatnim jak ma dodatni znak i ujemnym jak znak jest ujemny.

Jednym z najbardziej potrzebnych jednak rzeczy jest skumulowany procent objaśnianej wariancji (Cummulative proportion of Variance). Mówi on nam jak dużo/dobrze jest objaśniana zmienna zależnie od wyboru ilości składowych.

Inaczej mówiąc: Sama 1 składowa wyjaśnia około \(\displaystyle{ 50,4\%}\), Dwie pierwsze wyjaśniają około \(\displaystyle{ 69\%}\), itd.

Najczęściej wybieramy tyle składowych, aby wyjaśniały sławne około \(\displaystyle{ 95\%}\), więc twoim wyborem są 4 składowe. Jest to mały spadek wymiaru jednakże..

Nie rozumiem tylko dlaczego w kodzie dla składowych głównych masz argument cor=T
ODPOWIEDZ