modellguete-testset

regression
performance
rmse
string
Published

November 8, 2023

Aufgabe

Berechnen Sie die Modellgüte (RMSE) im Test-Sample.

Gehen Sie von folgenden Annahmen aus.

Hinweise:











Lösung

Setup

library(tidymodels)
── Attaching packages ────────────────────────────────────── tidymodels 1.1.1 ──
✔ broom        1.0.5     ✔ recipes      1.0.8
✔ dials        1.2.0     ✔ rsample      1.2.0
✔ dplyr        1.1.3     ✔ tibble       3.2.1
✔ ggplot2      3.4.4     ✔ tidyr        1.3.0
✔ infer        1.0.5     ✔ tune         1.1.2
✔ modeldata    1.2.0     ✔ workflows    1.1.3
✔ parsnip      1.1.1     ✔ workflowsets 1.0.1
✔ purrr        1.0.2     ✔ yardstick    1.2.0
── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ──
✖ purrr::discard() masks scales::discard()
✖ dplyr::filter()  masks stats::filter()
✖ dplyr::lag()     masks stats::lag()
✖ recipes::step()  masks stats::step()
• Search for functions across packages at https://www.tidymodels.org/find/
d_train <- read.csv("https://raw.githubusercontent.com/sebastiansauer/yacsda-bikerental/main/data/bikeshare_train.csv")
d_test <- read.csv("https://raw.githubusercontent.com/sebastiansauer/yacsda-bikerental/main/data/bikeshare_control.csv")

Mittelwert der AV im Train-Sample berechnen

mean_count_train_sample <- 
  d_train |> 
  summarise(count_avg = mean(count))

mean_count_train_sample
  count_avg
1  703.7913
d_test <-
  d_test |> 
  mutate(pred = 704)

Anstelle von 704 könnten Sie auch Ihre eigenen Vorhersagen Ihrer Modelle einsetzen, etwa:

d_test <-
  d_test |> 
  mutate(pred = meine_vorhersagen)

Modellgüte im Test-Sample berechnen

d_test |> 
  rmse(truth = count,
       estimate = pred)
# A tibble: 1 × 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rmse    standard        646.

Für R-Quadrat geht das analog:

d_test |> 
  rsq(truth = count,
       estimate = pred)
Warning: A correlation computation is required, but `estimate` is constant and
has 0 standard deviation, resulting in a divide by 0 error. `NA` will be
returned.
# A tibble: 1 × 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rsq     standard          NA

Leider ist das R-Quadrat in diesem Fall (per Definition) Null: Der Mittelwert als Vorhersagewert ist was “R-Quadrat gleich Null” meint.

(Darüber hinaus wird das R-Quadrat hier auf Basis der Korrelation berechnet, und wir haben einen konstanten Wert bei pred).


Categories:

  • regression
  • modelling
  • performance
  • rmse
  • string