Analiza regresji 1 Opis zajŚ˘ 2 Wprowadzenie
Transkrypt
Analiza regresji 1 Opis zajŚ˘ 2 Wprowadzenie
Analiza regresji Konspekt do zaj¦¢: Statystyczne metody analizy danych Agnieszka Nowak-Brzezi«ska 28 pa¹dziernika 2009 1 Opis zaj¦¢ Celem zaj¦¢ jest realizacja praktyczna zagadnie« zwi¡zanych z analiz¡ regresji, wykresami rezyduów oraz obliczeniem warto±ci korelacji, omówionych na wykªadzie Pana Profesora Jacka Koronackiego ( http://www.ipipan.waw.pl/~korona/). 2 Wprowadzenie Analiza regresji jest bardzo popularn¡ i ch¦tnie stosowan¡ technik¡ statystyczn¡ pozwalajac¡ opisywa¢ zwi¡zki zachodz¡ce pomi¦dzy zmiennymi wej±ciowymi (obja±niaj¡cymi) a wyj±ciowymi (obja±nianymi). Innymi sªowy dokonujemy estymacji jednych danych, korzystaj¡c z innych. Istnieje wiele ró»nych technik regresji. Niew¡tpliwie najpopularniejsza jest regresja liniowa. Zakªada ona, »e pomi¦dzy zmiennymi obja±niaj¡cymi i obja±nianymi istnieje mniej lub bardziej wyrazista zale»no±¢ liniowa. Procedura liniowej regresji w R Szukamy równania ŷ = b0 + b1 x.Wiadomym jest, »e mi¦dzy danymi, które s¡ rzeczywiste yi (które analizujemy) a tych, które by±my chcieli uzyska¢ (oczekiwanymi) - yˆi - istnieje zwykle pewna rozbie»no±¢. Wyra»amy j¡ wzorem ei = yi − yˆi (rezydua, reszty). Precyzyjniej powiemy, »e gdy po wykonaniu wykresu rozrzutu obserwujemy, »e chmura punktów (xi , yi ) ukªada si¦ wzdªu» prostej, mo»emy spróbowa¢ wyznaczy¢ jej równanie. Szukamy wtedy modelu regresji dla próbki i staramy si¦ tak wyznaczy¢ wspóªczynniki b1 i b0 w ukªadzie równo±ci yi = b1 xi + b0 + ei , dla i = 1, ...N, by suma warto±ci bezwzgl¦dnych bª¦dów ei byªa jak najmniejsza. Mówimy wtedy to tzw. metodzie najmniejszych kwadratów (MNK). Metoda MNK polega na tym, »e szukamy takich warto±ci b0 oraz b1 które minimalizuj¡ sum¦ kwadratów rezyduów: N X (yi − yˆi )2 i=1 Dla takich danych: b1 = sxy = s2x PN i=1 (xi − xi )(yi − PN 2 i=1 (xi − xi ) 1 yi ) za± b0 = ŷ − b1 x̂ W ±rodowisku R ta procedura wykonuje si¦ w 3 krokach: 1. wyrysowanie punktów na wykresie rozrzutu: > plot(x,y) 2. znalezienie warto±ci b1 i b0 3. dodanie linii do grafu: abline(lm(y ~ x)) Funkcja abline jest do±¢ trudna w zrozumieniu. Drukuje ona linie na bie»¡cym oknie gracznym. Wykorzystuje do tego znan¡ z modelu liniowego funkcj¦ lm. Wyra»enie y ∼ x mówi, »e chcemy znale¹¢ model dla zmiennej y w zale»no±ci od zmiennej x. Funkcja cor pomo»e obliczy¢ wspóªczynnik korelacji Pearsona: P (xi − x̄)(yi − ȳ) R = pP , (xi − x̄)2 (yi − ȳ)2 , który pozwala stwierdzie¢ jak jedna zmienna zale»y od zmian na drugiej zmiennej. Warto±ci R2 bliskie 1 ±wadcz¡ o silnej korelacji, za± bliskie 0 o braku korelacji. W ±rodowisku R u»yjemy do tego funkcji cor > cor(x,y) # to find R [1] 0.881 > cor(x,y)^2 # to find R^2 [1] 0.776 Musimy jawnie wywoªa¢ summary(lm(y ∼ x)). Gdy chcemy wyznacza¢ warto±ci zmiennej x w zale»no±ci od y to zamieniamy we wzorach x z y . Otrzymane proste pokrywaj¡ si¦, gdy badana zale»no±ci jest zale»no±ci¡ funkcyjn¡ i nie ma losowo±ci. Przypadki odstaj¡ce i znacz¡ce: W celu wykluczenia z analizy przypadków odstaj¡cych, które mog¡ na ni¡ niekorzystnie wpªyn¡¢, nale»y zrobi¢ wykresy skrzynkowe analizowanych zmiennych. Na wykresach tych kóªkiem i gwiazdk¡ zaznaczone s¡ przypadki odstaj¡ce, odpowiednio nietypowe i skrajne. Przypadki te sugeruje si¦ usuwa¢, a w przypadku du»ej ich liczby analizowa¢ osobno. Tutaj nale»y uwzgl¦dni¢ uwagi Pana Profesora na temat zmiennych znacz¡cych i odstaj¡cych, pami¦taj¡c, »e nie ka»da zmienna odstaj¡ca jest nie znacz¡ca, i »e czasami zmienna znacz¡ca mo»e by¢ równie» odstaj¡ca i wtedy sugeruje sie jej nie wyrzuca¢ z analizy, a wr¦cz j¡ uwzgl¦dnia¢ po to by minimalizowa¢ zadanie MNK Wspóªczynnik korelacji liniowej Pearsona (Karl Pearson (1896)) P rxy = (xi − x̄)(yi − ȳ) , (n − 1)sx sy .Przyjmuje warto±ci z przedziaªu [−1, 1]. Dodatnia warto±¢ tego wspóªczynnika oznacza, »e wzrost warto±ci jednej zmiennej generalnie poci¡ga za sob¡ wzrost warto±ci drugiej zmiennej; ujemna spadek. r = 0, gdy nie ma zwi¡zku mi¦dzy zmiennymi, krk ≈ 1, gdy zwi¡zek jest bardzo silny. Zwi¡zek regresji i wspóªczynnika Pearsona Wspóªczynnik korelacji jest miar¡ dobroci dopasowania prostej regresji do danych. 2 Im bli»szy 1, tym dopasowanie lepsze. 2 Interpretacja rxy (tzw. wspóªczynnik determinacji): 2 rxy =1− s2y|x s2y , gdzie s2y|x jest bª¦dem kwadratowym regresji liniowej dla xi na yi danej równaniem y = a + bx. Wi¦c jest to: n s2y|x = 1 X (yi − a − bxi )2 , n − 1 i=1 i s2y jest wariancj¡ dla y : n s2y = 1 X (yi − ȳ)2 . n − 1 i=1 Je±li korelacja b¦dzie symetryczna dla xi i yi otrzymamy te same warto±ci dopasowania dla zmiennych yi i xi : 2 rxy =1− s2x|y s2x . 3 Wykonajmy analiz¦... 1. krok 1: wczytujemy dane > wiek<-c(18,19,20,21,22,23,24,25,26,27,28,29) > wzrost<-c(76.1,77,78.1,78.2,78.8,79.7,79.9,81.1,81.2,81.8,82.8,83.5) 2. Chc¡c znale¹¢ równanie regresji dla zmiennych wzrost oraz wiek , gdzie zakªadamy, »e zmienn¡ obja±nian¡ (y ) jest wzrost a obja±niaj¡c¡ (x) jest wiek , powiemy, »e interesuje nas równanie: wzrost = b0 + b1 ∗ wiek Oczywi±cie musimy wliczy¢ w to jakie± zakªócenia, wi¦c powiemy, »e nasz model opiszemy równaniem: wzrost = b0 + b1 ∗ wiek + e gdzie e b¦dzie bª¦dem resztowym. 3. Je±li u»yjemy polecenia: >lm.r = lm(formula = wzrost ~ wiek) to utworzony w ten sposób obiekt mo»e by¢ u»yty do wywoªania innych polece« R. Je±li np u»yjemy teraz polecenia summary(lm.r) otrzymamy zestawienie: 3 > summary(lm.r) Call: lm(formula = wzrost ~ wiek) Residuals: Min 1Q Median -0.27238 -0.24248 -0.02762 3Q Max 0.16014 0.47238 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 64.9283 0.5084 127.71 < 2e-16 *** wiek 0.6350 0.0214 29.66 4.43e-11 *** --Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 Residual standard error: 0.256 on 10 degrees of freedom Multiple R-squared: 0.9888, Adjusted R-squared: 0.9876 F-statistic: 880 on 1 and 10 DF, p-value: 4.428e-11 4. Gdy u»yjemy polecenia coef(lm.r) otrzymamy zestawienie: (Intercept) 64.9283 wiek 0.6350 5. Powiemy wtedy, »e nasz model regresji przedstawia si¦ nast¦puj¡co: wzrost = 64.9283 + 0.6350 ∗ wiek 6. generujemy wykres > plot(lm.r) Waiting to confirm page change... Klikaj¡c enter dostajemy kolejne wykresy... 7. obliczenie korelacji > cor(wzrost,wiek) [1] 0.994366 8. obliczenie korelacji R2 > cor(wzrost,wiek)^2 [1] 0.988764 9. wyrysowanie wykresów rezyduów dla konkretnych zmiennych > plot(wzrost,lm.r$residuals) > plot(wiek,lm.r$residuals) 4 0.4 0.2 0.0 −0.2 lm.r$residuals 76 78 80 82 wzrost 0.2 0.0 −0.2 lm.r$residuals 0.4 Rysunek 1: wykres reszt dla zmiennej wzrost 18 20 22 24 26 28 wiek Rysunek 2: wykres reszt dla zmiennej wiek 5 0.4 0.2 0.0 −0.2 lm.r$residuals 18 20 22 24 26 28 wiek Rysunek 3: dodanie linii poziomej Wówczas wynikiem b¦d¡ odpowiednio rysunki: 1 i 2. 10. dodaje poziom¡ linie > abline(h = 0) Wówczas wynikiem b¦dzie rysunek 3. 11. Zastosujemy zwykª¡ funkcje plot z argumentem b¦d¡cym rezultatem funkcji lm. Generuje ona 4 wykresy dla regresji. Zmieniaj¡c parametr mf row uzyskujemy wszystkie wykresy w jednym oknie > par(mfrow = c(2, 2));plot(lm.r);par(mfrow = c(1, 1)) Wówczas wynikiem b¦dzie rysunek 4. 12. Gdy chcemy u»y¢ R i regresji do predykcji: U»ywamy do tego funkcji predict, której ogólna formuªa jest nast¦puj¡ca: predict(model, data.frame(pred = new pred), level = 0.95, interval = ''confidence'') gdzie pred to zmienna dla której chcemy sprawdzi¢ now¡ warto±¢ by poda¢ jej warto±¢ dla zmiennej obja±nianej. Podajemy tu tak»e odpowiedni przedziaª zaufania. Np chcemy przewidzie¢ jaka b¦dzie warto±¢ wzrostu dla wieku 28.5, to u»ywamy polecenia: predict(lm.r,data.frame(wiek = 28.5), level = 0.9, interval = "confidence") Po jej wywoªaniu otrzymujemy: 6 10 79 81 1.0 −0.5 0.5 1.5 Scale−Location Residuals vs Leverage 0.4 79 81 83 2 1 0.5 Cook’s distance 10 0.00 Fitted values 1 3 0 8 1 −1 Standardized residuals Theoretical Quantiles 0.8 1.2 1 −1.5 Fitted values 3 77 3 8 0.0 83 0.0 Standardized residuals 77 −1.0 0.2 8 −0.2 Residuals 3 2.0 Normal Q−Q Standardized residuals Residuals vs Fitted 0.10 0.20 1 0.5 0.30 Leverage Rysunek 4: rezultat funkcji lm - 4 wykresy na jednym lm.r lwr upr 1 83.02483 82.78911 83.26054 gdzie jak widzimy mamy podane dolne i górne zakresy przedziaªów ufno±ci. 4 Zadania do wykonania wiczenie 0: Dla zbioru: > liczbaGodzin <-c(18,19,20,21,22,23,24,25,26,27,28,29,45,50,61,77) > wynagrodzenie <-c(76.1,77,78.1,78.2,78.8,79.7,79.9,81.1,81.2,81.8, 82.8,83.5, 90,94,112,121) wykonaj polecenia: • podaj równanie regresji dla zmiennych liczbaGodzin oraz wynagrodzenie ? • predykcja: jaka b¦dzie warto±¢ wynagrodzenia dla liczbyGodzin równej 39 ? wiczenie 1. Wykonaj analiz¦ regresji liniowej dla par zmiennych x i y z pliku anscombe dost¦pnego w pakiecie R. Porównaj wyniki otrzymane w tabelach oraz wykresy rozrzutu z zaznaczonymi prostymi regresji. Czy we wszystkich przypadkach prosta regresji dobrze oddaje zale»no±¢ mi¦dzy zminnymi? wiczenie 2. Zaªó»my, ze sporzadzili±my krzyw¡ kalibracyjn¡ oznaczania pewnego zwi¡zku dla st¦»e« 1, 2, ..., 9, 10 mg/ml. Ka»de oznaczenie powtarzano trzykrotnie. Wyniki zapisa¢ nale»y w dwóch wektorach x i y : > x <-c(1, 1, 1, 2, 2, 2, 3 ,3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10) 7 > y <- c(2.00, 2.01, 2.00, 2.42, 2.42, 2.43, 2.72, 2.74, 2.74, 3.00, 3.00, 2.98, 3.23, 3.24, 3.23, 3.44, 3.44, 3.45, 3.66, 3.65, 3.62, 3.82, 3.85, 3.83, 4.00, 4.00, 4.00, 4.18, 4.16, 4.18) . Wykonaj analiz¦ regresji dla danego zbioru. 8