John Tukey là giám đốc sáng lập (founding chairman) khoa thống kê của Princeton và nay là Trung tâm thống kê và học máy - Center for Statistics and Machine Learning của trường đại học này ở tuổi 35.
Vốn tốt nghiệp đại học chuyên ngành .. Hóa Học từ đại học Brown trước khi theo sự nghiệp của một nhà thống kê học (có vẻ trùng hợp với tình huống của William Sealy Gosset - vốn là một nhà hóa học nhưng người ta lại nhớ đến ông nhiều hơn với tư cách người phát minh ra thống kê t mà chúng ta vẫn thường sử dụng) ông được cho có nhiều đóng góp to lớn cho bộ môn khoa học này. Một trong những đóng góp đó chính là Boxplot (hay Box Plot) - một công cụ hình ảnh hiệu quả cho việc chẩn đoán phân phối của dữ liệu chỉ dựa trên các phân vị của dữ liệu.
Ông cũng là người tham gia thiết kế chước máy tính điện tử cùng John von Neumann nhằm phục vụ cho nhu cầu tính toán phát sinh từ dự án Mahattan nhằm chế tạo quả bom nguyên tử đầu tiên trên thế giới và cũng được coi là người tiên phong trong của khoa học máy tính. John Tukey cũng là người đầu tiên sử dụng thuật ngữ “bit”, “software” trong nghành khoa học máy tính.
Princeton năm 2015 đã long trọng kỉ niệm 100 năm ngày sinh của John Tukey vào ngày 18 tháng 9 bằng một hội thảo về các nghiên cứu của ông và website của Center for Statistics and Machine Learning có hẳn một mục về tiểu sử và đóng góp của ông cho khoa học dữ liệu, khoa học thống kê.
Boxplot ra đời năm 1969 và được chính thức mô tả chi tiết trong cuốn sách Exploratory Data Analysis vào năm 1977. Là công cụ hình ảnh hóa phân phối của dữ liệu tuy đơn giản nhưng hiệu quả hơn Histogram và Density vì nó chỉ dựa trên các phân vị Q1, Q2 và Q3 của dữ liệu. Không những thế Boxplot còn có thể thể hiện được các quan sát bất thường (Outliers).
Lợi thế rõ ràng của Box Plot là nó sử dụng median (tức Q2) chứ không phải mean - thước đo dễ bị bóp méo bởi các outliers khi phác thảo bức chân dung, hình dáng của dữ liệu.
R có rất nhiều gói có thể sử dụng để tạo ra Boxplot. Để minh họa chúng ta sử dụng gói ggplot2 với bộ số liệu iris.
library(tidyverse)
## Loading tidyverse: ggplot2
## Loading tidyverse: tibble
## Loading tidyverse: tidyr
## Loading tidyverse: readr
## Loading tidyverse: purrr
## Loading tidyverse: dplyr
## Conflicts with tidy packages ----------------------------------------------
## filter(): dplyr, stats
## lag(): dplyr, stats
# Vẽ đơn giản:
iris %>%
ggplot(aes(Species, Sepal.Length)) +
geom_boxplot()
# Tô màu đỏ, chẳng hạn, nếu muốn nhấn mạnh đến outliers:
iris %>%
ggplot(aes(Species, Sepal.Length)) +
geom_boxplot(outlier.color = "red")
# Hiển thị thêm mean nếu muốn:
iris %>%
ggplot(aes(Species, Sepal.Length)) +
geom_boxplot(outlier.color = "red") +
stat_summary(fun.y = mean, colour = "blue", geom = "point")
# Boxplot của cả 4 biến số cho 3 loài hoa diên vĩ + đầy đủ chỉ dẫn:
iris %>%
gather(Variable, Value, -Species) %>%
ggplot(aes(Species, Value, fill = Species, color = Species)) +
geom_boxplot(show.legend = FALSE, alpha = 0.4) +
facet_wrap(~ Variable, scales = "free") +
theme_bw() +
labs(x = NULL,
y = NULL,
title = "An Example of Boxplot",
caption = "Data Source: Iris data set by R. Fisher (1936)")
#-------------------------------------------------------------
# So sánh với hai công cụ hình ảnh hóa phân phối của dữ liệu
# là Histogram và Density
#--------------------------------------------------------------
iris %>%
gather(Variable, Value, -Species) %>%
ggplot(aes(Value, fill = Species, color = Species)) +
geom_histogram(alpha = 0.3) +
facet_wrap(~ Variable) +
theme_bw() +
theme(legend.position = "top") +
labs(x = NULL,
y = NULL,
title = "An Example of Histogram",
caption = "Data Source: Iris data set by R. Fisher (1936)")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
iris %>%
gather(Variable, Value, -Species) %>%
ggplot(aes(Value, fill = Species, color = Species)) +
geom_density(alpha = 0.3) +
facet_wrap(~ Variable) +
theme_bw() +
theme(legend.position = "top") +
labs(x = NULL,
y = NULL,
title = "An Example of Density Plot",
caption = "Data Source: Iris data set by R. Fisher (1936)")
Basford, Kaye E; John W Tukey (1998). Graphical analysis of multiresponse data. New York: Chapman & Hall/CRC.
John W. Tukey (1977). Exploratory Data Analysis. New York: Addison-Wesley.
Benjamini, Y. (1988). “Opening the Box of a Boxplot”. The American Statistician. 42 (4): 257–262. JSTOR 2685133. doi:10.2307/2685133.
Rousseeuw, P. J.; Ruts, I.; Tukey, J. W. (1999). “The Bagplot: A Bivariate Boxplot”. The American Statistician. 53 (4): 382–387. JSTOR 2686061. doi:10.2307/2686061.