tidymodels-ames-01

ds1
tidymodels
prediction
yacsda
statlearning
num
Published

May 17, 2023

Aufgabe

Berechnen Sie ein lineares Modell mit tidymodels und zwar anhand des ames Datensatzes.

Modellgleichung: Sale_Price ~ Gr_Liv_Area, data = ames.

Berechnen Sie ein multiplikatives (exponenzielles) Modell.

Gesucht ist R-Quadrat als Maß für die Modellgüte im Train-Sample.

Hinweise:

  • Fixieren Sie die Zufallszahlen auf den Startwert 42.











Lösung

library(tidymodels)
data(ames)

Multiplikatives Modell:

ames <- 
  ames %>% 
  mutate(Sale_Price = log10(Sale_Price))

Datensatz aufteilen:

ames_split <- initial_split(ames, prop = 0.80, strata = Sale_Price)
ames_train <- training(ames_split)
ames_test  <-  testing(ames_split)

Modell definieren:

m1 <-
  linear_reg() # engine ist "lm" im Default

Modell fitten:

fit1 <-
  m1 %>% 
  fit(Sale_Price ~ Gr_Liv_Area, data = ames)
fit1 %>% pluck("fit") 

Modellgüte im Train-Sample:

fit1_performance <-
  fit1 %>% 
  extract_fit_engine()  # identisch zu pluck("fit")

Modellgüte:

fit1_performance %>% summary()

R-Quadrat via easystats:

library(easystats)
fit1_performance %>% r2()  # rmse()
tidy(fit1_performance)  # ähnlich zu parameters()
sol <- 0.484

Categories:

  • ds1
  • tidymodels
  • prediction
  • yacsda
  • statlearning
  • num