Data s ktorými sme sa stretli v predchádzajúcich cvičeniach nám priamo určovali a ešte aj budú určovať vesmír. Vo väčšine prípadov dokonca obsahovali len nutné a relevantné regresory. Realny svet nám túto výhodu neposkytuje, zväčša si regresory musíme zvoliť v rámci možností sami.

V oboch prípadoch sa môžeme dostať do situácie kde si musíme vybrať model. Na to bolo navrhnutých niekoľko metód, mier, ale aj trikov aby ste sa vedeli rozhodnúť. V nasledujúcom cvičení nebudeme uvažovať transformácie ani diagnostiku modelu, ukážeme si len umelo výhody a nevýchody jednotlivých metód.

Výber modelu vs. p-hodnota

Vezmime dáta seatpos, tento krát obzrite dáta, ale nevykreslujte žiadne obrázky. Kedže je regresorov 9 na konci okom skontrolujeme či by model vyhovoval nášmu odhadu. Ako prvé použite Backward elimination na výber vhodného modelu pričom začnite plným modelom s hipcenter. Hranicu signifikanicie zoberte 5%.

##               Estimate Std. Error t value Pr(>|t|)
## (Intercept) 436.432128 166.571619  2.6201  0.01384
## Age           0.775716   0.570329  1.3601  0.18427
## Weight        0.026313   0.330970  0.0795  0.93718
## HtShoes      -2.692408   9.753035 -0.2761  0.78446
## Ht            0.601345  10.129874  0.0594  0.95307
## Seated        0.533752   3.761894  0.1419  0.88815
## Arm          -1.328069   3.900197 -0.3405  0.73592
## Thigh        -1.143119   2.660024 -0.4297  0.67056
## Leg          -6.439046   4.713860 -1.3660  0.18245
## 
## n = 38, p = 9, Residual SE = 37.72029, R-Squared = 0.69
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) 436.84207  163.64104  2.6695  0.01214
## Age           0.76574    0.53590  1.4289  0.16337
## Weight        0.02897    0.32244  0.0898  0.92901
## HtShoes      -2.13409    2.53896 -0.8405  0.40726
## Seated        0.54959    3.68958  0.1490  0.88258
## Arm          -1.30087    3.80833 -0.3416  0.73504
## Thigh        -1.09039    2.46534 -0.4423  0.66145
## Leg          -6.40612    4.60272 -1.3918  0.17421
## 
## n = 38, p = 8, Residual SE = 37.08854, R-Squared = 0.69
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) 427.50734  124.38767  3.4369 0.001696
## Age           0.77573    0.51579  1.5040 0.142709
## HtShoes      -2.08235    2.43289 -0.8559 0.398613
## Seated        0.58582    3.60833  0.1624 0.872083
## Arm          -1.28258    3.74154 -0.3428 0.734067
## Thigh        -1.11535    2.41013 -0.4628 0.646758
## Leg          -6.35716    4.49663 -1.4138 0.167396
## 
## n = 38, p = 7, Residual SE = 36.49034, R-Squared = 0.69
##              Estimate Std. Error t value  Pr(>|t|)
## (Intercept) 436.54632  109.52662  3.9858 0.0003645
## Age           0.76671    0.50493  1.5185 0.1387169
## HtShoes      -1.77157    1.47856 -1.1982 0.2396483
## Arm          -1.33899    3.66826 -0.3650 0.7174980
## Thigh        -1.19826    2.31930 -0.5166 0.6089553
## Leg          -6.49097    4.35267 -1.4913 0.1456860
## 
## n = 38, p = 6, Residual SE = 35.93092, R-Squared = 0.69
##              Estimate Std. Error t value  Pr(>|t|)
## (Intercept) 445.79773  105.14516  4.2398 0.0001695
## Age           0.65246    0.39097  1.6688 0.1046161
## HtShoes      -1.91711    1.40497 -1.3645 0.1816360
## Thigh        -1.37321    2.23923 -0.6133 0.5439130
## Leg          -6.95019    4.11181 -1.6903 0.1003972
## 
## n = 38, p = 5, Residual SE = 35.45591, R-Squared = 0.68
##              Estimate Std. Error t value  Pr(>|t|)
## (Intercept) 456.21365  102.80779  4.4375 9.092e-05
## Age           0.59983    0.37792  1.5872   0.12173
## HtShoes      -2.30226    1.24520 -1.8489   0.07318
## Leg          -6.82975    4.06926 -1.6784   0.10244
## 
## n = 38, p = 4, Residual SE = 35.12909, R-Squared = 0.68
##             Estimate Std. Error t value  Pr(>|t|)
## (Intercept) 493.7938   102.1923  4.8320 2.662e-05
## HtShoes      -2.4955     1.2658 -1.9714   0.05662
## Leg          -6.3693     4.1461 -1.5362   0.13347
## 
## n = 38, p = 3, Residual SE = 35.88337, R-Squared = 0.66
##              Estimate Std. Error t value  Pr(>|t|)
## (Intercept) 565.59266   92.57945  6.1093 4.967e-07
## HtShoes      -4.26209    0.53906 -7.9065 2.207e-09
## 
## n = 38, p = 2, Residual SE = 36.55490, R-Squared = 0.63

