(Kierując się sugestiami z maili, trudniejsze techniczne wpisy oznaczać będę gwiazdkami w tytule)
GPS w domowych zastosowaniach pozwala kierowcom ominąć korki, ale w bardziej przemysłowych zastosowaniach pozwala na zarządzanie flotą pojazdów lub sterowanie bojowym dronem. Podobnie jest i z wizualizacją. Słupki i kropki można wykorzystać by pokazać kilka średnich ale istnieją też dla nich bardziej zaawansowane zastosowania, takie jak np. prezentacja różnic w strukturach kowariancji. I dziś będzie o takich wizualizacjach, ale po kolei.
Problem z którym ostatnio miałem do czynienia jest następujący (dziedzina: antropologia). Mamy czaszki z różnych lokalizacji i od osobników obu płci. Każda czaszka jest opisana zbiorem pięciu liczb opisujących odległości pomiędzy określonymi punktami na czaszce. Co chcemy sprawdzić? Czy i jak parametry czaszek różnią się pomiędzy płciami i lokalizacjami.
Gdybyśmy parametry czaszek opisywali jedną liczbą zamiast pięcioma na tak postawiony problem można by podejść stosując klasyczną dwukierunkową analizę wariancji.
Mając pięć parametrów opisujących czaszki, gdybyśmy każdy z nich traktowali niezależnie moglibyśmy tak postawiony problem rozwiązać pięcioma niezależnymi analizami wariancji.
Ale parametry są zależne i w tym przypadku lepszym podejściem jest zastosowanie modeli umożliwiających jednoczesne modelowanie wielowymiarowych zmiennych.
Problem jednoczesnego modelowania wielowymiarowych cech pojawia się dosyć często, szczególnie gdy zmienne, które opisujemy są zależne. Przykładowo w łącznym modelowaniu ilości mleka, białka i tłuszczu w udoju lub w analizie czynników wpływających na poziom umiejętności (opisany przez zestaw zmiennych).
Gdzie w tym zagadnieniu są ciekawe wykresy? Zobaczmy. Zaczniemy od przypomnienia jak sprawa wygląda problem testowania dla jednowymiarowych zmiennych.
Model liniowy zazwyczaj przedstawia się w postaci
Hipoteza zerowa w ogólnej postaci może być zapisana następująco (L to macierz kontrastów)
Dla takiej hipotezy, test oparty jest o iloraz dwóch ocen, jeden to ocena wielkości zakłócenia losowego
drugi to ocena wielkości efektu
Taki iloraz po przeskalowaniu ma rozkład F. Jeżeli efekt jest znacznie większy niż zakłócenie to uznajemy że efekt jest istotnie duży. Kropka.
A jak sprawa wygląda dla wielowymiarowych modeli?
Po pierwsze efekt Y jest wielowymiarowy, przez co efekty opisane są przez macierz współczynników a wektor zakłócenia też są wielowymiarowe.
Hipotezę stawiamy w podobny sposób, tyle że to zero po prawej stronie to macierz
I dochodzimy do testowania. Sprawa jest analogiczna do tej z jednowymiarowego przypadku, liczymy wielkość efektu (czasem nazywany efektem Hipotezy, stąd H od hypothesis) i wielkość zakłóceń (E od error), tyle że tym razem te wielkości to symetryczne macierze
Mając taką parę macierzy stoimy przed pytaniem: kiedy macierz dla efektu jest znacznie większa od macierzy dla zakłócenia losowego?
Jest kilka podejść, ale najczęściej sprowadzają się do analizy na ile taka macierz jest odległa od macierzy jednostkowej (dla prawdziwej hipotezy zerowej nie powinna być odległa).
Można to robić przez wartości własne itp.
Ale można też te dwie macierze porównać optycznie, np. na wykresie!
I temu właśnie służą wykresy HE.
W programie R narzędzia do tworzenia wykresów HE znajdują się w pakiecie heplots. Zobaczmy jak z niego korzystać na przykładzie.
Dane o czaszkach nie są publicznie dostępne, więc na potrzeby przykładu wybierzmy z badania PISA informacje o poziomach umiejętności uczniów w trzech obszarach, matematyka, nauki przyrodnicze i czytanie. Zobaczymy jak na ten trójwymiarowy wektor umiejętności wpływają dwa czynniki, płeć i liczba książek w domu.
Ładujemy pakiet, pozostawiamy tylko dane o Polsce, budujemy wielowymiarowy model liniowy i rysujemy dla niego macierz HE.
Co ciekawe, gdy patrzymy na ten wykres, natychmiast rzucają się w oczy przynajmniej trzy informacje:
(i) wyniki z matematyki i czytania są skorelowane w resztach,
(ii) efekt książek jest silny i skorelowany tak z wynikami z matematyki jak i czytania,
(iii) efekt płci też jest silny ale ma inną charakterystykę, kobiety średnio mają znacznie lepsze wyniki z czytania i trochę gorsze z matematyki.
Wszystkie zależności na jednym wykresie.
To wykres z macierzami H i E dla pary zmiennych. Funkcją pairs() możemy przedstawić wszystkie pary.
Ale co gdy zmiennych jest wiele? I zamiast generować dziesiątki wykresów chcielibyśmy najważniejsze informacje przedstawić na jednym podsumowującym wszystkie zmienne? Do tego przydać się może canonical discriminant analyses, o której napiszemy za tydzień.
Więcej o wykresach HE można przeczytać:
Visual Hypothesis Tests in Multivariate Linear Models: The heplots Package for R
John Fox Michael Friendly Georges Monette
HE Plots for Multivariate Linear Models
Michael Friendly
HE Plots for Repeated Measures Designs
Michael Friendly
Wpisy z kategorii Duże i złożone powstają przy współpracy z firmą CodiLime.
Bardzo interesujący wpis! Czy funkcja zwraca również oszacowanie wielkości efektu? W kodzie brakuje linijki z instalacją i ładowaniem pakietu heplots. Warto informacje o pakiecie heplots w treści wpisu.
Dzięki, dodałem library(heplots).
Funkcja heplot() jako wynik zwraca obwiednie elips w slotach E i H
Ale funkcja lm() w wyniku ma sloty effects i residuals i z nich można wyznaczyć macierze SSH i SSE.
Świetny wpis. Bardzo pouczający. Czekam na przyszły tydzien na CDA :)!
Co do wykresu powstałego przy użyciu funkcji pairs(): jako argument wystarczy podac model lm czy wykres heplot?
To jest przeciążona funkcja z pakietu heplot czy wystarczy base?
To funkcja pairs.mlm{heplots}
http://www.inside-r.org/packages/cran/heplots/docs/pairs.mlm
A więc jako wejście dostaje wynik z funkcji lm() i aby działała trzeba załadować heplots.