Evaluatie van eindmodellen

R voor SAS-gebruikers

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

Eindopdrachten

Cursusafsluiting

  • Voer regressiemodellen uit

    • voor verschillende voorspellers
    • voor verschillende groepen
  • Kies beste modellen

    • sla modelresultaten op
    • extraheer en toon fitstatistieken

Laat je skills zien

  • Evalueer en vergelijk modellen

    • met grafische visualisaties
  • Rapporteer beste verbanden

    • tussen variabelen
    • totaal en per groep
R voor SAS-gebruikers

Modellen vergelijken

# Run lm() voor diffht op bmi, sla model op
lmdiffhtbmi <- lm(diffht ~ bmi,
                  data = daviskeep)

# Run lm() voor diffht op weight, sla model op
lmdiffhtwt <- lm(diffht ~ weight,
                 data = daviskeep)
# Run summary() voor elk model, sla resultaten op
smrylmdiffhtbmi <- summary(lmdiffhtbmi)
smrylmdiffhtwt <- summary(lmdiffhtwt)
R voor SAS-gebruikers

Modellen vergelijken

# Toon r.squared voor gewichtmodel
smrylmdiffhtwt$r.squared
# Toon r.squared voor BMI-model
smrylmdiffhtbmi$r.squared
# Vergelijk AIC's voor beide modellen
AIC(lmdiffhtbmi, lmdiffhtwt)

[1] 0.003281645

[1] 0.00121824
            df      AIC
lmdiffhtbmi  3 788.0816
lmdiffhtwt   3 787.7052
R voor SAS-gebruikers

Modellen per groep - mannen vs. vrouwen

# Plot diffht op weight, per sex
ggplot(daviskeep,
       aes(diffht, weight)) +
  geom_point() +
  geom_smooth(method = "lm") +
  facet_wrap(vars(sex)) +
  ggtitle("Hoogteverschillen
          voorspeld door gewicht,
          modelfit per geslacht")

plot van diffht op weight per geslacht

R voor SAS-gebruikers

Regressie op subset

sas proc reg where-optie vergelijkbaar met subset-optie voor R-functie lm

R voor SAS-gebruikers

sas proc reg where-optie vergelijkbaar met subset-optie voor R-functie lm

R voor SAS-gebruikers

Modellen fitten voor subsets

# lm() van diffht op weight voor vrouwen
lmdiffhtwtF <- lm(diffht ~ weight,
                  subset = (sex == "F"),
                  data = daviskeep)

# lm() van diffht op weight voor mannen
lmdiffhtwtM <- lm(diffht ~ weight,
                  subset = (sex == "M"),
                  data = daviskeep)
# Run summary() voor elk model en sla op
smrylmdiffhtwtF <- summary(lmdiffhtwtF)
smrylmdiffhtwtM <- summary(lmdiffhtwtM)
R voor SAS-gebruikers

Modellen fitten voor subsets

# r.squared voor model alleen vrouwen
smrylmdiffhtwtF$r.squared
# r.squared voor model alleen mannen
smrylmdiffhtwtM$r.squared

[1] 4.00807e-05

[1] 0.00804139
R voor SAS-gebruikers

Laten we afsluiten met een paar modellen om abalone-leeftijden te voorspellen!

R voor SAS-gebruikers

Preparing Video For Download...