Punkt 1 i 2 - Przygotowanie wykresów rozrzytu oraz macierzy korelacji próbkowych

ggpairs(dane, progress = FALSE)

Na powyższym wykresie zostały zamieszczone 91 wykresów rozrzutu dla każdej możliwej pary zmiennych, 14 wykresów gęstości dla każdej z 14 zmiennych oraz 91 współczynników korelacji tworzących macierz korelacji próbówkowych.

  1. Najmocniejszy liniowy wpływ na zmienną objaśnianą Rate wydają się mieć następujące zmienne Ex0, Ex1 oraz LF.

  2. Wśród 14 zmiennych istnieje przynajmniej jedna para silnie skorelowanych zmiennych. Jest to para Ex0, Ex1.

  3. Obserwacje odstające można zauważyć szczególnie w zmiennej M oraz NW.

(a’) Analizując współczynniki korelacji, możemy stwierdzić, że rzeczywiście zmienne Ex0 i Ex1 mają najsilniejszy wpływ na zmienną Rate. Jednak typowana wcześniej zmienna LF nie ma tak silnego wpływu, za to zmienna W ma na pewno większy wpływ na zmienną Rate.

(b’) Współczynnik korelacji pomiędzy zmienną Ex0 oraz Ex1 potwierdza wcześniejsze przypuszczenia o bardzo silnej współliniowości pomiędzy tymi zmiennymi. Watro też zauważyć, że istnieje jeszcze jedna para o dość silnej współliniowości, którą jest W i X, dla której współczynnik korelacji wynosi -0,844.

Punkt 3 - Konstrukcja modelu regresji liniowej

model = lm(Rate~., dane)
summ(model, digits = 3)
Observations 47
Dependent variable Rate
Type OLS linear regression
F(13,33) 6.970
0.733
Adj. R² 0.628
Est. S.E. t val. p
(Intercept) -514.598 119.349 -4.312 0.000
Age 1.078 0.438 2.463 0.019
S 5.514 13.291 0.415 0.681
Ed 1.512 0.671 2.255 0.031
Ex0 1.877 1.139 1.648 0.109
Ex1 -0.879 1.233 -0.713 0.481
LF 0.058 0.136 0.422 0.676
M -0.003 0.003 -1.008 0.321
N -0.088 0.125 -0.702 0.488
NW -0.002 0.011 -0.189 0.851
U1 -0.276 0.391 -0.706 0.485
U2 1.769 0.899 1.967 0.058
W 0.079 0.106 0.744 0.462
X 0.546 0.207 2.643 0.012
Standard errors: OLS

Punkt 4 - Rozwiązanie problemu współliniowości

car::vif(model)
##       Age         S        Ed       Ex0       Ex1        LF         M 
##  2.501218  3.349179  4.654195 94.667707 98.170372  2.513295  1.525319 
##         N        NW        U1        U2         W         X 
##  1.883550  1.424095  4.113162  4.769138  8.685194  5.475663

Jak widać, dla zmiennej Ex0 i Ex1, wartość współczynnika vif jest dużo większa od 10, co potwierdza tylko nasze wcześniejsze obserwacje, o silnej współliniowości tych dwóch zmiennych.

model = lm(Rate~., dane %>% select(-Ex1))
car::vif(model)
##      Age        S       Ed      Ex0       LF        M        N       NW 
## 2.499514 3.334296 4.500491 4.062298 2.286636 1.496679 1.883292 1.420519 
##       U1       U2        W        X 
## 4.100673 4.757645 8.672481 5.445268

Po usunięciu z modelu zmiennej Ex1, żaden z wskaźników inflacji wariancji nie przekracza wartości 10. Nie ma więc potrzeby usuwania innych zmiennych.

Punkt 5 - Identyfikacja i usunięcie wpływowych obserwacji

p = diagPlot(model)
grid.arrange(p$hii, p$Di, p$rstud, p$DFFITS, 
             nrow=2, ncol=2, 
             top=paste0("Identyfikacja wpływowych obserwacji ",
                        "przy użyciu wykresów diagnostycznych"))

W celu zidentyfikowania obserwacji wpływowych, zostały przygotowane cztery wykresy diagnostyczne. Po analizie tych czterech wykresów należy stwierdzić, że najbardziej wpływową obserwacją jest obserwacja nr 45. Dodatkowo zdecydowałam się na usunięcie 30 i 16 obserwacji.

model = lm(Rate~., dane[c(-16, -30, -45),] %>% select(-Ex1))

p = diagPlot(model)
grid.arrange(p$hii, p$Di, p$rstud, p$DFFITS, 
             nrow=2, ncol=2, 
             top=paste0("Identyfikacja wpływowych obserwacji ",
                        "przy użyciu wykresów diagnostycznych"))

Punkt 6 - Ponowne zbudowanie modelu regresji liniowej

summ(model, digits = 3)
Observations 44
Dependent variable Rate
Type OLS linear regression
F(12,31) 8.682
0.771
Adj. R² 0.682
Est. S.E. t val. p
(Intercept) -716.563 160.267 -4.471 0.000
Age 1.113 0.434 2.565 0.015
S -5.117 15.751 -0.325 0.747
Ed 1.656 0.645 2.567 0.015
Ex0 0.993 0.248 3.997 0.000
LF -0.037 0.155 -0.235 0.815
M 0.152 0.233 0.652 0.519
N -0.046 0.142 -0.327 0.746
NW -0.024 0.071 -0.339 0.737
U1 -0.541 0.475 -1.139 0.263
U2 1.830 0.858 2.133 0.041
W 0.170 0.113 1.506 0.142
X 0.884 0.255 3.470 0.002
Standard errors: OLS

