LoslegenKostenlos loslegen

Fehlende Werte initialisieren & über Variablen iterieren

Wie du gerade gesehen hast, füllt impute_lm() nicht unbedingt alle fehlenden Werte. Damit du wirklich alle imputierst, solltest du die fehlenden Werte zunächst mit einer einfachen Methode initialisieren, zum Beispiel der Hot-Deck-Imputation aus dem vorherigen Kapitel, bei der der zuletzt beobachtete Wert nach vorne übertragen wird.

Außerdem reicht eine einzelne Imputation in der Regel nicht aus. Sie basiert auf den grob initialisierten Werten und kann verzerrt sein. Ein sinnvoller Ansatz ist, über die Variablen zu iterieren und sie nacheinander an den Stellen zu imputieren, an denen sie ursprünglich fehlten.

In dieser Übung initialisierst du zuerst die fehlenden Werte mit Hot-Deck-Imputation und durchläufst dann fünfmal air_temp und humidity aus den tao-Daten, um sie per linearer Regression zu imputieren. Los geht’s!

Diese Übung ist Teil des Kurses

Fehlende Daten mit Imputationen in R behandeln

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere die fehlenden Werte mit der hotdeck()-Imputation.
  • Erstelle eine boolesche Maske für die Stellen, an denen humidity ursprünglich fehlte, und weise sie missing_humidity zu.
  • Setze innerhalb der For-Schleife humidity in tao_imp auf NA an den Stellen, an denen es ursprünglich fehlte, und nutze dafür die von dir erstellte boolesche Maske.
  • Imputiere innerhalb der For-Schleife humidity in tao_imp mit linearer Regression, verwende dafür year, latitude, sea_surface_temp und air_temp als Prädiktoren, und weise das Ergebnis erneut tao_imp zu.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Initialize missing values with hot-deck
tao_imp <- ___(tao)

# Create boolean masks for where air_temp and humidity are missing
missing_air_temp <- tao_imp$air_temp_imp
missing_humidity <- ___

for (i in 1:5) {
  # Set air_temp to NA in places where it was originally missing and re-impute it
  tao_imp$air_temp[missing_air_temp] <- NA
  tao_imp <- impute_lm(tao_imp, air_temp ~ year + latitude + sea_surface_temp + humidity)
  # Set humidity to NA in places where it was originally missing and re-impute it
  tao_imp$humidity[___] <- ___
  tao_imp <- ___(___, ___ ~ year + latitude + sea_surface_temp + ___)
}
Code bearbeiten und ausführen