Inicjalizacja brakujących wartości i iteracja po zmiennych
Jak właśnie widzisz, wywołanie impute_lm() nie zawsze uzupełnia wszystkie brakujące wartości. Aby mieć pewność, że żadna z nich nie zostanie pominięta, warto najpierw zainicjalizować braki prostą metodą – na przykład imputacją hot-deck poznaną w poprzednim rozdziale, która po prostu przenosi ostatnią zaobserwowaną wartość.
Poza tym pojedyncza imputacja zazwyczaj nie wystarcza. Opiera się na podstawowych wartościach inicjalnych i może być obciążona błędem. Właściwe podejście polega na iterowaniu po zmiennych i imputowaniu ich po jednej, wyłącznie w miejscach, gdzie pierwotnie brakowało danych.
W tym ćwiczeniu najpierw zainicjalizujesz brakujące wartości za pomocą imputacji hot-deck, a następnie pięciokrotnie wykonasz pętlę po zmiennych air_temp i humidity ze zbioru danych tao, imputując je za pomocą regresji liniowej. Do dzieła!
To ćwiczenie jest częścią kursu
Obsługa brakujących danych z imputacją w R
Instrukcje do ćwiczenia
- Zainicjalizuj brakujące wartości za pomocą imputacji
hotdeck(). - Utwórz maskę logiczną wskazującą miejsca, gdzie pierwotnie brakowało wartości
humidity, i przypisz ją domissing_humidity. - Wewnątrz pętli for ustaw wartości
humiditywtao_impnaNAw miejscach, gdzie pierwotnie brakowało danych – użyj do tego utworzonej maski logicznej. - Wewnątrz pętli for zaimputuj
humiditywtao_impza pomocą regresji liniowej, używającyear,latitude,sea_surface_tempiair_tempjako predyktorów, a wynik przypisz z powrotem dotao_imp.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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 + ___)
}