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.pdfa także źródło anglojęzyczne pt. ”An Introduction to R” do ściągnięcia ze stronyhttp://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:b0+ b1x dla której wartość sumy:Pn
i =1(yi− ˆyi)2a więc i sumy Pn
i =1(yi− (b0+ b1xi))2ma 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 = (e1, e2, . . . , en),gdzie wartość resztowaei = yi− ˆyi (ei = yi− (b0xi+ b1))powiemy, że błąd standardowy rezyduumei jest równy:
SEei = S ∗
r
1 − (1
n+ (xi− ¯x )2
Pn
i =1(xi− ¯x )2).
Wtedy studentyzowana wartość resztowa będzie odpowiadać wartości:
ri= ei
SEei
.
2. Sporządzając wykres wartości studentyzowanych rezyduówri 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 funkcjirstudent. 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ć funkcjioutlier.testz 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 Q1(czyli ma wartość mniejszą niż 25 centyl), to mówimy, że ma ona mały wpływ na regresję. Obserwacje leżące między Q1a Q3kwartylem 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:
Di= Pn
j =1( ˆyj− ˆyj (i ))2
pS2 = e
2 i pS2
hi
(1−hi)2,gdzieyˆjjest wartością przewidywaną dlaj-tej obserwacji obliczoną w modelu z usuniętą obserwacjąi-tą zaśyj (i )ˆ jest wartością przewidywaną dlaj-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ż pakietucar i funkcjioutlier.testw 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 funkcjalda()
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.