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
Anleitung zur Übung
- Initialisiere die fehlenden Werte mit der
hotdeck()-Imputation. - Erstelle eine boolesche Maske für die Stellen, an denen
humidityursprünglich fehlte, und weise siemissing_humidityzu. - Setze innerhalb der For-Schleife
humidityintao_impaufNAan den Stellen, an denen es ursprünglich fehlte, und nutze dafür die von dir erstellte boolesche Maske. - Imputiere innerhalb der For-Schleife
humidityintao_impmit linearer Regression, verwende dafüryear,latitude,sea_surface_tempundair_tempals Prädiktoren, und weise das Ergebnis erneuttao_impzu.
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 + ___)
}