Punkt 7 - Wyznaczenie wartości współczynników determinacji

Współczynnik determinacji \(R^2\) wynosi 0.771 Skorygowany współczynnik determinacji \(adjR^2\) wynosi 0.682

Punkt 8 - Zastosowanie regresji krokowej

Regresja krokowa została przeprowadzona przy użyciu funkcji step ze standardowego pakietu R. Aby niepotrzebnie nie wydłużać raportu, kolejne kroki funkcji step nie zostały tutaj umieszczone. Poniżej znajduje się wyłącznie kod realizujący tą operację.

Przygotowanie wykresu współczynników regresji.

dane1 =dane[c(-16, -30, -45),] %>% select(-Ex1)
modelMax = lm(Rate~., dane1)
modelMin = lm(Rate~1, dane1)
model = lm(Rate~., dane1)

mBack = step(modelMax, scope = list(upper = modelMax,lower = modelMin),
             direction = "backward")
mForw= step(modelMin, scope = list(upper = modelMax, lower = modelMin),
            direction = "forward")
mBoth= step(model, scope = list(upper = modelMax, lower = modelMin),
            direction = "both")
wykres = ggmlceoff(mBack, mForw, mBoth, 
          scale=1, lab.size=4, digits = 2,
          Rsqu.Pred = 5, Rsqu.Est = 75)
wykres =
  ggpar(wykres,
        title = "Skalowane współczynniki regresji dla modeli zoptymalizowanych funkcją step",
        caption = "A. Fiołka",
        palette = "jco")

wykres

Do oceny liniowego wpływu zmiennych objaśniających na zmienną objaśnianą został użyty specjalny wykres. Na wykresie tym zostały przedstawione przeskalowane wartości współczynników regresji, wraz z ich przedziałami ufności. W wielkości punktu zakodowana jest p-wartość. Dodatkowo na wykresie została umieszczona tabelka z współczynnikami determinacji \(R^2\) oraz z skorygowanymi współczynnikami determinacji \(adjR^2\).

Po uważnym przeanalizowaniu tego wykresu, można dojść do wniosku, że w naszym przypadku metoda step, niezależnie od kierunku eliminacji predyktorów, dawała w efekcie ten sam zestaw zmiennych objaśniających o dokładnie tych samych wartościach współczynników \(\beta_i\).

  1. Z pośród sześciu predyktorów pozostałych w modelu po procesie eliminacji, tylko jeden z nich W jest niezależny liniowo od zmiennej objaśnianej Rate. Wielkość punktów na wykresie świadczy o tym, że p-wartość testu jest pomiędzy 0.05, a 0.1. Jeżeli zatem przyjąć poziom istotności \(\alpha = 0.05\), dla tego predyktora nie możemy odrzucić hipotezy zerowej, mówiącej o braku liniowej zależności od zmiennej objaśnianej.
wykres = ggmlceoff(model, mBoth, 
          scale=1, lab.size=4, digits = 2,
          Rsqu.Pred = 5, Rsqu.Est = 75)
wykres =
  ggpar(wykres,
        title = "Skalowane współczynniki regresji dla modelu pełnego oraz zoptymalizowanego",
        caption = "A. Fiołka",
        palette = "jco")

wykres

  1. Analizując powyższy wykres można wyciągnąć kilka wniosków. Po pierwsze, dla wszystkich predyktorów, które zostały w procesie eliminacji krokowej usunięte z modelu, p-wartość w modelu pełnym była zawsze większa od 0.1. Po drugie, należy zauważyć, że w przypadku zmiennej W, w wyniku eliminacji krokowej, p-wartości zmalała i znalazła się w zakresie pomiędzy 0.05 a 0.1. Dla pozostałych predyktorów p-wartości są w tym samym zakresie. Ostatnim wnioskiem jest fakt, że po wyeliminowaniu nieistotnych predyktorów z modelu, współczynnik determinacji \(R^2\) nieznacznie zmalał. Natomiast skorygowany \(adjR^2\) wzrósł.

Punkt 9 - Analiza rezyduów

p = diagPlot(mBoth)
p$qq

Analizując powyższy wykres można stwierdzić, że badany model spełnia założenie odnośnie normalności reszt.

grid.arrange(p$rvvar$Age, p$rvvar$Ed, nrow=1, ncol=2)

grid.arrange(p$rvvar$Ex0, p$rvvar$U2, nrow=1, ncol=2)

grid.arrange(p$rvvar$W, p$rvvar$X, nrow=1, ncol=2)

Jak widać na powyższych wykresach, zależność rezyduów w funkcji poszczególnych zmiennych jest dość dobra, a rezydua są w miarę równomiernie rozmieszczone wokół wartości 0. Najgorsza liniowość jest dla zmiennej Age oraz X.

p$rvf

Wykres rezyduów funkcji wartości dopasowanych również świadczy o dość dobrym spełnieniu założeń modelu regresji liniowej przez nasz model. Po pierwsze, nie widać na nim zależności rezyduów od wartości dopasowanych. Po drugie, wariancja rezyduów jest w miarę stała (poza punktami 11, 8 i 28, dla których standaryzowana wartość była większa od 2).