시작하기무료로 시작하기

조건부분포에서 추출하기

모델에 predict()만 호출하면 동일한 예측 변수 값에 대해 항상 같은 값을 반환해요. 이렇게 하면 대치값의 변동성이 작아집니다. 원래 데이터의 변동성을 잘 반영하도록 이를 늘리려면, 조건부분포에서 값을 추출하면 돼요. 즉, 모델이 0.5보다 큰 확률을 출력할 때마다 항상 1을 예측하는 대신, 모델이 반환한 확률로 정의된 이항분포에서 예측값을 추출하는 방식입니다.

이전 연습 문제에서 작성한 코드를 이어서 사용해요. 다음 줄이 제거되었습니다:

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

이 자리를 이항분포에서 추출하는 코드로 채우세요. 한 줄이면 됩니다!

이 연습은 강의의 일부입니다

R에서 대치(Imputation)로 결측치 다루기

강의 보기

연습 안내

  • 이항분포에서 샘플링하여 preds를 덮어쓰세요.
  • 첫 번째 인수로 preds의 길이를 전달하세요.
  • size는 1로 설정하세요.
  • prob에는 모델이 반환한 확률을 사용하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

 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)
}
코드 편집 및 실행