一、 時間序列的建立
時間序列的建立函式為:ts().函式的引數列表如下:
ts(data = na, start = 1, end = numeric(),frequency = 1,
deltat = 1, ts.eps = getoption("ts.eps"), class = , names = )
引數說明:data:這個必須是乙個矩陣,或者向量,再或者資料框frame
frequency:這個是時間觀測頻率數,也就是每個時間單位的資料數目
start:時間序列開始值,允許第乙個個時間單位出現資料缺失
舉例:ts(matrix(c(na,na,na,1:31,na),byrow=t,5,7),frequency=7,names=c("sun","mon ","tue", "wen" ,"thu","fri"," sat"))
執行上面的**就可以得到乙個日曆:
sun mon tue wen thu fri sat
na na na 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 na
在r語言中本身也有不少資料集,比如統計包中的sunspots,你可以通過函式data(sunspots)來呼叫它們。
二、 一些時間序列模型
這裡主要介紹ar,ma,隨機遊走,余弦曲線趨勢,季節趨勢等
首先介紹一下ar模型:ar模型,即自回歸(autoregressive,ar)模型,數學表示式為: ar :y(t)=a1y(t-1)+...any(t-n)+e(t)
其中,e(t)為均值為0,方差為某值的白雜訊訊號。
那麼產生ar模型的資料,我們就有兩種方法:1、呼叫r中的函式filter(線性濾波器)去產生ar模型;2、根據ar模型的定義自己編寫函式
先說第一種方法:呼叫r中的函式filter(線性濾波器)去產生ar模型
介紹函式filter的用法如下:
filter(x, filter, method = c("convolution", "recursive"),
sides = 2, circular = false, init)
對於ar(2)模型x(t)=x(t-1)--0.9x(t-2)+e(t)
w<-rnorm(550)#我們假定白雜訊的分布是正態的。
x<-filter(w,filter=c(1,-0.9),"recursive")
#方法:無論是「卷積」或「遞迴」(可以縮寫)。如果使用移動平均選擇「卷積」:如果「遞迴」便是選擇了自回歸。
再說第二種方法:依據定義自己程式設計產生ar模型,還是以ar(2)模型x(t)=x(t-1)--0.9x(t-2) +e(t)為例,可編寫函式如下:
w<-rnorm(550)
ar<-function(w)
呼叫ar(w)即可得到。如果對相同的隨機數,我們可以發現兩個產生的時間序列是一致的。當然對於第二種方法產生的序列需要轉換為時間序列格式,用as.ts()處理。
類似的,我們給出ma,隨機遊走的模擬:
ma模型:
w<-rnorm(500)
v<-filter(w,sides=2,rep(1,3)/3)
隨機遊走:
w<-rnorm(200)
x<-cumsum(w)#累計求和,seeexample:cumsum(1:!0)
wd<-w+0.2
xd<-cumsum(wd)
R語言 時間序列分析
時間序列分析 1.對時間序列的描述 2.利用前面的結果進行 ts是時間序列的英文簡稱 可以使用sys.date 函式檢視當前系統的時間 用seq函式創造連續的時間點 ts函式生成時間序列,可以很方便的將向量轉化成時間序列 egsales round runif 50,min 50,max 100 s...
R語言做時間序列(未完)
我學的時間序列課程,實驗課都是在sas做的,一直想用r把大概的思路捋順一下,所以這篇東西並沒有給出很多的程式結果,更多地設計做時間序列的思路 產生時間序列資料 產生規則的時間序列,frequency 1,4,12分別對應年度,季度,月度 timeseries ts x,start c 1940,01...
R語言 時間序列arima模型
t c a1 yt 1 a2y t 2 apyt p t b1 t 1 b2 t 2 bq t qyt c a1yt 1 a2yt 2 apyt p t b1 t 1 b2 t 2 bq t qtyt t t l yt c l t l yt c l t l 1 a1l a2l2 apl p l 1 ...