조건부분포에서 추출하기
모델에 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)
}