Lấy mẫu từ phân phối có điều kiện
Chỉ gọi predict() trên một mô hình sẽ luôn trả về cùng một giá trị cho cùng một bộ biến dự đoán. Điều này dẫn đến biến thiên nhỏ trong dữ liệu được bù khuyết. Để tăng biến thiên, nhằm giúp phép bù khuyết tái hiện được độ biến thiên của dữ liệu gốc, bạn có thể lấy mẫu từ phân phối có điều kiện. Cụ thể, thay vì luôn dự đoán 1 mỗi khi mô hình cho xác suất lớn hơn 0.5, bạn sẽ rút dự đoán từ một phân phối nhị thức được mô tả bởi xác suất do mô hình trả về.
Bạn sẽ tiếp tục phần mã đã viết ở bài trước. Dòng sau đã được gỡ bỏ:
preds <- ifelse(preds >= 0.5, 1, 0)
Nhiệm vụ của bạn là thay chỗ đó bằng việc lấy mẫu từ một phân phối nhị thức. Chỉ cần một dòng mã thôi!
Bài tập này là một phần của khóa học
Xử lý dữ liệu khuyết bằng Imputation trong R
Hướng dẫn bài tập
- Ghi đè
predsbằng cách lấy mẫu từ một phân phối nhị thức (binomial). - Truyền độ dài của
predslàm đối số thứ nhất. - Đặt size bằng 1.
- Đặt
probbằng các xác suất do mô hình trả về.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)
}