Analiza regresji. Analiza korelacji.
Levels Storage name 77 integer mfr 7 integer type 2 integer calories integer protein integer fat integer sodium integer fiber double carbo double sugars integer potass integer vitamins integer shelf integer weight double
cups double
rating double
name
n missing unique 77 0 77
lowest : 100%_Bran 100%_Natural_Bran All-Bran All-Bran_with_Extra_Fiber Almond_Delight
highest: Triples Trix Wheat_Chex
Wheaties Wheaties_Honey_Gold
--- mfr
n missing unique 77 0 7
A G K N P Q R Frequency 1 22 23 6 9 8 8
% 1 29 30 8 12 10 10
--- type
n missing unique
77 0 2 C (74, 96%), H (3, 4%)
--- calories
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
77 0 11 106.9 70 90 100 110 110 124 140
50 70 80 90 100 110 120 130 140 150 160 Frequency 3 2 1 7 17 29 10 2 3 2 1
% 4 3 1 9 22 38 13 3 4 3 1
--- protein
n missing unique Mean 77 0 6 2.545
1 2 3 4 5 6 Frequency 13 25 28 8 1 2
% 17 32 36 10 1 3
carbo
n missing unique Mean .05 .10 .25 .50 .75 .90 .95 77 0 22 14.60 8.0 10.3 12.0 14.0 17.0 21.0 21.0 lowest : -1 5 7 8 9, highest: 19 20 21 22 23
--- sugars
n missing unique Mean .05 .10 .25 .50 .75 .90 .95 77 0 17 6.922 0.0 0.6 3.0 7.0 11.0 13.0 14.0
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Frequency 1 7 1 3 13 1 5 7 4 5 4 5 5 7 4 3 2
% 1 9 1 4 17 1 6 9 5 6 5 6 6 9 5 4 3
--- potass
n missing unique Mean .05 .10 .25 .50 .75 .90 .95 77 0 36 96.08 24 28 40 90 120 190 244 lowest : -1 15 20 25 30, highest: 240 260 280 320 330
vitamins
n missing unique Mean 77 0 3 28.25
0 (8, 10%), 25 (63, 82%), 100 (6, 8%)
--- shelf
n missing unique Mean 77 0 3 2.208
1 (20, 26%), 2 (21, 27%), 3 (36, 47%)
--- weight
n missing unique Mean 77 0 7 1.030
0.5 0.83 1 1.25 1.3 1.33 1.5 Frequency 2 1 64 2 1 5 2
% 3 1 83 3 1 6 3
---
fat
n missing unique Mean 77 0 5 1.013
0 1 2 3 5 Frequency 27 30 14 5 1
% 35 39 18 6 1 sodium
n missing unique Mean .05 .10 .25 .50 .75 .90 .95 77 0 27 159.7 0 0 130 180 210 254 282 lowest : 0 15 45 70 75, highest: 250 260 280 290 320
--- fiber
n missing unique Mean .05 .10 .25 .50 .75 .90 .95 77 0 13 2.152 0.0 0.0 1.0 2.0 3.0 4.4 5.2
0 1 1.5 2 2.5 2.7 3 4 5 6 9 10 14 Frequency 19 16 3 10 1 1 15 4 4 1 1 1 1
% 25 21 4 13 1 1 19 5 5 1 1 1 1
cups
n missing unique Mean .05 .10 .25 .50 .75 .90 .95 77 0 12 0.821 0.466 0.500 0.670 0.750 1.000 1.000 1.026
0.25 0.33 0.5 0.67 0.75 0.8 0.88 1 1.13 1.25 1.33 1.5 Frequency 1 3 7 13 16 1 2 30 1 1 1 1
% 1 4 9 17 21 1 3 39 1 1 1 1 --- rating
n missing unique Mean .05 .10 .25 .50 .75 .90 .95 77 0 77 42.67 22.67 27.92 33.17 40.40 50.83 60.09 68.27 lowest : 18.04 19.82 21.87 22.40 22.74, highest: 68.24 68.40 72.80 74.47 93.70
Kompletnie nieczytelny !!!
Korelacja
Korelacja Pearsona w excelu
0 20 40 60 80 100
-5 0 5 10 15 20
rating
sugars
sugars
Korelacja Pearsona w excelu
Korelacja Spearmana w excelu
The Spearman correlation, called Spearman’s rho, is a special case
of the Pearson correlation
computed on ranked data.
Porównanie miar korelacji Pearsona i
Spearmana
Porównanie miar korelacji Pearsona i
Spearmana
Analiza regresji
•Analiza regresji jest bardzo popularną i chętnie stosowaną techniką statystyczną pozwalającą opisywad 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.
Regresja liniowa
•Metoda zakłada, że pomiędzy zmiennymi objaśniającymi i objaśnianymi istnieje mniej lub bardziej wyrazista zależnośd liniowa.
•Mając zatem zbiór danych do analizy, informacje opisujące te dane możemy podzielid na objaśniane i objaśniające. Wtedy też wartości tych pierwszych będziemy mogli zgadywad znając wartości tych drugich.
• Oczywiście tak się dzieje tylko w sytuacji, gdy faktycznie między tymi zmiennymi istnieje zależnośd liniowa.
•Przewidywanie wartości zmiennych objaśnianych (y) na podstawie wartości zmiennych objaśniających (x) jest możliwe dzięki znalezieniu tzw. modelu regresji.
•W praktyce polega to na podaniu równania prostej, zwanej prostą regresji o postaci:
y = b_0 + b_1 x
gdzie: y - jest zmienną objaśnianą, zaś x - objaśniającą. W równaniu tym bardzo istotną rolę odgrywają współczynniki b_0 i b_1, gdzie b_1 jest nachyleniem linii regresji, zaś b_0 punktem przecięcia linii regresji z osią x (wyrazem wolnym) a więc przewidywaną wartością zmiennej objaśnianej gdy zmienna objaśniająca jest równa 0.
0 10 20 30 40 50 60 70 80 90 100
-2 0 2 4 6 8 10 12 14 16
rating
sugars
sugars
0 10 20 30 40 50 60 70 80 90 100
-2 0 2 4 6 8 10 12 14 16
rating
sugars
sugars
Liniowy (sugars)
Jak to czytad ?
x b b
y
0
1
sugars rating
59 . 4 2 . 42 *
A więc:
b
0 59 . 4 b
1 2 . 42
„Oszacowana wartość odżywcza płatków (rating) jest równa 59.4 i 2.42 razy waga cukrów (sugars) w gramach”
Czyli linia regresji jest liniowym przybliżeniem relacji między zmiennymi x (objaśniającymi, niezależnymi) a y (objaśnianą, zależną) – w tym przypadku między zawartością cukrów a wartością odżywczą.
Możemy zatem dzięki regresji: SZACOWAD, PRZEWIDYWAD…
Po co przewidywad ?
• Gdy np. chcemy oszacowad wartości odżywcze nowego rodzaju płatków (nieuwzględnionych dotąd w tej próbie 77 różnym badanych
płatków śniadaniowych), które zawierają x=1 gram cukrów.
• Wówczas za pomocą oszacowanego równania regresji możemy wyestymowad wartośd
odżywczą płatków śniadaniowych zawierającym 1 gram cukrów:
98 . 56 1
* 42 . 2 4 .
59
y
Po co przewidywad ?
• Gdy np. chcemy oszacowad wartości odżywcze nowego rodzaju płatków (nieuwzględnionych dotąd w tej próbie 77 różnym badanych
płatków śniadaniowych), które zawierają x=5 gram cukrów.
• Wówczas za pomocą oszacowanego równania regresji możemy wyestymowad wartośd
odżywczą płatków śniadaniowych zawierającym 5 gram cukrów:
3 . 47 5
* 42 . 2 4 .
59
y
Jak widad, niestety oszacowanie zgodne z równaniem regresji jest nie do kooca zgodne z rzeczywistą wartością odżywczą płatków.
•Czyli każde płatki mające 1 gram cukru powinny mied wartośd odżywczą równą 56,98 ale jak widad tak nie jest.
•Płatki Cheerios mają wartośd odżywczą równą 50,765.
•Czyli nastąpiło PRZESACOWANIE wartości odżywczej płatków o 6,215.
•Graficznie tę odległośd widzimy jako odległośd punktu reprezentującego
te płatki od jego rzutu pionowego na linię regresji.
Co wówczas ?
•Odległośd ta mierzona jako:
•Nazywad będziemy błędem predykcji (błędem oszacowania, wartością resztową, rezyduum).
•Oczywiście powinno się dążyd do minimalizacji błędu oszacowania.
•Służy do tego metoda zwana metodą najmniejszych kwadratów. Metoda polega na tym, że wybieramy linię regresji która będzie minimalizowad sumę kwadratów reszt dla wszystkich punktów danych.
)
( y
y
Czy to równanie będzie spełnione dla innych płatów niż te z badanego zbioru ?
• Odpowiedź: pewnie NIE.
• Prawdziwą liniową zależnośd między wartością odżywczą a zawartością cukrów dla WSZYSTKICH rodzajów płatków reprezentuje równanie:
x
y 0 1
- Losowy błądDla n obserwacji
• Linia najmniejszych kwadratów minimalizuje sumę kwadratów błędów SSE (population sum of squared errors):
i i
i x
y 0 1
i=1,…,n
n
i
n
i
i i i
R
p y x
SSE
1 1
2 1
0 )
(
Co dalej ?
1. Różniczkujemy to równanie by oszacowad 0 i 1 )
(
*
2
0 10 1
i n
i
i
p
y x
SSE
) (
*
2
0 11 1
i n
i
i i
p
x y x
SSE
2. Przyrównujemy wynik do zera:
0 )
(
0 11
i
n
i
i
b b x
y
0 )
(
0 11
i
n
i
i
i
y b b x
x
Co dalej ?
3. Rozbijamy sumę:
4. Powstaje
0
1 1 0
1
ni
i n
i
i
n b b x
y
0
1 2 1
1 0 1
ni
i n
i
i n
i
i
i
y b x b x
x
ni
i n
i
i
y
x b
nb
1 1
1 0
ni
i i n
i
i n
i
i
b x x y
x b
1 1
2 1
1 0
Co dalej ?
5. Rozwiązując te równania otrzymujemy:
n x
x
n y
x y
b x
i i
i i
i i
/ ) (
/ ) )(
(
2 2 1
x b y
b
0
1x
n – liczba obserwacji
- Średnia wartośd zmiennej objaśniającej
y
- Średnia wartośd zmiennej objaśnianej A sumy są od i=1 do n.b
0 ib
1 -estymatory najmniejszych kwadratów dlaCzyli wartości które minimalizują sumę kwadratów błędów.
1 0
i
Jak znaleźd wartości b 0 =59.4 i b 1 =-2.42 z tych równao?
1. Obliczamy wartości x i ,y i ,x i y i ,x i 2
xi=534
yi=3285.26
xiyi=19186.76
xi2=5190
1. Obliczamy wartości:
2. Podstawiamy do wzorów:
42 . 67 2
. 1486
79 . 3596 77
/ 534 5190
77 / 26 . 3285
* 534 76
. 19186
1 2
b
4 . 59 935
. 6
* 42 . 2 6657 .
1
42
0
y b x
b
Wnioski…
• Wyraz wolny b0 jest miejscem na osi y gdzie linia regresji przecina tę oś czyli jest to przewidywana wartośd zmiennej objaśnianej gdy objaśniająca równa się zeru.
• Współczynnik kierunkowy prostej regresji oznacza szacowaną zmianę wartośd y dla jednostkowego wzrostu x wartośd b
1=-2.42 mówi, że jeśli zawartośd cukrów wzrośnie o 1 gram to wartośd odżywcza płatków zmniejszy się o 2.42 punktu.
• Czyli płatki A których zawartośd cukrów jest o 5 większa niż w płatkach B powinny
mied oszacowaną wartośd odżywczą o 5 razy 2.42 = 12.1 punktów mniejszą niż
płatki typu B.
Regresja wielokrotna
Omawiając regresję liniową (prostą) rozpatrywaliśmy dotąd jedynie takie przypadki zależności między zmiennymi objaśniającymi a objaśnianymi gdzie zmienna objaśniana była zależna tylko od jednej konkretnej zmiennej objaśniającej.
Jednak w praktyce niezwykle często zmienna objaśniana zależna jest nie od jednej ale od kilku (wielu) zmiennych objaśniających.
Będziemy zatem rozważad ogólne równanie regresji postaci:
m m x b
x b x
b b
y
2 ...
2 1
1 0
gdzie m oznacza liczbę (najczęściej kilku) zmiennych objaśniających.
W środowisku R…
W środowisku R procedura znajdowania równania
regresji dla podanego zbioru danych możliwa jest
dzięki wykorzystaniu funkcji lm . Komenda R postaci
lm(y ~ x) mówi, że chcemy znaleźd model
regresji liniowej dla zmiennej y w zależności od
zmiennej x .
równanie regresji, gdy zmienną objaśnianą będzie zmienna rating (wartośd
odżywcza płatków) zaś objaśniającą sugars (poziom cukrów), będzie następującej postaci:
Wówczas pełny zapis okna dialogu z R-em będzie następujący:
> dane<- read.table("C:\\Cereals.data", header = TRUE, row.names = 1)
> model<-lm(rating~sugars, data=dane)
> summary(model) Call:
lm(formula = rating ~ sugars, data = dane) Residuals:
Min 1Q Median 3Q Max -17.853 -5.677 -1.439 5.160 34.421 Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) 59.2844 1.9485 30.43 < 2e-16 ***
sugars -2.4008 0.2373 -10.12 1.15e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 9.196 on 75 degrees of freedom
Multiple R-squared: 0.5771, Adjusted R-squared: 0.5715 F-statistic: 102.3 on 1 and 75 DF, p-value: 1.153e-15
>
rating = -2.4 * sugars+ 59.3
Teraz możemy przewidywad, że gdy poziom cukrów wynosi np 1 to wartośd odżywcza płatków będzie wynosid 56.9 zaś gdy poziom cukrów będzie wynosił 10 wówczas wartośd odżywcza zmaleje do wartości 35.3 (patrz poniżej).
> predict(model,data.frame(sugars=10), level = 0.9, interval = "confidence")
fit lwr upr
1 35.27617 33.14878 37.40356
> predict(model,data.frame(sugars=1), level = 0.9, interval = "confidence")
fit lwr upr
1 56.88355 53.96394 59.80316
Wykres rozrzutu dla zmiennej sugars
Wykres rozrzutu dla zmiennej fiber
Interpretacja
Widad z nich, że między zmienną objaśniającą sugars a zmienną objaśnianą fiber istnieje pewna zależnośd (w miarę wzrostu wartości sugars spada wartośd rating). Z kolei analizując rozrzut obserwacji ze względu na wartości zmiennej objaśniającej fiber oraz objaśnianej rating już tak silnej zależności nie dostrzegamy.
Sprawdźmy jak będzie się zachowywad rozrzut wartości zmiennych objaśnianych w oparciu o te dwie zmienne objaśniające razem.
> model<-lm(rating~sugars+fiber, data=dane)
> summary(model) Call:
lm(formula = rating ~ sugars + fiber, data = dane) Residuals:
Min 1Q Median 3Q Max -12.133 -4.247 -1.031 2.620 16.398 Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) 51.6097 1.5463 33.376 < 2e-16 ***
sugars -2.1837 0.1621 -13.470 < 2e-16 ***
fiber 2.8679 0.3023 9.486 2.02e-14 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 6.219 on 74 degrees of freedom
Multiple R-squared: 0.8092, Adjusted R-squared: 0.804 F-statistic: 156.9 on 2 and 74 DF, p-value: < 2.2e-16
W tym przypadku równanie regresji będzie wyglądad następująco:
Rating = - 2.1837 * sugars+ 2.8679 * fiber+ 51.6097
Uogólniając będziemy mówid, że dla m zmiennych objaśniających zachodzi reguła, zgodnie z którą: oszacowana zmiana wartości zmiennej odpowiedzi to} b
i, jeśli wartość zmiennej x
irośnie o jednostkę i zakładając, że wszystkie pozostałe wartości zmiennych są stałe.
Rating = - 2.1837 * sugars+ 2.8679 * fiber+ 51.6097 Aby zinterpretowad współczynnik nachylenia prostej regresji:
b1 = -2.1837 wartośd odżywcza maleje o 2.1837 punktu, jeśli zawartośd cukru rośnie o jedną jednostkę. Zakładamy
przy tym, że zawartośd błonnika (fiber) jest stała.
b2 = 2.8679 wartośd odżywcza rośnie o 2.8679 punktu, jeśli zawartośd błonnika rośnie o jedną jednostkę a zawartośd cukru
(sugars) jest stała.
Błędy predykcji są mierzone przy użyciu reszt $y - \hat{y}$.
Uwaga: w prostej regresji liniowej reszty reprezentują odległośd (mierzoną wzdłuż osi pionowej) pomiędzy właściwym punktem danych a linią regresji, zaś w regresji
wielokrotnej, reszta jest reprezentowana jako odległośd między właściwym punktem danych a płaszczyzną lub hiperpłaszczyzną regresji.
Przykładowo płatki Spoon Size Shredded Wheat zawierają x1=0 gramów cukru i x2 = 3 gramy błonnika, a ich wartośd odżywcza jest równa 72.80 podczas gdy wartośd
oszacowana, podana za pomocą równania regresji:
Zatem dla tych konkretnych płatków reszta jest równa 60.21 - 72.80 = 12.59.
> predict(model, data.frame(sugars=0,fiber=3),level=0.95, interval="confidence")
fit lwr upr 1 60.21342 57.5805 62.84635
Zwródmy uwagę na to, że wyniki, które tutaj zwraca funkcja R: predict są bardzo istotne. Mianowicie, oprócz podanej (oszacowanej, przewidywanej) wartości zmiennej objaśniającej, otrzymujemy również przedział ufności na zadanym poziomie ufności równym 0.95, który to przedział mieści się między wartością 57.5805 (lwr) a 62.84635 (upr).
Współczynnik determinacji r 2
• Pozwala stwierdzid czy oszacowane równanie regresji jest przydatne do przewidywania.
• Określa stopieo w jakim linia regresji najmniejszych kwadratów wyjaśnia zmiennośd obserwowanych danych.
y y y ( y y )
2x y
y y y (y y)2
x
y
ni
y y
SST
1
)
2Całkowita suma kwadratów…
(
ni
y y SSR
1
)
2Regresyjna suma kwadratów …
(
ni
y y
SSE
1
)
2(
Suma kwadratów błędów oszacowania:
SST r
2 SSR
Wówczas współczynnik determinacji r2:
SST r
2 SSR
Współczynnik determinacji r2:
Współczynnik determinacji r 2
Mierzy stopieo dopasowania regresji jako przybliżenia liniowej zależności pomiędzy zmienną celu a zmienną objaśniającą.
Jaka jest wartośd maksymalna współczynnika determinacji r2 ?
Jest ona osiągana wtedy, gdy regresja idealnie pasuje do danych, co ma miejsce wtedy gdy każdy z punktów danych leży dokładnie na oszacowanej linii regresji. Wówczas nie ma błędów oszacowania, a więc wartości resztowe (rezydua) wynoszą 0, a więc SSE=0 a wtedy SST = SSR a r2=1.
Jaka jest wartośd minimalna współczynnika determinacji r2 ?
Jest ona osiągana wtedy, gdy regresja nie wyjaśnia zmienności, wtedy SSR = 0, a więc r2=0.
Im większa wartość r
2tym lepsze dopasowanie regresji do zbioru
danych.
Przykład analizy współczynnika R 2 dla wielu zmiennych objaśniających
Jak już wspomnieliśmy na początku, często w świecie rzeczywistym mamy do czynienia z zależnościami zmiennej objaśnianej nie od jednej ale raczej od wielu zmiennych objaśniających.
Wykonanie tego typu analiz w pakiecie R nie jest rzeczą trudną. Wręcz przeciwnie.
Nim przeprowadzimy analizę zależności zmiennej rating od wielu zmiennych objaśniających np.sugars oraz fiber przyjrzyjmy się wykresom rozrzutu dla tych zmiennych osobno. Wykres rozrzutu bowiem doskonale odzwierciedla zależności między pojedynczymi zmiennymi.
Wykres rozrzutu dla zmiennej sugars
Wykres rozrzutu dla zmiennej fiber
Interpretacja
Widad z nich, że między zmienną objaśniającą sugars a zmienną objaśnianą fiber istnieje pewna zależnośd (w miarę wzrostu wartości sugars spada wartośd rating). Z kolei analizując rozrzut obserwacji ze względu na wartości zmiennej objaśniającej fiber oraz objaśnianej rating już tak silnej zależności nie dostrzegamy.
Sprawdźmy jak będzie się zachowywad rozrzut wartości zmiennych objaśnianych w oparciu o te dwie zmienne objaśniające razem.
Współczynnik determinacji
gdzie SSR to regresyjna suma kwadratów zaś SST to całkowita suma kwadratów
Będziemy go interpetowad jako częśd zmienności zmiennej objaśnianej, która jest wyjaśniana przez liniową zależnośd ze zbiorem zmiennych objaśniających.
Im większa będzie liczba zmiennych objaśniających tym \textbf{nie mniejsza} będzie wartość współczynnika determinacji $R^2$.
Możemy wnioskowad, że gdy dodajemy nową zmienną objaśniającą do modelu, wartośd
$R^2$ będzie nie mniejsza niż przy modelu o mniejszej liczbie zmiennych. Oczywiście skala (wielkośd) tej różnicy jest bardzo istotna w zależności od tego czy dodamy tę
zmienną do modelu czy też nie. Jeśli wzrost jest duży to uznamy tę zmienną za znaczącą (przydatną).
Niezwykle istotna jest miara nazwana już wcześniej współczynnikiem determinacji R2 określana za pomocą wzoru:
SST
R
2 SSR
^ 2ˆ1
ˆ ) ( y ˆ y SST
n
i
^ 2ˆ 1
ˆ ) ( y ˆ y SSR
n
i
Jeśli takie reszty obliczymy dla każdej obserwacji to możliwe będzie wyznaczenie wartości współczynnika determinacji R2. W naszym przypadku jest on równy 0.8092 czyli 80.92 %. Oznacza to w naszej analizie, że 80.92 % zmienności wartości odżywczej jest wyjaśniane przez liniową zależnośd pomiędzy zmienną wartośd odżywcza a zbiorem zmiennych objaśniających - zawartością cukrów i zawartością błonnika.
Jeśli popatrzymy jaka była wartośd tego współczynnika, gdy badaliśmy na początku zależnośd zmiennej objaśnianej tylko od jednej zmiennej objaśniającej (cukry) to wartośd ta wynosiła R2 = 57.71% . Dla dwóch zmiennych objaśniających ta wartości wyniosła 80.92 %. Czyli powiemy, że dodając nową zmienną objaśniającą (w tym przypadku błonnik) możemy wyjaśnid dodatkowe 80.92 - 57.71 = 22.19% zmienności wartości odżywczej (rating) płatków.
Typowy błąd oszacowania jest tu obliczany jako standardowy błąd oszacowania s i wynosi 6.22 punktu. Oznacza to, że estymacja wartości odżywczej płatków na podstawie zawartości cukrów i błonnika zwykle różni się od właściwej wartości o 6.22 punktu. Jeśli nowa zmienna jest przydatna, to błąd ten powinien się zmniejszad po dodaniu nowej zmiennej.
Ile zmiennych objaśniających w modelu regresji ?
gdzie p oznacza liczbę parametrów modelu (i jest to zazwyczaj liczba zmiennych objaśniających + 1) zaś n oznacza wielkośd próby. Zwykle wartośd R2adj będzie po prostu nieco mniejsza niż wartośd R2.
W środowisku R współczynnik determinacji R2wyznaczymy stosując bezpośrednio komendę:
summary(model.liniowy)\$r.square
Z kolei współczynnik determinacji ale ten tzw. skorygowany (ang. Adjusted) za pomocą komendy:
summary(model.liniowy)\$adj.r.squared
Najprostszym sposobem na wybór optymalnej liczby zmiennych objaśniających jest współczynnik R2adj zwany skorygowanym. Wiedząc, że R2 = 1 – SSE/SST wartośd R2adj obliczymy jako:
1
2
1
n SST
p n
SSE
R
adj> dane<- read.table("C:\\Cereals.data", header = TRUE, row.names = 1)
> model<-lm(rating~sugars+fiber, data=dane)
> summary(model)$r.square [1] 0.8091568
> summary(model)$adj.r.squared [1] 0.8039988
Chcąc wyznaczyd wartości tych współczynników dla naszego testowego modelu z dwiema zmiennymi objaśniającymi sugars oraz fiber w środowisku R użyjemy odpowiednich komend, jak to pokazuje poniższy kod R wraz z wynikami:
Jak widzimy współczynnik R2 wynosi 0.809 zaś R2adjodpowiednio 0.804.
Obserwacje wpływowe
Obserwacja jest wpływowa (ang. influential), jeśli jej obecnośd 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śd leży w I-ym kwartylu rozkładu (czyli ma wartośd mniejszą niż 25 centyl), to mówimy, że ma ona mały wpływ na regresję. Obserwacje leżące między I a III kwartylem nazywamy wpływowymi.
Wykrycie obserwacji wpływowych umożliwia pomiar odległości Cooka, w której wykorzystujemy tzw. modyfikowane rezydua. Usuwając obserwację, którą chcemy uznad za wpływową ze zbioru obserwacji i obliczając różnicę (między tym jak wyglądają równania regresji z tą obserwacją i gdy jej nie ma) uznajemy obserwację za wpływową gdy ta różnica będzie wysoka.
Odległośd Cooka mierzy poziom wpływu obserwacji i jest obliczana jako:
jest wartością przewidywaną dla j-tej obserwacji obliczoną w modelu z usuniętą obserwacją i-tą
y
j ) (iy
j jest wartością przewidywaną dla j-tej obserwacji w modelu, w którym nie usunięto i-tej obserwacji (potencjalnie wpływowej).Wykres obserwacji wpływowych z zaznaczeniem odległości Cooka
Teraz jeśli chcemy poznad obserwacje wpływowe możemy użyd komendy:
> influencePlot(lm(b~a), main="Influence
Plot",sub="Rozmiar kółka jest proporcjonalny do odległości Cooka)
Jak widad, ostatnia kolumna wskazuje na obserwacje wpływowe zaznaczając przy nich symbol *.
Z naszych danych wynika, że w zbiorze 10 obserwacji mamy 2 wpływowe. Są to obserwacje 1 i 9.
Do wykrycia obserwacji wpływowych możemy także użyd funkcji.
> influence.measures(lm(b~a))
> influence.measures(lm(b~a)) Influence measures of
lm(formula = b ~ a) :
dfb.1_ dfb.a dffit cov.r cook.d hat inf 1 0.0000 0.00e+00 -1.14e-15 1.781 7.45e-31 0.267 * 2 0.5570 -4.52e-01 5.71e-01 1.399 1.65e-01 0.267 3 0.0000 0.00e+00 2.10e-16 1.581 2.52e-32 0.174 4 -0.2337 1.24e-01 -3.13e-01 1.215 5.08e-02 0.119 5 0.0000 0.00e+00 1.42e-16 1.482 1.15e-32 0.119 6 -0.1187 2.05e-18 -2.82e-01 1.195 4.12e-02 0.100 7 0.0217 2.99e-01 7.57e-01 0.573 2.03e-01 0.119 8 0.2719 -6.52e-01 -9.99e-01 0.563 3.40e-01 0.174 9 0.0000 0.00e+00 2.69e-16 1.781 4.13e-32 0.267 * 10 -0.4910 7.42e-01 8.58e-01 1.607 3.62e-01 0.396
>
której efekty będzie następujący
Wyznaczenie obserwacji odstających w modelu z wieloma zmiennymi
objaśniającymi
library(car)
> outlier.test(model)
max|rstudent| = 2.850639, degrees of freedom = 73, unadjusted p = 0.005668692, Bonferroni p = 0.4364893 Observation: Golden_Crisp
Obserwacje odstające będziemy wykrywad 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).
Wyznaczenie obserwacji wpływowych w modelu z wieloma zmiennymi objaśniającymi
influence.measures(model) Influence measures of
lm(formula = rating ~ sugars + fiber, data = dane) :
dfb.1_ dfb.sgrs dfb.fibr dffit 100\%_Bran -0.029606 0.006873 8.71e-02 0.09114 100\%_Natural_Bran -0.032678 -0.025977 3.28e-03 -0.11268
All-Bran 0.107395 0.004022 -4.24e-01 -0.45329
All-Bran_with_Extra_Fiber -0.051238 -0.047248 2.62e-01 0.28122 ...
Frosted_Flakes -0.000309 0.015791 -6.58e-03 0.02575 Frosted_Mini-Wheats 0.065331 0.017652 9.33e-02 0.27267 ...
Golden_Crisp -0.171769 0.576328 -2.20e-01 0.73321 Golden_Grahams -0.087125 -0.053260 1.31e-01 -0.21490 Grape_Nuts_Flakes 0.031668 -0.020034 1.55e-02 0.05831
Grape-Nuts -0.005289 0.004597 -1.28e-03 -0.00738
Shredded_Wheat_'n'Bran 0.287978 -0.328880 1.26e-01 0.43414 Shredded_Wheat_spoon_size 0.373845 -0.378815 3.42e-02 0.46093 Wheaties_Honey_Gold -0.007926 -0.002691 6.93e-03 -0.01710
cov.r cook.d hat inf 100\%_Bran 1.233 2.80e-03 0.1565 * 100\%_Natural_Bran 1.018 4.24e-03 0.0138
All-Bran 1.116 6.80e-02 0.1216 *
All-Bran_with_Extra_Fiber 1.588 2.67e-02 0.3480 * ...
Frosted_Flakes 1.068 2.24e-04 0.0257 Frosted_Mini-Wheats 0.867 2.35e-02 0.0147 * ...
Golden_Crisp 0.809 1.63e-01 0.0621 *
...
Post_Nat._Raisin_Bran 1.147 1.57e-04 0.0918 *
Wartości wpływowe będziemy wykrywad za pomocą fukcji influence.measures. Wyniki takiej analizy widzimy poniżej.
influence.measures(model) Influence measures of
lm(formula = rating ~ sugars + fiber, data = dane) :
dfb.1_ dfb.sgrs dfb.fibr dffit 100\%_Bran -0.029606 0.006873 8.71e-02 0.09114 100\%_Natural_Bran -0.032678 -0.025977 3.28e-03 -0.11268
All-Bran 0.107395 0.004022 -4.24e-01 -0.45329
All-Bran_with_Extra_Fiber -0.051238 -0.047248 2.62e-01 0.28122 ...
Frosted_Flakes -0.000309 0.015791 -6.58e-03 0.02575 Frosted_Mini-Wheats 0.065331 0.017652 9.33e-02 0.27267 ...
Golden_Crisp -0.171769 0.576328 -2.20e-01 0.73321 Golden_Grahams -0.087125 -0.053260 1.31e-01 -0.21490 Grape_Nuts_Flakes 0.031668 -0.020034 1.55e-02 0.05831
Grape-Nuts -0.005289 0.004597 -1.28e-03 -0.00738
Shredded_Wheat_'n'Bran 0.287978 -0.328880 1.26e-01 0.43414 Shredded_Wheat_spoon_size 0.373845 -0.378815 3.42e-02 0.46093 Wheaties_Honey_Gold -0.007926 -0.002691 6.93e-03 -0.01710
cov.r cook.d hat inf 100\%_Bran 1.233 2.80e-03 0.1565 * 100\%_Natural_Bran 1.018 4.24e-03 0.0138
All-Bran 1.116 6.80e-02 0.1216 *
All-Bran_with_Extra_Fiber 1.588 2.67e-02 0.3480 * ...
Frosted_Flakes 1.068 2.24e-04 0.0257
Frosted_Mini-Wheats 0.867 2.35e-02 0.0147 * ...
Golden_Crisp 0.809 1.63e-01 0.0621 *
...
Post_Nat._Raisin_Bran 1.147 1.57e-04 0.0918 *
Za wpływowe uznamy 6 obserwacji:
100%_Bran All-Bran
All-Bran_with_Extra_Fiber Frosted_Mini-Wheats
Golden_Crisp (
które zresztą uznaliśmy za obserwację odstającą, outlier) oraz
Post_Nat._Raisin_Bran.
Współliniowośd
Gdy zmienne objaśniające są wysoko skorelowane wyniki analizy regresji mogą byd
niestabilne. Szacowana wartośd zmiennej xi może zmienid wielkośd a nawet kierunek zależnie od pozostałych zmiennych objaśniających zawartych w tak testowanym modelu regresji. Taka zależnośd liniowa między zmiennymi objaśniającymi może zagrażad trafności wyników analizy regresji.
Do wskaźników oceniających współliniowośd należy, m.in. VIF (Variance Inflation Factor) zwany współczynnikiem podbicia (inflacji) wariancji. VIF pozwala wychwycid wzrost wariancji ze
względu na współliniowośd cechy.
Innymi słowy: wskazuje on o ile wariancje współczynników są zawyżone z powodu zależności liniowych w testowanym modelu. Niektóre pakiety statystyczne pozwalają także alternatywnie mierzyd tzw. współczynnik toleracji (TOL - ang. tolerance), który mierzy się jako: 1/VIF
dla modelu xi = f(x1, …., xi-1, xi+1, …, xp) gdzie zmienna xi będzie wyjaśniana przez wszystkie pozostałe zmienne.
Gdy VIF > 10 mówimy, że współliniowośd wystąpiła i chcąc się jej pozbyd z modelu, usuwamy te cechy, które są liniową kombinacją innych zmiennych niezależnych.
2 1
) 1
(
ii
R
VIF
Radą na współliniowośd jest według niektórych prac zwiększenie zbioru obserwacji o nowe, tak, by zminimalizowad istniejące zależności liniowe pomiędzy zmiennymi objaśniającymi.
Oczywiście, zwiększenie liczby obserwacji nie gwarantuje poprawy -stąd takie rozwiązanie na pewno nie należy do najlepszych i jedynych. Lepszym wydaje się komponowanie
zmiennych zależnych w nowe zmienne (np. waga i wzrost są skorelowane silnie i zamiast nich stworzenie jednej zmiennej stosunek wzrostu do wagi. Taką nową zmienną nazywa się w literaturze kompozytem.
Często - dla dużej liczby zmiennych objaśniających - stosuje sie metodę analizy składowych głównych (ang. principal component analysis) dla redukcji liczby zmiennych do jednego lub kilku kompozytów niezależnych.
Przykład modelu ze współliniowością
Gdzie x3i = 10 * x1i - 2 * x2i .
Wtedy powiemy, że zmienna x3 jest kombinacją liniową zmiennych x1 i x2.
Próba szacowania takiego modelu związana jest ze świadomym popełnianiem błędu, gdyż w modelu tym występuje dokładna współliniowośd (jedna ze zmiennych objaśniających jest kombinacją liniową pozostałych).
Dla modelu postaci:
yi = b0 + b1 x1i + b2 x2i + b3 x3i + e1i
W środowisku R sprawdzanie współliniowości nie jest trudne. Wystarczy skorzystad z funkcjivif której argumentem jest model regresji dla danego zbioru danych.
Przykład dotyczący naszego zbioru płatków zbożowych przedstawiamy poniżej:
> vif(lm(rating~sugars+fiber, data=dane)) sugars fiber
1.020345 1.020345.
Wartości współczynnika $VIF$ nie są zbyt wysokie toteż uznajemy, że w modelu tym nie występuje zjawisko współliniowości.