Chúc mừng!

Xử lý dữ liệu thiếu trong R

Nicholas Tierney

Statistician

Chương 1

Thiếu dữ liệu là gì

Thiếu dữ liệu là các giá trị lẽ ra phải được ghi nhưng không được ghi.

Cách tóm tắt thiếu dữ liệu

miss_var_summary(airquality)
A tibble: 6 x 3
  variable n_miss pct_miss 
  <chr>     <int>    <dbl> 
1 Ozone        37    24.2  
2 Solar.R       7     4.58 
3 Wind          0     0    
4 Temp          0     0    
5 Month         0     0    
6 Day           0     0
Xử lý dữ liệu thiếu trong R

Chương 1

vis_miss(airquality)

gg_miss_var(airquality, facet=Month)

Xử lý dữ liệu thiếu trong R

Chương 2

Tìm giá trị thiếu thay thế

miss_scan_count(data = pacman, 
                search = list("N/A"))

Thay thế giá trị thiếu thay thế

replace_with_na(pacman, 
                replace = list(
                  year = c("N/A"),
                  score = c("N/A")))

Thiếu dữ liệu ngầm định

frogger_tidy <- frogger %>% 
  complete(time, name)

Phụ thuộc thiếu dữ liệu

  • MCAR
  • MAR
  • MNAR
Xử lý dữ liệu thiếu trong R

Chương 3

ma trận bóng, dữ liệu nabular

nabular(airquality)
 # A tibble: 153 x 12
    Ozone Solar.R  Wind  Temp 
    <int>   <int> <dbl> <int> 
  1   41     190   7.4    67  
  2   36     118   8      72  
  3   12     149  12.6    74  
 # ... with 150 more rows, and 3 
 # more variables: Month <int>, Day <int>,
 # Ozone_NA <fct>, Solar.R_NA <fct>, 
 # Wind_NA <fct>, Temp_NA <fct>,
 # Month_NA <fct>, Day_NA <fct>

Khám phá thiếu dữ liệu, liên kết tóm tắt với giá trị

oceanbuoys %>%
  bind_shadow() %>%
  group_by(humidity_NA) %>%
  summarize(
    wind_ew_mean = mean(wind_ew))
 # A tibble: 2 x 2
   humidity_NA wind_ew_mean
   <fct>              <dbl>
 1 !NA                -3.78
 2 NA                 -3.30
Xử lý dữ liệu thiếu trong R

Chương 3

Giá trị thay đổi theo tình trạng thiếu.

nabular(oceanbuoys) %>%
  ggplot(aes(x = wind_ew, 
             color = air_temp_c_NA)) + 
  geom_density()

mật độ ggplot theo nhiệt độ không khí

Trực quan hóa thiếu dữ liệu trên 2 biến.

ggplot(oceanbuoys,
       aes(x = wind_ew,
           y = air_temp_c)) + 
  geom_miss_point()

gg-miss-point

Xử lý dữ liệu thiếu trong R

Chương 4

Bù dữ liệu tốt và kém

naniar::impute_mean_all()
simputation::impute_lm()

impuate-mean-image

So sánh giá trị bù và gốc

ggplot(ocean_imp_track, 
       aes(x = air_temp_c, 
           fill = air_temp_c_NA)) + 
  geom_histogram()

impute-hist

Xử lý dữ liệu thiếu trong R

Chương 4

Dùng các mô hình bù khác nhau

so sánh bù theo mô hình tuyến tính với bù theo trung bình

Ảnh hưởng của mô hình bù lên suy luận tiếp theo

# A tibble: 12 x 6
   imp_model term  estimate
   <chr>     <chr>    <dbl>
 1 cc        (Int… -7.35e+2
 2 cc        air_…  8.64e-1
 3 cc        humi…  3.41e-2
 4 cc        year   3.69e-1
 5 imp_lm_w… (Int… -1.71e+3
 6 imp_lm_w… air_…  3.78e-1
# ... 6 more rows
# ... with 3 more variables:
#   std.error <dbl>,
#   statistic <dbl>,
#   p.value <dbl>
Xử lý dữ liệu thiếu trong R

Đây chỉ là khởi đầu!

Xử lý dữ liệu thiếu trong R

Xin cảm ơn!

Xử lý dữ liệu thiếu trong R

Preparing Video For Download...