Xử lý dữ liệu thiếu trong R
Nicholas Tierney
Statistician
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
vis_miss(airquality)

gg_miss_var(airquality, facet=Month)

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
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
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()

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()

Bù dữ liệu tốt và kém
naniar::impute_mean_all()
simputation::impute_lm()

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()

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

Ả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