用 Q-Q 圖檢視常態性
「分位數-分位數圖」(Q-Q 圖)是更好的圖形方法來揭露資料的非常態性。一般而言,Q-Q 圖會比較資料的分位數與某個參考分配的分位數;如果資料來自相同型態的分配(只差縮放與位置),就應該會看到大致筆直的一條線。你也需要知道,所謂的「自由度」(df)是指在你所研究的系統中,能夠影響結果的數值或觀察值的數量。
在影片中,你已經看到如何用 rnorm() 產生 1000 個常態資料點,以及如何用 qqnorm() 建立 Q-Q 圖,並用 qqline() 加上一條做為參考的直線:
> data <- rnorm(1000, mean = 3, sd = 2)
> qqnorm(data)
> qqline(data)
在這個練習中,你會針對 djx 中的道瓊工業指數對數報酬,繪製相對於常態參考分配的 Q-Q 圖,並加上參考用的視覺引導線。接著,你會將此圖與以 rnorm()、rt()、runif() 產生的常態、Student t 與均勻分配的模擬資料集進行比較。本章稍後你將會學到 t 分配。
如果資料來自常態分配,點應該會貼近紅色直線(雖然在兩端可能會有些偏離)。
一樣地,djx 已載入到你的工作環境中。
本練習屬於課程
R 的量化風險管理
練習說明
- 使用
qqnorm()將djx與常態分配比較,繪製 Q-Q 圖,並用qqline()搭配col = "red"加上一條紅線,以判斷圖形是否近似線性。 - 用
length()計算djx的長度,指定給物件n。 - 用
rnorm()產生n個標準常態變數並指定給x1。為x1繪製相對於常態的 Q-Q 圖,並同樣加上一條紅線。 - 產生自由度為 4 的
n個 Student t 變數並指定給x2(這一步已為你完成)。為x2繪製相對於常態的 Q-Q 圖,並加上一條紅線。 - 產生
n個均勻分配變數並指定給x3(這一步已為你完成)。為x3繪製相對於常態的 Q-Q 圖,並加上一條紅線。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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)
___(___)
___(___, ___)