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