Biến Định Lượng

Phân phối của một biến định lượng có thể được trực quan bằng các biểu đồ như histogram, biểu đồ mật độ xác xuất hoặc biểu đồ chấm (dot plot):

1. Biểu đồ Histogram

chúng ta sử dụng tập dữ liệu Marriage để trực quan dữ liệu

data(Marriage, package = "mosaicData")
library(ggplot2)
ggplot(Marriage, mapping = aes(x = age))+
  geom_histogram(fill = "indianred", color = "white")+
  labs(title = "Participants by age", 
       x = "Age",
       y = "Frequency")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

quan sát biểu đồ cho chúng ta thấy rằng đối tượng tham gia trong khảo sát đều có độ tuổi dưới 20 và một nhóm khác trong độ tuổi 40.

Một giá trị quan trọng trong biểu đồ histogram đó chính là bins. Đây là số lượng các nhóm được chia tổ trong tập dữ liệu. Mặc định số lượng bins=30 cột

ggplot(Marriage, mapping = aes(x = age))+
  geom_histogram(fill = "indianred", color = "black", bins = 20)+
  labs(title = "Partitcipants by age",
       x = "Age",
       y = "Frequency",
       subtitle = "Number of bins = 20")

Sử dụng tham số binwidth: xác định độ rộng của mỗi cột

ggplot(Marriage, mapping = aes(x = age))+
  geom_histogram(fill = "indianred", color = "black", bins = 20, binwidth = 5)+ # độ rộng mỗi cột là 5
  labs(title = "Partitcipants by age",
       x = "Age",
       y = "Frequency",
       subtitle = "Number of bins = 20")

sử dụng biến ..count..: là một biến đặc biệt được sử dụng trong quá trình trực quan hóa dữ liệu bằng ggplot2

# biến count sẽ tự động tính số lượng quan sát trong từng bin và hiển thị nó trên biểu đồ
ggplot(Marriage, mapping = aes(x = age, y = ..count../sum(..count..)))+
  geom_histogram(fill = "indianred", color = "black", bins = 20, binwidth = 5)+ # độ rộng mỗi cột là 5
  labs(title = "Partitcipants by age",
       x = "Age",
       y = "Frequency",
       subtitle = "Number of bins = 20")+
  scale_y_continuous(labels = scales::percent)
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

2. Biểu Đồ Kernel Density

Một cách thay thế cho biểu đồ histogram là biểu đồ mật độ xác suất. Về kỹ thuật, ước lượng một độ xác suất là phương pháp phi tham số dành cho ước lượng hàm mật độ xác suất dành cho một biến ngẫu nhiên liên tục.

Chúng sẽ cố gắng vẽ một biểu đồ histogram được làm mịn (a smoothed histogram), trong đó phần diện tích dưới biểu đồ này có giá trị là 1

ggplot(Marriage, mapping = aes(x = age))+
  geom_density(fill = "indianred", linewidth = 1, alpha = 1)+
  labs(title = "Participants by age")

Độ mịn (smoothness) được cho bởi giá trị bw. Để tìm ra giá trị mặc định, chúng ta sử dụng hàm bw.nrd0. các giá trị lớn của bw sẽ cho biểu đồ được làm mịn nhiều hơn trong khi giá trị này nhỏ sẽ cho biểu đồ ít được làm mịn hơn

# tìm giá trị làm mịn mặc định
bw.nrd0(Marriage$age)
## [1] 5.181946
ggplot(Marriage, mapping = aes(x = age))+
  geom_density(fill = "indianred", bw=1)+
  labs(title = "Participants by age",
       subtitle = "bandwidth = 1")

chúng ta thấy rằng giá trị mặc định của bandwith = 5.18, khi chọn lại giá trị này bằng 1 thì biểu đồ ít mịn hơn nhưng lại chi tiết hơn cho dữ liệu

3. Biểu Đồ Dot

Một phương pháp thay thế khác cho biểu đồ histogram là biểu đồ dot chart. Biến định lượng sẽ được phân chia thành các tổ (bins), tuy nhiên khi này các điểm dữ liệu lại được biểu diễn bằng các dấu chấm. Mỗi dấu chấm đại diện cho một điểm dữ liệu, biểu đồ này phù hợp cho số lượng quan sát nhỏ (thông thường dưới 150 quan sát).

ggplot(Marriage, mapping = aes(x = age))+
  geom_dotplot(fill = "gold", color = "black")+
  labs(title = "Participants by age",
       y = "Proportion",
       x = "Age")
## Bin width defaults to 1/30 of the range of the data. Pick better value with
## `binwidth`.