Vybraný citát z Faraway (2015): “We include it here because the method is still used but should be discouraged.”


Výber modelu na základe informačného kritéria

Informačné kritériá sú jedni z najpoužívanejších pri voľbe modelu. Kritérium je miera vzdialenosti modelu od dát, to znamená, že neporovnávame sub modely, ale vzdialenosti. Spočítajte AIC pomocou rovnomennej funkcie plného modelu.

## [1] 393.4634

Číslo samé o sebe nám veľa nepovie jediné čo vieme je, že by malo byť čo najbližšie k 0. Nula je už zase nie dobre lebo to by znamenalo, že model sú dáta. Keby máme iný podľa nás “vhodnejší” model môžeme porovnať.

Pred tým než začneme je vhodné si urobiť pod množinu modelov, takých ktoré budú obsahovať vždy o jeden parameter menej. Na to môzeme použiť funkciu regsubsets z knižnice leaps. Funkcia používa niekoľko algoritmov na vytvorenie “najvhodnejších” modelov. Je to len jedna z možnosí ako urobiť podmnožinu modelov.

summary(regsubsets(hipcenter~.,data=seatpos))
## Subset selection object
## Call: regsubsets.formula(hipcenter ~ ., data = seatpos)
## 8 Variables  (and intercept)
##         Forced in Forced out
## Age         FALSE      FALSE
## Weight      FALSE      FALSE
## HtShoes     FALSE      FALSE
## Ht          FALSE      FALSE
## Seated      FALSE      FALSE
## Arm         FALSE      FALSE
## Thigh       FALSE      FALSE
## Leg         FALSE      FALSE
## 1 subsets of each size up to 8
## Selection Algorithm: exhaustive
##          Age Weight HtShoes Ht  Seated Arm Thigh Leg
## 1  ( 1 ) " " " "    " "     "*" " "    " " " "   " "
## 2  ( 1 ) " " " "    " "     "*" " "    " " " "   "*"
## 3  ( 1 ) "*" " "    " "     "*" " "    " " " "   "*"
## 4  ( 1 ) "*" " "    "*"     " " " "    " " "*"   "*"
## 5  ( 1 ) "*" " "    "*"     " " " "    "*" "*"   "*"
## 6  ( 1 ) "*" " "    "*"     " " "*"    "*" "*"   "*"
## 7  ( 1 ) "*" "*"    "*"     " " "*"    "*" "*"   "*"
## 8  ( 1 ) "*" "*"    "*"     "*" "*"    "*" "*"   "*"

Vráťme sa k téme, AIC vieme spočítať aj sami podľa vzorca \[nlog(RSS/n)+2p\] spočítajte AIC submodelov z funkcie. (hint. RSS viete dostať zo summary funkcie zavolaním $rss)

Teraz vezmime funkciu step ktorá tiež používa AIC na voľbu vhodného modelu a použite ju na náš plný model.

## 
## Call:
## lm(formula = hipcenter ~ Age + HtShoes + Leg, data = seatpos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -79.269 -22.770  -4.342  21.853  60.907 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 456.2137   102.8078   4.438 9.09e-05 ***
## Age           0.5998     0.3779   1.587   0.1217    
## HtShoes      -2.3023     1.2452  -1.849   0.0732 .  
## Leg          -6.8297     4.0693  -1.678   0.1024    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 35.13 on 34 degrees of freedom
## Multiple R-squared:  0.6813, Adjusted R-squared:  0.6531 
## F-statistic: 24.22 on 3 and 34 DF,  p-value: 1.437e-08

Adjustované R^2

Máme podmožinu submodelov, čo je veľká výhoda a porovnajme ich \(R^2\). Vo výstupe funkcie regsubsets nájdeme pod $adjr2 tiež zo summary.


Mallow Cp

Podobným nástrojom je aj miera Mallow Cp \[C_p=\frac{RSS_p}{\sigma^2} + 2p -n.\] Tu prichádza, znova vhod použitie funkcie regsubsets, ktorá tiež počíta aj tieto hodnoty a zavolať ich môžete pomocou $cp na summary.


Teraz sa pozrime na dáta

Treba si uvedomiť, že použitie akéjkoľvek funkcie na vytvorenie submodelov má svoje hranice a možnosti. Preto ich rady treba brať informačne. Využite vaše skúsenosti nadobudnuté z predchádzajúcich kurzov a pokúste sa zložiť model podľa toho.


Samostatná práca

Vezmite dáta stackloss a fitnite do dát podľa vás optimálny model s temp ako odozvou, pričom využite:

  1. Backward elimination.
  2. Informačné kriteria AIC a BIC.
  3. \(R^2\)
  4. Mallow Cp.
  5. Vlastné oči.