Regresja liniowa wprowadzenie a) Model regresji liniowej ma postać: gdzie jest zmienną objaśnianą (zależną); są zmiennymi objaśniającymi (niezależnymi); natomiast są parametrami modelu. jest składnikiem losowym modelu. Zakłada się, że ma rozkład normalny oraz i. Parametry modelu podlegają szacowaniu (estymacji) na przykład przy pomocy metody najmniejszych kwadratów, czyli gdzie macierz jest utworzona z kolumny złożonej z samych jedynek oraz kolumn Często zakłada się również, że liczba obserwacji powinna być większa od ilości estymowanych parametrów. b) Współczynnik determinacji informuje nas jaka część zmienności zmiennej zależnej została wyjaśniona przez model. Współczynnik determinacji przyjmuje wartości z przedziału. Dopasowanie modelu jest tym lepsze, im wartość jest bliższa jedności. Współczynnik można wyliczyć ze wzoru: c) Test istotności poszczególnych współczynników regresji. naprzeciw Statystyka testowa ma postać:, gdzie oznacza -ty element na przekątnej macierzy. Obszar krytyczny ma postać:
Zadanie 1. Zaproponować model regresji liniowej dla zmiennej zależnej ciśnienie skurczowe. Przykładowy model regresji liniowej: gdzie: zmienna zależna oznaczająca ciśnienie skurczowe; parametr związany z płcią; parametr związany z nadużywaniem papierosów; parametr związany z nadużywaniem alkoholu; parametr związany z wiekiem; błąd losowy. Komendy, które należy wpisać w pakiecie R (pierwsza komenda wczytuje zbiór danych do pakietu R; druga komenda powoduje utworzenie odpowiedniego modelu liniowego; trzecia komenda wypisuje niezbędne wyniki): data=read.table("c:/users/student/desktop/cisnienie1.txt",header=f,sep="\t") lm1=lm(data[,1]~data[,3]+data[,4]+data[,5]+data[,6]) summary(lm1) Należy pamiętać, że ścieżka do pliku z danymi dla każdego użytkownika może być różna! Wyniki z program R: Call: lm(formula = data[, 1] ~ data[, 3] + data[, 4] + data[, 5] + data[, 6]) Residuals: Min 1Q Median 3Q Max -83.534-14.638 5.919 21.832 70.376 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 113.4688 8.1110 13.990 < 2e-16 *** data[, 3] -2.5019 4.8261-0.518 0.604761 data[, 4] 18.7965 4.8110 3.907 0.000129 ***
data[, 5] 29.4754 4.6495 6.339 1.57e-09 *** data[, 6] 0.1148 0.1453 0.790 0.430685 --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 Residual standard error: 31.39 on 195 degrees of freedom Multiple R-squared: 0.2822, Adjusted R-squared: 0.2675 F-statistic: 19.17 on 4 and 195 DF, p-value: 2.594e-13 Interpretacja wyników: Estymator dla parametru związanego z płcią (zmienna binarna) wynosi -2.5019. Skoro w naszych danych mężczyzna zakodowany jest jako 1 natomiast kobieta jako 0 oznacza to, że pacjent będący mężczyzną ma ciśnienie skurczowe o 2.5019 mmhg mniejsze niż kobieta. Estymator dla parametru związanego z nadużywaniem papierosów (zmienna binarna) wynosi 18.7965 i oznacza to, że osoba paląca papierosy ma ciśnienie skurczowe większe o 18.7965 mmhg. Estymator dla parametru związanego z nadużywaniem alkoholu (zmienna binarna) wynosi 29.4754 i oznacza to, że osoba pijąca alkohol ma ciśnienie skurczowe większe o 24.4754 mmhg. Estymator dla parametru związanego z wiekiem pacjenta (zmienna ciągła) wynosi 0.1148 i oznacza to, że wraz ze wzrostem wieku pacjenta o jeden rok jego ciśnienie skurczowe wzrośnie o 0.1148 mmhg. Wyraz wolny (Intercept) wynosi 113.4688 oznacza to, że jeśli wszystkie pozostałe zmienne będą równe 0 (czyli pacjent będzie kobietą, nie palącą i nie pijącą zaraz po urodzeniu) to wartość ciśnienia skurczowego pacjenta będzie wynosić 113.4688 mmhg. Można teraz wyliczyć ciśnienie skurczowe dla pacjenta będącego mężczyzną, który nie pije alkoholu, ale jest w wieku 40 lat i pali papierosy. Zadanie 2. Jakie ciśnienie skurczowe ma mężczyzna nadużywający papierosów? Aby wyliczyć jakie ciśnienie skurczowe ma mężczyzna nadużywający papierosów należy rozważyć model liniowy:
ciśnienie skurczowe parametr związany z płcią; parametr związany z nadużywaniem papierosów; składnik losowy modelu; Komendy, które należy wpisać do pakietu R: lm2=lm(data[,1]~data[,3]+data[,4]) summary(lm2) Wyniki z program R: Call: lm(formula = data[, 1] ~ data[, 3] + data[, 4]) Residuals: Min 1Q Median 3Q Max -82.708-22.062 6.115 27.980 63.465 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 129.062 4.752 27.159 < 2e-16 *** data[, 3] -2.527 5.270-0.479 0.632 data[, 4] 27.646 5.025 5.501 1.16e-07 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 Residual standard error: 34.31 on 197 degrees of freedom Multiple R-squared: 0.1338, Adjusted R-squared: 0.125 F-statistic: 15.22 on 2 and 197 DF, p-value: 7.166e-07 Czyli ciśnienie skurczowe dla mężczyzny nadużywającego papierosów wynosi: Zadanie 3. Wybrać model z największą wartością współczynnika.
Model z największą wartością współczynnika to model w którym użyjemy jako zmiennych niezależnych: ciśnienie rozkurczowe, płeć, nadużywanie papierosów i alkoholu oraz wiek. Wartość tego współczynnika dla powyższego modelu wynosi 0.8159. Zadanie 4 i 5. Co to jest kryterium? Zaproponować model z najlepszą wartością kryterium. (Jakie wartości dla tego kryterium są najlepsze?). Kryterium Informacyjne Akaike ( ) - kryterium wyboru pomiędzy modelami statystycznymi o różnej liczbie zmiennych objaśniających. Wzór na kryterium ma postać: gdzie jest funkcją wiarygodności dla danego modelu, a liczbą parametrów w tym modelu. Im mniejsze wartości kryterium tym model jest lepiej dopasowany. Aby sprawdzić w pakiecie R wartość kryterium najpierw zaproponować model, np.: dla danego modelu liniowego należy lm4=lm(data[,1]~data[,3]+data[,4]+data[,5]+data[,6]) a następnie wywołać komendę: AIC(lm4) Wynik z pakietu R: 1953.136 Według kryterium ciśnienie rozkurczowe. najlepszy model to taki w którym jedną zmienną niezależną jest Model wprowadzony do pakietu R: AIC(lm(data[,1]~data[,2])) Wartość kryterium dla powyższego modelu: 1675.95 Zadanie 6. Czy współczynników regresji dla najlepszego modelu są statystycznie istotne? Istotność współczynników regresji przeanalizujemy na podstawie modelu z zadania 1. Wystarczy w tabeli zaznaczonej na czerwono umieć interpretować ostatnią kolumnę, w której zawarte są p -wartości. Wybieramy poziom istotności na którym będziemy testować istotność współczynników regresji. Jeśli p - wartość jest mniejsza od założonego poziomu istotności to współczynnik regresji jest statystycznie istotny. W naszym przypadku zakładamy, że i dlatego istotne są: wyraz wolny oraz nadużywanie papierosów i alkoholu. Dodatkowo przy współczynnikach istotnych pojawiają się pewne oznaczenia:
*** oznaczają współczynnik istotny od poziomu istotności 0.001 ** oznaczają współczynnik istotny od poziomu istotności 0.01 * oznacza współczynnik istotny od poziomu istotności 0.05 oznacza współczynnik istotny od poziomu istotności 0.1 Zadanie 7. Sprawdzić, czy reszty mają rozkład normalny funkcja w R: shapiro.test()? Aby wyznaczyć reszty (czyli czynnik losowy ) należy skorzystać ze wzoru: Aby wydobyć reszty z danego modelu należy wywołać komendę (w tym przypadku np. dla modelu z zadania 2): res=lm2$residuals Następnie należy użyć testu Shapiro-Wilka przy pomocy komendy: shapiro.test(res) Shapiro-Wilk normality test data: res W = 0.9688, p-value = 0.0002027 Ponownie patrzymy na p wartość. Zakładamy, że od. To odrzucamy hipotezę zerową o normalności reszt. i skoro p wartość jest mniejsza Zadanie 8. Utworzyć nową kolumnę danych o nazwie nadciśnienie w taki sposób że, człowiek mający problemy z ciśnieniem skurczowym lub rozkurczowym będzie przyjmował wartości 1, a człowiek nie mający nadciśnienia wartości 0. Łatwo dorobić nową kolumnę w Excelu. Aby zrobić to samo w R należy wpisać komendę (pierwsza komenda tworzy zmienną nadciśnienie złożoną z samych zer o długości równej ilości pacjentów w zbiorze data; następnie wykonuje się pętla for dla każdego z pacjentów i w przypadku nadciśnienia przypisuje danemu pacjentowi jedynkę): nadcisnienie=rep(0,dim(data)[1]) for (i in 1:dim(data)[1]) { } if (data[i,1]>140 && data[i,2]>100) nadcisnienie[i]=1
Albo w prostszy sposób (pierwsza komenda dodaje nową siódmą kolumnę do zbioru danych data złożoną z samych 0; druga komenda w przypadku nadciśnienia zamienia 0 na 1 ): data=cbind(data,rep(0,200)) data[data[,1]>140 & data[,2]>100,7]=1 Regresja logistyczna wprowadzenie a) Często do czynienia mamy z obserwacjami, które można podzielić na dwie kategorie (np. chory lub zdrowy). Zmienne zależne mogą być wtedy interpretowane jako sukces lub porażka. Wówczas Zmienne nazywane są zmiennymi binarnymi i przyjmuje się, że mają one rozkład Bernoulliego B(1,p i ), gdzie p i można interpretować jako prawdopodobieństwo sukcesu. b) Model regresji logistycznej: gdzie są zmiennymi objaśniającymi, natomiast są parametrami modelu. Zachodzi również związek: Zadanie 9. Utworzyć model regresji logistycznej dla zmiennej nadciśnienie i sprawdzić czy bardziej prawdopodobne jest że nadciśnienie ma kobieta nadużywająca alkoholu i papierosów czy mężczyzna nadużywający obydwu używek. Model regresji logistycznej w R wywołuje się przy pomocy komendy glm(nadcisnienie~data[,3]+data[,4]+data[,5]) lub jeżeli utworzyliśmy siódmą kolumnę w zadaniu 8 to używamy komendy glm(data[,7]~data[,3]+data[,4]+data[,5]) Uzyskane wyniki: Call: glm(formula = nadcisnienie ~ data[, 3] + data[, 4] + data[, 5]) Coefficients: (Intercept) data[, 3] data[, 4] data[, 5] 0.12764-0.07858 0.27527 0.50563 Degrees of Freedom: 199 Total (i.e. Null); 196 Residual Null Deviance: 48.38
Residual Deviance: 28.14 AIC: 185.3 Korzystamy ze wzoru: Dla mężczyzn mamy: Dla kobiet mamy: Czyli większe szanse na nadciśnienie mają kobiety.