Phân tích dữ liệu định lượng: Tính toán Trung vị và Phân vị bằng ngôn ngữ R

Đo lường xu hướng tập trung: Trung vị và Phân vị

Trong thống kê mô tả cho dữ liệu định lượng, việc xác định vị trí trung tâm của dữ liệu là bước nền tảng. Ba chỉ số thường được sử dụng bao gồm giá trị trung bình (mean), trung vị (median) và số_MODE (mode). Trong đó, trung vị và các phân vị đóng vai trò quan trọng đặc biệt khi xử lý các bộ dữ liệu có phân bố không đối xứng hoặc chứa các giá trị ngoại lai.

Trung vị (Median)

Trung vị là giá trị nằm ở vị trí chính giữa khi một tập hợp dữ liệu được sắp xếp theo thứ tự tăng dần hoặc giảm dần. Khác với giá trị trung bình cộng, trung vị có đặc tính "bền vững" trước các giá trị cực đoan. Do đó, trong trường hợp dữ liệu bị lệch (skewed distribution), trung vị thường phản ánh chính xác hơn xu hướng trung tâm so với trung bình cộng.

Để tính toán trung vị trong ngôn ngữ R, chúng ta có thể sử dụng hàm cơ bản như sau:

# Giả sử 'dataset' là dataframe chứa dữ liệu
# và 'age_col' là cột chứa độ tuổi
trung_vi_tuoi <- median(dataset$age_col)
print(trung_vi_tuoi)

Kết quả trả về có thể là:

[1] 23

Trong ví dụ trên, giá trị trung vị của độ tuổi là 23. Con số này không bị ảnh hưởng bởi việc có vài mẫu vật có độ tuổi rất cao hoặc rất thấp.

Bảng dưới đây so sánh sự khác biệt giữa Trung vị và Trung bình cộng:

Đặc điểm Trung vị (Median) Trung bình cộng (Mean)
Định nghĩa Giá trị nằm ở giữa sau khi sắp xếp dữ liệu Tổng tất cả các giá trị chia cho số lượng quan sát
Phương pháp tính Sắp xếp dữ liệu, lấy giá trị giữa (nếu chẵn thì lấy trung bình của 2 giá trị giữa) Tổng giá trị / Số lượng mẫu
Độ nhạy cảm với giá trị ngoại lai Không nhạy cảm (kháng chịu tốt) Rất nhạy cảm (dễ bị kéo lệch bởi giá trị cực đại/tiểu)
Ứng dụng Dữ liệu có phân bố lệch hoặc chứa nhiễu Dữ liệu phân bố chuẩn, đối xứng
Ví dụ thực tế Thu nhập trung vị phản ánh mức sống của đại đa số người dân Thu nhập trung bình có thể bị nâng cao giả tạo bởi các tỷ phú

Phân vị (Percentiles)

Phân vị là thước đo biểu thị vị trí tương đối của một giá trị trong tập dữ liệu. Một phân vị thứ P (P-th percentile) là giá trị mà tại đó có P% số liệu trong tập hợp nhỏ hơn hoặc bằng giá trị đó.

Các loại phân vị phổ biến bao gồm:

  • Tứ phân vị (Quartiles):
    • Q1 (Phân vị 25): 25% dữ liệu nằm dưới giá trị này.
    • Q2 (Phân vị 50): Tương đương với Trung vị.
    • Q3 (Phân vị 75): 75% dữ liệu nằm dưới giá trị này.
  • Ngũ phân vị (Quintiles): Chia dữ liệu thành 5 phần bằng nhau (tương ứng với các phân vị 20%, 40%, 60%, 80%).

Ví dụ tính Tứ phân vị trong R

Để tính các tứ phân vị cho cột dữ liệu độ tuổi trong bộ dữ liệu, ta sử dụng hàm quantile():

# Tính Q1, Q2, Q3 (tương ứng 25%, 50%, 75%)
tu_phan_vi <- quantile(dataset$age_col, probs = c(0.25, 0.50, 0.75))
print(tu_phan_vi)

Kết quả hiển thị:

 25%  50%  75% 
  19   23   26 

Ví dụ tính Ngũ phân vị trong R

Đối với ngũ phân vị, chúng ta cần chia khoảng từ 0 đến 1 thành 5 phần đều. Dưới đây là ví dụ với một dữ liệu giả lập về thời gian:

# Tạo dataframe giả lập
time_info <- data.frame(
  month_idx = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
  year_val = c(2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029),
  weekday = c(1, 2, 3, 4, 5, 6, 0, 1, 2, 3),
  day_of_year = c(1, 31, 60, 91, 121, 152, 182, 213, 244, 274),
  is_dst = c(1, 0, 1, 0, 1, 0, 1, 0, 1, 0)
)

# Tính toán ngũ phân vị cho cột tháng
# Sử dụng seq để tạo dãy xác suất 0%, 20%, ..., 100%
ngu_phan_vi_kq <- quantile(time_info$month_idx, probs = seq(0, 1, by = 0.20))

print(ngu_phan_vi_kq)

Kết quả đầu ra sẽ là:

  0%  20%  40%  60%  80% 100% 
 1.0  2.8  4.6  6.4  8.2 10.0 

Đăng vào ngày 24 tháng 6 lúc 17:34