ÎncepețiÎncepe gratuit

Extragere din distribuția condiționată

Apelând pur și simplu predict() pe un model, vei obține întotdeauna aceeași valoare pentru aceleași valori ale predictorilor. Acest lucru duce la o variabilitate redusă în datele imputate. Pentru a o crește, astfel încât imputarea să replice variabilitatea din datele originale, putem extrage valori din distribuția condiționată. Concret, în loc să prezicem întotdeauna 1 atunci când modelul returnează o probabilitate mai mare de 0,5, putem extrage predicția dintr-o distribuție binomială descrisă de probabilitatea returnată de model.

Vei lucra pe codul scris în exercițiul anterior. Următoarea linie a fost eliminată:

  preds <- ifelse(preds >= 0.5, 1, 0)

Sarcina ta este să înlocuiești această linie cu o extragere dintr-o distribuție binomială. E vorba de o singură linie de cod!

Acest exercițiu face parte din cursul

Gestionarea datelor lipsă prin imputare în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Suprascrie preds prin eșantionare dintr-o distribuție binomială.
  • Transmite lungimea lui preds ca prim argument.
  • Setează size la 1.
  • Setează prob la probabilitățile returnate de model.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

 impute_logreg <- function(df, formula) {
  # Extract name of response variable
  imp_var <- as.character(formula[2])
  # Save locations where the response is missing
  missing_imp_var <- is.na(df[imp_var])
  # Fit logistic regression mode
  logreg_model <- glm(formula, data = df, family = binomial)
  # Predict the response
  preds <- predict(logreg_model, type = "response")
  # Sample the predictions from binomial distribution
  preds <- ___(___, size = ___, prob = ___)
  # Impute missing values with predictions
  df[missing_imp_var, imp_var] <- preds[missing_imp_var]
  return(df)
}
Editează și rulează codul