Zacznij terazZacznij za darmo

Zachowywanie brakujących danych

W niektórych sytuacjach sam fakt, że dana wartość jest niedostępna, stanowi istotną informację. Wartości NA można zachować w osobnej kategorii „brakujące" za pomocą klasyfikacji grubej (ang. coarse classification).

Klasyfikacja gruba pozwala uprościć dane i poprawić interpretowalność modelu. Polega ona na grupowaniu wartości w przedziały. Dzięki tej technice wszystkie wartości NA możesz umieścić we własnym przedziale.

W filmie pokazaliśmy ideę klasyfikacji grubej na przykładzie długości zatrudnienia. Kod z tego przykładu został odtworzony w skrypcie R po prawej stronie – możesz go dostosować, aby przeprowadzić klasyfikację grubą dla zmiennej int_rate.

To ćwiczenie jest częścią kursu

Modelowanie ryzyka kredytowego w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Wprowadź niezbędne zmiany w podanym kodzie, aby przeprowadzić klasyfikację grubą zmiennej int_rate i zapisz wynik do nowej zmiennej o nazwie ir_cat.
    • Najpierw zastąp loan_data$emp_cat przez loan_data$ir_cat wszędzie, gdzie ta nazwa występuje w skrypcie R, a loan_data$emp_length zastąp przez loan_data$int_rate.
    • Następnie podziel wartości na kategorie "0-8", "8-11", "11-13.5" i "13.5+" (zastępując "0-15", "15-30", "30-45" i "45+"). Operatory > i <= używaj dokładnie tak, jak w filmie. Pamiętaj, aby zmienić liczby w wyrażeniach warunkowych (15, 30 i 45 zastąp odpowiednio przez 8, 11 i 13,5).
  • Przyjrzyj się nowej zmiennej ir_cat, wywołując plot(loan_data$ir_cat).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Make the necessary replacements in the coarse classification example below 
loan_data$emp_cat <- rep(NA, length(loan_data$emp_length))

loan_data$emp_cat[which(loan_data$emp_length <= 15)] <- "0-15"
loan_data$emp_cat[which(loan_data$emp_length > 15 & loan_data$emp_length <= 30)] <- "15-30"
loan_data$emp_cat[which(loan_data$emp_length > 30 & loan_data$emp_length <= 45)] <- "30-45"
loan_data$emp_cat[which(loan_data$emp_length > 45)] <- "45+"
loan_data$emp_cat[which(is.na(loan_data$emp_length))] <- "Missing"

loan_data$emp_cat <- as.factor(loan_data$emp_cat)

# Look at your new variable using plot()
Edytuj i uruchom kod