在 R 建立時間序列物件
「時間序列」可以想成是一個向量或矩陣,外加這些數值被記錄時點的相關資訊。這些資訊在 R 會儲存在 ts 物件中。在多數練習中,你會使用套件中已內建的時間序列。不過,如果你要處理自己的資料,就需要知道如何在 R 建立一個 ts 物件。
先看下面的範例 usnim_2002,它包含 2002 年美國銀行的淨利差(來源:FFIEC)。
> usnim_2002
usnim
1 2002-01-01 4.08
2 2002-04-01 4.10
3 2002-07-01 4.06
4 2002-10-01 4.04
> # ts(data, start, frequency, ...)
> usnim_ts = ts(usnim_2002[, 2], start = c(2002, 1), frequency = 4)
ts() 這個函式會接受三個引數:
data設為usnim_2002中除了日期欄以外的所有內容;因為ts物件會另外儲存時間資訊,不需要日期欄。start以c(year, period)的形式指定第一筆觀測的時間。在這裡,1 月對應期數 1;同理,若起始日期在 4 月則為 2,7 月為 3,10 月為 4。也就是說,期數對應到一年的季度。frequency設為 4,因為資料是按季觀測。
在這個練習中,你會使用 readxl 套件的 read_excel() 從 xlsx 檔讀入時間序列資料,並將其儲存為 ts 物件。xlsx 檔與套件都已載入到你的工作環境。
本練習屬於課程
R 的時間序列預測
練習說明
- 使用
read_excel()將"exercise1.xlsx"讀入為mydata。 - 在 R 主控台對
mydata套用head()檢視前幾列。留意日期:1981 年有 4 筆觀測,表示這是季資料,因此每年有 4 列作為 frequency。第一筆觀測(start)為Mar-81,是 1981 年 4 列中的第一列,代表 3 月對應到第 1 個 period。 - 使用
ts()建立名為myts的ts物件。依你觀察到的結果設定data、start與frequency。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Read the data from Excel into R
___ <- ___("exercise1.xlsx")
# Look at the first few lines of mydata
___
# Create a ts object called myts
myts <- ts(___[___], start = c(___, ___), frequency = ___)