Biểu đồ Q-Q để đánh giá tính chuẩn
Biểu đồ quantile-quantile (Q-Q) là phương pháp trực quan tốt hơn để phát hiện dữ liệu không phân phối chuẩn. Nói chung, biểu đồ Q-Q so sánh các bách phân vị (quantile) của dữ liệu với các bách phân vị của một phân phối tham chiếu; nếu dữ liệu đến từ một phân phối cùng loại (sai khác chỉ ở tỉ lệ và vị trí), bạn sẽ thấy các điểm nằm gần trên một đường thẳng. Bạn cũng cần biết rằng bậc tự do (df) là số giá trị hoặc quan sát có thể ảnh hưởng đến hệ thống bạn đang làm việc.
Trong video, bạn đã thấy cách sinh 1000 điểm dữ liệu chuẩn bằng hàm rnorm(), cách dùng qqnorm() để tạo biểu đồ Q-Q, và qqline() để thêm đường thẳng tham chiếu:
> data <- rnorm(1000, mean = 3, sd = 2)
> qqnorm(data)
> qqline(data)
Trong bài tập này, bạn sẽ tạo biểu đồ Q-Q của log-return Dow Jones trong djx so với phân phối chuẩn tham chiếu, và thêm đường tham chiếu để dễ quan sát. Sau đó bạn sẽ so sánh biểu đồ này với các bộ dữ liệu mô phỏng từ các phân phối chuẩn, Student t và đều, được tạo bằng các hàm rnorm(), rt() và runif(). Bạn sẽ học về phân phối t ở phần sau của chương này.
Nếu dữ liệu đến từ phân phối chuẩn, các điểm sẽ nằm gần đường màu đỏ (dù có thể lệch nhẹ ở hai đầu).
Như trước, djx đã được nạp sẵn vào không gian làm việc của bạn.
Bài tập này là một phần của khóa học
Quản trị Rủi ro Định lượng bằng R
Hướng dẫn bài tập
- Tạo biểu đồ Q-Q của
djxso với phân phối chuẩn bằngqqnorm()và thêm đường màu đỏ vớiqqline()vàcol = "red"để đánh giá tính thẳng hàng của các điểm. - Tính độ dài của
djxbằnglength()và gán vào đối tượngn. - Sinh
nbiến chuẩn tắc bằngrnorm()và gán vàox1. Tạo biểu đồ Q-Q củax1so với chuẩn và thêm đường màu đỏ như trước. - Sinh
nbiến Student t với bậc tự do bằng 4 và gán vàox2(đã làm sẵn cho bạn). Tạo biểu đồ Q-Q củax2so với chuẩn và thêm đường màu đỏ. - Sinh
nbiến đều và gán vàox3(đã làm sẵn cho bạn). Tạo biểu đồ Q-Q củax3so với chuẩn và thêm đường màu đỏ.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Make a Q-Q plot of djx and add a red line
___(___)
___(___, ___)
# Calculate the length of djx as n
n <- ___
# Generate n standard normal variables, make a Q-Q plot, add a red line
x1 <- ___(___)
___(___)
___(___, ___)
# Generate n Student t variables, make a Q-Q plot, add a red line
x2 <- rt(n, df = 4)
___(___)
___(___, ___)
# Generate n standard uniform variables, make a Q-Q plot, add red line
x3 <- runif(n)
___(___)
___(___, ___)