Kom igångKom igång gratis

Urval från betingad fördelning

Att anropa predict() på en modell ger alltid samma värde för samma prediktorvärden. Det leder till liten variabilitet i imputerad data. För att öka variabiliteten – så att imputeringen återspeglar variabiliteten i originaldata – kan vi i stället göra urval från den betingade fördelningen. Det innebär att vi, i stället för att alltid förutsäga 1 när modellen returnerar en sannolikhet över 0,5, drar förutsägelsen från en binomialfördelning baserad på sannolikheten som modellen returnerar.

Du arbetar vidare på koden från föregående övning. Följande rad har tagits bort:

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

Din uppgift är att ersätta den med ett urval från en binomialfördelning. Det är bara en rad kod!

Den här övningen är en del av kursen

Hantering av saknade värden med imputering i R

Visa kurs

Övningsinstruktioner

  • Skriv över preds genom att sampla från en binomialfördelning.
  • Skicka längden på preds som första argument.
  • Sätt size till 1.
  • Sätt prob till sannolikheterna som modellen returnerar.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

 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)
}
Redigera och kör kod