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