Zacznij terazZacznij za darmo

Modelowanie logarytmicznie przekształconych dochodów

W tym ćwiczeniu przećwiczysz modelowanie z logarytmicznie przekształconą zmienną docelową, a następnie odwrócisz transformację, by z powrotem uzyskać wartości w jednostkach pieniężnych. Wczytane dane zawierają dochody badanych z 2005 roku (Income2005) oraz wyniki kilku testów uzdolnień przeprowadzonych w 1981 roku:

  • Arith
  • Word
  • Parag
  • Math
  • AFQT (percentyl w teście Armed Forces Qualifying Test)

Dane zostały już podzielone na zbiory treningowy i testowy (income_train oraz income_test) i są wstępnie wczytane. Zbudujesz model log(dochodu) na podstawie wyników testów, a następnie przekształcisz log(dochodu) z powrotem na dochód.

To ćwiczenie jest częścią kursu

Nadzorowane uczenie maszynowe w R: regresja

Zobacz kurs

Instrukcje do ćwiczenia

  • Wywołaj summary() na income_train$Income2005, aby zobaczyć statystyki opisowe dochodów w zbiorze treningowym.
  • Zapisz formułę wyrażającą log(Income2005) jako funkcję pięciu testów i przypisz ją do zmiennej fmla.log. Wyświetl ją.
  • Dopasuj liniowy model log(Income2005) do danych income_train: model.log.
  • Użyj model.log, aby przewidzieć dochody na zbiorze income_test. Wynik zapisz w kolumnie logpred.
    • Wywołaj summary() na logpred i sprawdź, że wartości bardzo różnią się skalą od wartości Income2005.
  • Odwróć transformację logarytmiczną, aby uzyskać przewidywania w jednostkach pieniężnych: exp(income_test$logpred).
    • Wywołaj summary() na pred.income i sprawdź, że wartości mają teraz podobną skalę do Income2005.
  • Uzupełnij brakujące fragmenty, aby narysować wykres punktowy przewidywanych dochodów w stosunku do rzeczywistych dochodów w zbiorze testowym.

Interaktywne ćwiczenie praktyczne

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

# Examine Income2005 in the training set
___

# Write the formula for log income as a function of the tests and print it
(fmla.log <- ___)

# Fit the linear model
model.log <-  ___

# Make predictions on income_test
income_test$logpred <- ___
summary(income_test$logpred)

# Convert the predictions to monetary units
income_test$pred.income <- ___
summary(income_test$pred.income)

#  Plot predicted income (x axis) vs income
ggplot(___, aes(x = ___, y = ___)) + 
  geom_point() + 
  geom_abline(color = "blue")
Edytuj i uruchom kod