ÎncepețiÎncepe gratuit

Transformarea intrărilor: „bățul de hochei"

În acest exercițiu, vei construi un model pentru a prezice prețul în funcție de suprafața locuinței. Setul de date houseprice, deja încărcat pentru tine, conține coloanele:

  • price: prețul locuinței în unități de 1.000 $
  • size: suprafața

O diagramă de dispersie a datelor arată că relația este puternic neliniară: o formă de „băț de hochei", în care prețul rămâne relativ constant pentru locuințele mici, dar crește abrupt pe măsură ce suprafața crește. Funcțiile pătratice și cubice sunt adesea forme funcționale potrivite pentru a modela astfel de relații. Rețineți că nu există neapărat o explicație „fizică" pentru care price ar fi legat de pătratul lui size; funcția pătratică este pur și simplu o aproximare a relației observate.

scatterplot

Vei antrena un model care prezice prețul ca funcție de pătratul suprafeței și vei analiza cum se potrivește acesta pe datele de antrenament.

Deoarece ^ este și un simbol pentru interacțiuni, folosește funcția I() (docs) pentru a trata expresia x^2 „ca atare": adică drept pătratul lui x, nu ca interacțiunea lui x cu el însuși.

exampleFormula = y ~ I(x^2)

Acest exercițiu face parte din cursul

Învățare supervizată în R: Regresia

Vezi cursul

Instrucțiuni pentru exercițiu

  • Scrie o formulă, fmla_sqr, care exprimă prețul ca funcție de pătratul suprafeței. Afișeaz-o.
  • Antrenează un model model_sqr pe date folosind fmla_sqr.
  • Pentru comparație, antrenează un model liniar model_lin pe date folosind formula price ~ size.
  • Completează spațiile libere pentru a:
    • genera predicții pe datele de antrenament din cele două modele;
    • restructura predicțiile într-o singură coloană pred folosind pivot_longer();
    • compara vizual predicțiile celor două modele cu datele reale. Care dintre ele se potrivește mai bine?

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# houseprice is available
summary(houseprice)

# Create the formula for price as a function of squared size
(fmla_sqr <- ___)

# Fit a model of price as a function of squared size (use fmla_sqr)
model_sqr <- ___

# Fit a model of price as a linear function of size
model_lin <- ___

# Make predictions and compare
houseprice %>% 
    mutate(pred_lin = ___(___),       # predictions from linear model
           pred_sqr = ___(___)) %>%   # predictions from quadratic model
    pivot_longer(cols = c('pred_lin', 'pred_sqr'), names_to = 'modeltype', values_to = 'pred') %>% # pivot the predictions
    ggplot(aes(x = size)) + 
       geom_point(aes(y = ___)) +                   # actual prices
       geom_line(aes(y = ___, color = modeltype)) + # the predictions
       scale_color_brewer(palette = "Dark2")
Editează și rulează codul