Statystyczne metody analizy danych przy użyciu środowiska R Agnieszka Nowak - Brzezińska Instytut Informatyki, Uniwersytet Śląski Wybrane zagadnienia
Plan wystąpienia 1. Wprowadzenie. 2. Środowisko R. 3. Wybrane metody analizy danych: ˆ Prezentacja danych. ˆ Regresja liniowa, predykcja danych. ˆ Obserwacje odstające a obserwacje wpływowe. 4. Podsumowanie.
Środowisko R ˆ Jest to bardzo elastyczne (darmowe) środowisko analityczne o bogatej funkcjonalności, które jest stosowane w wielu badawczych i praktycznych pracach dotyczących analizy danych i odkrywania wiedzy. ˆ R jako język programowania dostarcza wbudowanych operacji ułatwiających przetwarzanie tabelarycznych zbiorów danych, mechanizmów graficznego opisu danych, bogatych bibliotek funkcji analitycznych, obejmujących szeroki zakres metod statystycznych i metod odkrywania wiedzy oraz - co niezwykle ważne - interaktywny interpreter poleceń i (dla niektórych platform) graficzny interfejs użytkownika. ˆ Wszystkie niezbędne informacje o języku R znajdziemy na stronach CRAN (The Comprehensive R Archive Network), gdzie dostępne są pakiety źródłowe, dokumentacja, oraz obszerne zasoby bibliotek.
Rysunek: Okno główne środowiska R
Pomoc w nauce R ˆ Godnym polecenia materiałem umożliwiającym przyswojenie podstawowych zagadnień jest darmowy kurs pt. Wprowadzenie do języka R dostępny na stronie http://cran.r-project.org/doc/contrib/komsta-wprowadzenie.pdf a także źródło anglojęzyczne pt. An Introduction to R do ściągnięcia ze strony http://cran.r-project.org/doc/manuals/r-intro.html. ˆ The R Language Definition - źródło: http://cran.r-project.org/doc/manuals/r-lang.html ˆ The R Language A Short Companion - źródło: http://cran.r-project.org/doc/contrib/r_language.pdf ˆ R Reference Card - źródło: http://cran.r-project.org/doc/contrib/refcard.pdf
Pomoc środowiska R
Statystyka opisowa za pomocą R-a Wyznaczanie miar rozkładu Bardzo prostą metodą w zakresie statystyki opisowej jest tworzenie opisu zbioru danych za pomocą tzw. emphmiar rozkładu cechy. Miary rozkładu można podzielić na kilka podstawowych kategorii: ˆ miary położenia, np. kwantyl, miary tendencji centralnej (np. średnia arytmetyczna, średnia geometryczna, średnia harmoniczna, średnia kwadratowa, mediana, moda), ˆ miary zróżnicowania, np. odchylenie standardowe, wariancja, rozstęp, rozstęp ćwiartkowy, średnie odchylenie bezwzględne, odchylenie ćwiartkowe, współczynnik zmienności, ˆ miary asymetrii, np. współczynnik skośności, współczynnik asymetrii, trzeci moment centralny, ˆ miary koncentracji, np. współczynnik Giniego, miara kurtozy [2].
Funkcja summary: Pakiet Hmisc i komenda library(hmisc)
Funkcja describe z pakietu psych otrzymujemy: nazwę zmiennej (kolumny, cechy), jej numer w całym zbiorze danych (var), liczba wartości w zbiorze (n) a także statystyki typu: średnia (mean), odchylenie standardowe (sd), mediana (median), elementy minimalny (min) i maksymalny (max), skośność (skew) oraz kurtoza (kurtosis).
Graficzna prezentacja wyników ˆ histogramy i wykresy częstości (ang. density plot)- przedstawiające rozkład empiryczny cechy, ˆ wykresy rozrzutu (ang. scatterplots) - pozwalające wykrywać pewne zależności (i ich typ) między wartościami ciągłymi obserwacji w pewnej mierzonej skali. Każdy punkt wykresu reprezentuje pojedynczą obserwację, ˆ wykresy pudełkowe (ang. boxplot) - prezentowane za pomocą pudełka, którego lewy bok jest wyznaczony przez pierwszy kwartyl, zaś prawy bok przez trzeci kwartyl. Szerokość pudełka odpowiada wartości rozstępu ćwiartkowego. Wewnątrz pudełka znajduje się pionowa linia, określająca wartość mediany. Rysunek uzupełniamy po prawej i lewej stronie odcinkami. Lewy koniec lewego odcinka wyznacza najmniejszą wartość w zbiorze, natomiast prawy koniec prawego odcinka to wartość największa.
Histogramy > dane<-c(3,4,5,6,7,7,7,8,8,8,9) > hist(dane,col="red",xlab="wartości",main="histogram")
Wykresy pudełkowe Wykresy pudełkowe spotykane są najczęściej w pakietach komputerowych wspomagających proces analizy i interpretacji danych statystycznych. Oczywiście: ˆ Lower whisker - wartość najmniejsza dla danej zmiennej. ˆ Lower quartile - punkt dokładnie na 25% zbioru obserwacji. ˆ Median - punkt rozgraniczający dokładnie 50% obserwacji. ˆ Upper quartile - Punkt, przed którym jest 75% obserwacji. ˆ Upper whisker - najwyższa wartość w zbiorze. ˆ Mean - wartość średnia w zbiorze obserwacji.
Wykres pudełkowy boxplot(dane,col="red",xlab="wartości",main="wykrespudełkowy")
Wykresy w R Ogromną zaletą środowiska R jest jego system graficzny i możliwości łatwej wizualizacji danych. Bardzo skrótowo (ale jednocześnie wystarczająco) generowanie wykresów zostało przedstawione w kursie dostępnym pod adresem: http://www.oginet.pl/~rasp/r/wykresy.html. Generalizując powiemy, że należy wyróżnić dwa rodzaje funkcji graficznych w R: ˆ wyskopoziomowe funkcje rysują kompletne wykresy ( i usuwające poprzednie), ˆ niskopoziomowe funkcje dodające do wykresów nowe elementy typu legenda, punkty, linie, tekst.
Wykres rozrzutu - przykład 1
Wykres rozrzutu - przykład 2
Wykres mieszany - przykład 3
http://www.statmethods.net/advgraphs/layout.html
Regresja - metoda najmniejszych kwadratów
Model regresji liniowej
Obserwacje odstające Obserwacja odstająca (ang. outlier) jest obserwacją, która nie spełnia równości regresji czyli nie należy do modelu prostej regresji. Obserwacje odstające mogą znacząco wpłwać na postać prostej regresji: b 0 + b 1x dla której wartość sumy: n i=1 (yi ŷi)2 a więc i sumy n i=1 (yi (b0 + b1xi))2 ma być możliwie najmniejsza. Jeśli analizujemy tylko pojedyncze zmienne objaśniające, to identyfikacja obserwacji odstających jest dość prosta. Wystarczy generować wykresy rozrzutu bądź histogramy. Jeśli zaś chcemy szukać obserwacji odstających globalnie (nie dla pojedynczej zmiennej objaśniającej ale dla wielu) wówczas możemy analizować rezydua lub rezydua studentyzowane i wśród nich szukać wartości odstających.
Wyznaczenie obserwacji odstających
Wyznaczenie obserwacji odstających 1. Mając wektor wartości resztowych(rezyduów) e = (e 1, e 2,..., e n),gdzie wartość resztowa e i = y i ŷ i (e i = y i (b 0 x i + b 1 ))powiemy, że błąd standardowy rezyduum e i jest równy: = S 1 ( 1 n + (x i x) 2 n i=1 (x i x) ). 2 SE ei Wtedy studentyzowana wartość resztowa będzie odpowiadać wartości: r i = e i SE ei. 2. Sporządzając wykres wartości studentyzowanych rezyduów r i względem ich indeksu będziemy potrafili rozpoznawać te duże wartości, które przypuszczalnie będą odstającymi. Podsumowując powiemy, że nowa obserwacja będzie punktem odstającym jeśli będzie się cechować dużą wartością standaryzowanej reszty. W praktyce, obserwacje odstające to takie, których wartość bezwzględnych standaryzowanych reszt przekracza 2.
Wyznaczenie obserwacji odstających w R W środowisku R wykrycie obserwacji odstających możliwe jest na kilka sposobów. Jednym z nich jest użycie funkcji rstudent. Jak widać na poniższym kodzie, w analizowanym przez nas zbiorze występuje obserwacja odstająca. Jest to obserwacja o numerze 8 i wartości 2.176429.
Wyznaczenie obserwacji odstających w R Alternatywnie, możemy użyć funkcji outlier.test z biblioteki car.
Obserwacje wpływowe Obserwacja jest wpływowa (ang. influential) jeśli jej obecność wpływa na prostą regresji, w taki sposób, że zmienia się współczynnik kierunkowy tej prostej. Inaczej powiemy, że jeśli obserwacja jest wpływowa to inaczej wygląda prosta regresji w zależności od tego czy ta obserwacja została ujęta w zbiorze, czy też nie (gdyż została usunięta). W praktyce, jeśli obserwowana wartość leży w Q 1 (czyli ma wartość mniejszą niż 25 centyl), to mówimy, że ma ona mały wpływ na regresję. Obserwacje leżące między Q 1 a Q 3 kwartylem nazywamy wpływowymi. Wykrycie obserwacji wpływowych umożliwia pomiar odległości Cooka z tzw. modyfikowanymi rezyduami. Usuwamy obserwację potencjalnie wpływową i obliczamy różnicę. Obserwacja jest wpływowa jeśli ta różnica będzie wysoka. Odległość Cooka mierzy poziom wpływu obserwacji i jest obliczana jako: n j=1 (ŷ j y j(i) ˆ ) 2 ps 2 D i = = e2 i h i ps 2 (1 h i ) 2,gdzie ŷ j jest wartością przewidywaną dla j-tej obserwacji obliczoną w modelu z usuniętą obserwacją i-tą zaś y j(i) ˆ jest wartością przewidywaną dla j-tej obserwacji w modelu, w którym nie usunięto i-tej obserwacji (potencjalnie wpływowej).
Wyznaczenie obserwacji wpływowych w R Teraz jeśli chcemy poznać obserwacje wpływowe możemy użyć komendy: której efektem będzie wykres:
Do wykrycia obserwacji wpływowych możemy także użyć funkcji > influence.measures(lm(b a)), której efekt będzie następujący: Ostatnia kolumna wskazuje na obserwacje wpływowe zaznaczając przy nich symbol. Są to obserwacje 1 i 9.
Zbiór Cereals.data
Zbiór Cereals.data ˆ źródło: http://lib.stat.cmu.edu/dasl/datafiles/cereals.html ˆ Zbiór zawiera dane 77 rodzajów płatków śniadaniowych,które opisane są 14 atrybutami warunkowymi i jednym atrybutem decyzyjnym rating mówiącym o wartości odżywczej płatków w oparciu o informacje typu: calories, sugars, fiber, sodium, vitamins czy weight (ora zinne).
Zbiór Cereals.data
Zbiór Cereals.data
Wyznaczenie obserwacji odstających w modelu z wieloma zmiennymi objaśniającymi Obserwacje odstające będziemy wykrywać przy użyciu znanego już pakietu car i funkcji outlier.test w ramach tego pakietu. Wykryliśmy jedną obserwację odstającą (płatki o nazwie Golden Crisp).
Obserwacje wpływowe w zbiorze Cereals Funkcja: influence.measures Za wpływowe uznamy 6 obserwacji: 100% Bran,All-Bran, All-Bran with Extra Fiber czy Frosted Mini-Wheats, Golden Crisp (które zresztą uznaliśmy za obserwację odstającą, outlier) oraz Post Nat. Raisin Bran.
Bardzo ważne dla wykrycia obserwacji odstających są tzw. studentyzowane reszty. Wykres dla nich możemy wykonac wywołując komendę: > qq.plot(model, main="qq Plot") Efektem będzie wykres z rozkładem obserwacji między I i III kwartylem, stąd nazwa wykresu międzykwartylny
Regresja liniowa dla zbioru Cereals
Predykcja dla zbioru Cereals Równanie regresji: gdy zmienną objaśnianą będzie zmienna rating (wartość odżywcza płatków) zaś objaśniającą sugars (poziom cukrów), będzie następującej postaci: rating = -2.4 * sugars + 59.3 Gdy poziom cukrów wynosi np 1 to wartość odżywcza płatków będzie wynosić 56.9 zaś gdy poziom cukrów będzie wynosił np 10 wówczas wartość odżywcza zmaleje do wartości 35.3.
Inne metody analizy danych ˆ analizy dyskryminacyjna: ˆ library(mass)i funkcja lda() ˆ analiza skupień: ˆ pam(), kmeans(), pvclust(), hclust(). ˆ drzewa klasyfikacyjne: ˆ rpart(), printcp() ˆ analiza składowych głównych: ˆ princomp(), factanal()
Analiza dyskryminacyjna
Analiza skupień - statystyki danych
Analiza skupień - klasyczny algorytm k-średnich
Drzewa klasyfikacyjne
Analiza składowych głównych
Analiza składowych głównych
Podsumowanie ˆ R jest wykorzystywany w badaniach naukowych i dydaktyce na najlepszych uczelniach na świecie, w dziedzinach biologii, socjologii, psychologii, ekonomii. ˆ R to środowisko do obliczeń statystycznych, a jednocześnie język programowania. ˆ R może działać na systemach Windows, Linux i MacOS.
Bibliografia Smith L.I.,A tutorial on Principal Components Analysis, http://kybele.psych.cornell.edu/~edelman/ Psych-465-Spring-2003/PCA-tutorial.pdf, 2002. Redakcja naukowa: Walesiak M. and Gatnar E., Statystyczna analiza danych z wykorzystaniem programu R, PWN, 2009, Warszawa, Polska Larose Daniel T., Metody i modele eksploracji danych. PWN, Warszawa, Polska, 2008. Ćwik J. and Mielniczuk J., Statystyczne systemy uczące się. Ćwiczenia w oparciu o pakiet R. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, Polska, 2009. Koronacki J. and Mielniczuk J., Statystyka dla studentów kierunków technicznych i przyrodniczych. Wydawnictwa Naukowo-Techniczne, Warszawa, Polska, 2006. Koronacki J. and Ćwik J., Statystyczne systemy uczące się. EXIT. Warszawa, Polska, 2008.