WYKRES

Transkrypt

WYKRES
Wykład 15
Regresja liniowa - Diagnostyka
• Diagnostyka – ocena prawidłowości
założeń
• Środki zaradcze – odpowiednie
dostosowanie metod analizy
• Model: Yi = β0 + β1Xi + ξi
• Wartości przewidywane: Ŷi = b0 + b1Xi
• Reszty: ei = Yi – Ŷi
• ei powinno być bliskie ξi
• Model zakłada, że ξi są iid N(0, σ2)
Wykres
Wykres
Pytania na które szukamy
odpowiedzi
•
•
•
•
WYKRES
Wykres
Diagnostyka dla reszt
Wykres
Czy zależność jest liniowa ?
Czy wariancja Y zależy od X?
Czy są obserwacje odstające ?
Czy reszty zależą od kolejności w zbiorze
danych (_n_)
• Czy zakłócenia mają rozkład normalny ?
• Czy zakłócenia są niezależne ?
Czy zależność jest liniowa ?
• Rysujemy Y vs X
• Rysujemy e vs X
• Wykres e vs X podkreśla odstępstwa od
liniowości
Data a100;
do x=1 to 30;
y=x*x-10*x+30+25*normal(0);
output;
end;
run;
1
proc reg data=a100;
model y=x;
output out=a2 r=resid;
run;
Source DF
Sum of Mean
Squares Square
Model
Error
C Tot
1032098 1032098
169048
6037
1201145
F Value
170.95
1
28
29
Pr > F
<.0001
symbol1 v=circle i=rl;
proc gplot data=a2;
plot y*x;
run;
symbol1 v=circle i=sm60;
proc gplot data=a2;
plot y*x;
proc gplot data=a2;
plot resid*x/vref=0;
run;
2
Czy wariancja zależy od X?
• Rysujemy Y vs X
• Rysujemy e vs X
• Wykres e vs X podkreśla odstępstwa od
założenia o równej wariancji
proc reg data=a100a;
model y=x;
output out=a2 r=resid;
run;
Data a100a;
do x=1 to 100;
y=100*x+30+10*x*normal(0);
output;
end;
run;
symbol1 v=circle i=sm60;
proc gplot data=a2;
plot y*x;
proc gplot data=a2;
plot resid*x vref=0;
run;
3
Czy zakłócenia pochodzą z
rozkładu normalnego ?
35
30
• Naprawdę chodzi nam o to aby
sprawdzić czy rozkład reszt na tyle
różni się od normalnego, że
przedziały ufności i testy istotności
tracą swoje własności.
• Oceniamy rozkład reszt za pomocą
wykresu kwantylowego
25
P
e
r
c
e
n
t
20
15
10
5
0
-180
-140
-100
-60
-20
20
60
100
140
180
Residual
Niezależność błędów
• Zwykle odstępstwa od tego założenia
można zaobserwować rysując reszty w
funkcji czasu
• Mogą pojawić się trendy lub zakłócenia
okresowe
Czy są obserwacje odstające ?
• Wykres Y vs X
• Wykres e vs X
• Wykres e vs X powinien ułatwić
identyfikację obserwacji odstającej
Data a100b1;
do x=1 to 100 by 5;
y=30+50*x+200*normal(0);
output;
end;
x=50; y=30+50*50 +10000;
d='out'; output;
run;
4
proc reg data=a100b1;
model y=x;
where d ne 'out';
run;
proc reg data=a100b1;
model y=x;
output out=a2 r=resid;
run;
Root MSE
Root MSE
217.77514
2250.22683
Var
Par
Est
Int -2.54
x
50.51
St
Error
95.29
1.68
Int 432.20 979.57
x
51.37 17.45
t
Pr>|t|
29.91 <.0001
2.94
.0083
symbol1 v=circle i=rl;
proc gplot data=a2;
plot y*x;
proc gplot data=a2;
plot resid*x/ vref=0;
run;
5
Różne rodzaje obserwacji
odstających
• Obserwacja odstająca w poprzednim
przykładzie wpłynęła na estymator punktu
przecięcia z osią Y
• Ale nie na estymator nachylenia
• Zwiększyła estymator odchylenia
standardowego
• W kolejnym przykładzie zademonstrujemy
jak obserwacja odstająca może wpływać
na estymator nachylenia
proc reg data=a100c1;
model y=x;
where d ne 'out';
run;
proc reg data=a100c1;
model y=x;
output out=a2 r=resid;
run;
Data a100c1;
do x=1 to 100 by 5;
y=30+50*x+200*normal(0);
output;
end;
x=100; y=30+50*100 -10000;
d='out'; output;
run;
Var
Int
x
Par
St
Est Err
73.2 93.6
49.8 1.6
Int 903.9 899.3
x
24.1 15.1
t
Pr>|t|
30.02
<.0001
1.59
0.1285
symbol1 v=circle i=rl;
proc gplot data=a2;
plot y*x;
proc gplot data=a2;
plot resid*x/ vref=0;
run;
6
Inne wykresy
•
•
•
•
Można również wykonać
Diagram pnia i liścia
Wykres pudełkowy
Wykres reszt w funkcji czasu lub innych
potencjalnych zmiennych wyjaśniających
Testy normalności (2)
Testy normalności
• H0: obserwacje w próbie prostej
pochodzą z rozkładu normalnego
• H1: obserwacje nie pochodzą z
rozkładu normalnego
Testy normalności (3)
• Moc testu wzrasta wraz z rozmiarem
próby
• Dla dużych rozmiarów prób test
``wyłapuje’’ odchylenia od
normalności, które nie są
niebezpieczne.
Jest wiele testów normalności
• Proc univariate z opcją normal (proc
univariate normal;)proponuje
cztery testy
• (test Shapiro-Wilka jest uznawany za
najlepszy)
Test
(Shapiro-Wilk
Kolmogorov-Smirnov
Cramer-von Mises
Anderson-Darling
statistic
(0.978
0.095
0.033
0.207
W )
D
W-Sq
A-Sq
-----p Value-----Pr < W
0.8626)
Pr > D
>0.1500
Pr > W-Sq >0.2500
Pr > A-Sq >0.2500
7
Zależności nieliniowe (2)
Relacje nieliniowe
• Do opisu wielu relacji nieliniowych
można stosować regresję liniową.
Zwykle wymaga to zamiany, a
czasami zwiększenia liczby,
zmiennych niezależnych
Y = β0 + β1X + β2X2 + ξ
–Y = β0 + β1log(X) + ξ
• Czasami można przekształcić zależność
nieliniową w zależność liniową
•
•
•
•
Zmienność wariancji składnika
losowego
Zależności nieliniowe (3)
• Można analizować dane za
pomocą regresji nieliniowej
• SAS PROC NLIN
• Czasami można zamodelować w jaki
sposób zmienia się wariancja błędu (np.
może ona być liniowo związana z X)
• Można użyć regresji ważonej
• Używamy opcji weight w PROC REG
Rozkład składnika losowego nie
jest normalny
• Można próbować transformacji
• Można stosować procedury które
radzą sobie z błędami z innych
rozkładów
• SAS PROC GENMOD
Np. jeżeli Y ≈ β0exp(β1X)
To można rozważyć model liniowy
log(Y) ≈ log(β0) + β1X
Uwaga – zmieniają się założenia o błędzie
losowym
GENMOD (1)
•
•
•
•
•
•
•
Możliwe rozkłady Y:
Dwumianowy (dane binarne)
Poissona
Gamma (wykładniczy)
Odwrotny Gaussowski
Ujemny dwumianowy
wielomianowy
8
GENMOD (2)
Transformacje potęgowe
• Można wyspecyfikować funkcję g w
równaniu
1.5
p
1.0
Transformacja
to xp
0.5
• g(µ)=b0+ b1x1+ …+bkxk
0.0
• gdzie µ=E(Y).
-0.5
-1.0
Koło transformacji
X w dół,
Y w górę
Y
X w górę,
Y w górę
X
X w dół,
X w górę,
Y w dół
Y w dół
Ważne przypadki specjalne
•
•
•
•
•
Transformacja Boxa-Coxa
λ = 1, Y’ = Y1, brak transformacji
λ = .5, Y’ = Y1/2
λ = -.5, Y’ = Y-1/2
λ = -1, Y’ = Y-1 = 1/Y
λ = 0, Y’ = log(Y)
• Y’ = Yλ
• albo Y’ = (Yλ - 1)/λ
• λ=0 - naturalny logarytm
Transformacja Boxa-Coxa (2)
• Można wyestymować λ włączając ten
parametr do modelu
• Yλ = β0 + β1X + ξ
• i stosując metodę największej
wiarogodności
9
data a1; input age plasma @@;
cards;
0 13.44 0 12.84 0 11.91 0 20.09 0 15.60
1 10.11 1 11.38 1 10.28 1 8.96 1 8.59
2 9.83 2 9.00 2 8.65 2 7.85 2 8.88
3 7.94 3 6.01 3 5.14 3 6.90 3 6.77
4 4.86 4 5.10 4 5.67 4 5.75 4 6.23
;
•
PROC TRANSREG
proc transreg data=a1;
model Box(plasma)=identity(width) /alpha=0.05;
run;
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Lambda
R-Square
-3.00
-2.75
-2.50
-2.25
-2.00
-1.75
-1.50
-1.25
-1.00
-0.75
-0.50
-0.25
0.00 +
0.25
0.50
0.75
1.00
1.25
1.50
1.75
2.00
2.25
2.50
2.75
3.00
0.71
0.73
0.76
0.78
0.80
0.82
0.83
0.85
0.86
0.86
0.87
0.86
0.85
0.84
0.82
0.79
0.75
0.72
0.67
0.63
0.59
0.54
0.50
0.46
0.42
Log Like
-21.8996
-19.4576
-17.0444
-14.6732
-12.3665
-10.1608
-8.1127
-6.3056
-4.8523 *
-3.8891 *
-3.5523 <
-3.9399 *
-5.0754 *
-6.8988
-9.2925
-12.1209
-15.2625
-18.6233
-22.1378
-25.7629
-29.4720
-33.2490
-37.0844
-40.9728
-44.9109
< - Best Lambda
* - Confidence Interval
+ - Convenient Lambda
•
BOX-COX - Przykład
data a2; set a1; ynew=1/sqrt(plasma);
proc gplot data=a2;
plot ynew*age;
run;
10
11