LoslegenKostenlos starten

Vergleich von RMSE und Root-Mean-Squared Relativfehler

In dieser Übung zeigst du, dass das Log-Transformieren einer monetären Zielgröße vor dem Modellieren den mittleren relativen Fehler verbessert (aber den RMSE erhöht), verglichen mit dem direkten Modellieren der monetären Zielgröße. Du vergleichst die Ergebnisse von model.log aus der vorherigen Übung mit einem Modell (model.abs), das das Einkommen direkt modelliert.

Die Datensätze income_train und income_test wurden zusammen mit deinem Modell model.log vorab geladen.

Ebenfalls verfügbar:

  • model.abs: ein Modell, das das Einkommen direkt an die Inputs anpasst, mit der Formel

    Income2005 ~ Arith + Word + Parag + Math + AFQT

Diese Übung ist Teil des Kurses

<Kurs>Überwachtes Lernen in R: Regression</Kurs>
Kurs ansehen

Übungsanweisungen

  • Fülle die Lücken aus, um Vorhersagen der Modelle zu income_test hinzuzufügen.
    • Vergiss nicht, bei den Vorhersagen von model.log die Exponentialfunktion anzuwenden, um die Log-Transformation rückgängig zu machen!
  • Fülle die Lücken aus, um die Vorhersagen mit pivot_longer() zu transformieren und die Residuen sowie den relativen Fehler zu berechnen.
  • Fülle die Lücken aus, um den RMSE und den relativen RMSE für die Vorhersagen zu berechnen.
    • Welches Modell hat den größeren absoluten Fehler? Welches den größeren relativen Fehler?

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# fmla.abs is available
fmla.abs

# model.abs is available
summary(model.abs)

# Add predictions to the test set
income_test <- income_test %>%
  mutate(pred.absmodel = ___(___, income_test),        # predictions from model.abs
         pred.logmodel = ___(___(___, income_test)))   # predictions from model.log

# pivot_longer the predictions and calculate residuals and relative error
income_long <- income_test %>% 
  pivot_longer(names_to = 'modeltype', values_to = 'pred', cols=c('pred.absmodel', 'pred.logmodel')) %>%
  mutate(residual = ___,   # residuals
         relerr   = ___)   # relative error

# Calculate RMSE and relative RMSE and compare
income_long %>% 
  group_by(modeltype) %>%      # group by modeltype
  summarize(rmse     = ___,    # RMSE
            rmse.rel = ___)    # Root mean squared relative error
Code bearbeiten und ausführen