Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Ghi đè preds bằng cách lấy mẫu từ một phân phối nhị thức (binomial).
  • Truyền độ dài của preds làm đối số thứ nhất.
  • Đặt size bằng 1.
  • Đặt prob bằ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)
}
Chỉnh sửa và Chạy Mã