R語言 時間序列分析

時間序列是一系列數(shù)據(jù)點,其中每個數(shù)據(jù)點與時間戳相關(guān)聯(lián)。 一個簡單的例子是股票在某一天的不同時間點的股票價格辉懒。 另一個例子是一個地區(qū)在一年中不同月份的降雨量。 R語言使用許多函數(shù)來創(chuàng)建谍失,操作和繪制時間序列數(shù)據(jù)眶俩。 時間序列的數(shù)據(jù)存儲在稱為時間序列對象的R對象中。 它也是一個R語言數(shù)據(jù)對象袱贮,如矢量或數(shù)據(jù)幀仿便。

使用ts()函數(shù)創(chuàng)建時間序列對象。

語法

時間序列分析中ts()函數(shù)的基本語法是 -

<pre class="result notranslate" style="margin: 15px 0px; padding: 10px 5px; position: relative; width: auto; max-width: 700px; box-sizing: border-box; display: block; line-height: 1.7; background: rgb(239, 239, 239); border-radius: 3px; font-size: 14px; font-family: Consolas, "Courier New", Courier, monospace; overflow-x: auto; border: 1px solid rgb(221, 221, 221); word-wrap: break-word !important; white-space: pre-wrap !important; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">timeseries.object.name <- ts(data, start, end, frequency)
</pre>

以下是所使用的參數(shù)的描述 -

  • data是包含在時間序列中使用的值的向量或矩陣攒巍。

  • start以時間序列指定第一次觀察的開始時間嗽仪。

  • end指定時間序列中最后一次觀測的結(jié)束時間。

  • frequency指定每單位時間的觀測數(shù)柒莉。

除了參數(shù)“data”闻坚,所有其他參數(shù)是可選的。

考慮從2012年1月開始的一個地方的年降雨量細(xì)節(jié)兢孝。我們創(chuàng)建一個R時間序列對象為期12個月并繪制它窿凤。

<pre class="prettyprint notranslate tryit" style="margin: 15px 0px; padding: 10px 5px; position: relative; width: auto; max-width: 700px; box-sizing: border-box; display: block; line-height: 1.7; background: rgb(239, 239, 239); border-radius: 3px; font-size: 14px; font-family: Consolas, "Courier New", Courier, monospace; overflow-x: auto; border: 1px solid rgb(221, 221, 221); word-wrap: break-word !important; white-space: pre-wrap !important; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"># Get the data points in form of a R vector.
rainfall <- c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)

Convert it to a time series object.

rainfall.timeseries <- ts(rainfall,start = c(2012,1),frequency = 12)

Print the timeseries data.

print(rainfall.timeseries)

Give the chart file a name.

png(file = "rainfall.png")

Plot a graph of the time series.

plot(rainfall.timeseries)

Save the file.

dev.off()
</pre>

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果及圖表 -

<pre class="result notranslate" style="margin: 15px 0px; padding: 10px 5px; position: relative; width: auto; max-width: 700px; box-sizing: border-box; display: block; line-height: 1.7; background: rgb(239, 239, 239); border-radius: 3px; font-size: 14px; font-family: Consolas, "Courier New", Courier, monospace; overflow-x: auto; border: 1px solid rgb(221, 221, 221); word-wrap: break-word !important; white-space: pre-wrap !important; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">Jan Feb Mar Apr May Jun Jul Aug Sep
2012 799.0 1174.8 865.1 1334.6 635.4 918.5 685.5 998.6 784.2
Oct Nov Dec
2012 985.0 882.8 1071.0
</pre>

時間序列圖 -

時間序列跨蟹,使用R

不同的時間間隔

ts()函數(shù)中的頻率參數(shù)值決定了測量數(shù)據(jù)點的時間間隔雳殊。 值為12表示時間序列為12個月。 其他值及其含義如下 -

  • 頻率

    = 12指定一年中每個月的數(shù)據(jù)點窗轩。

  • 頻率= 4每年的每個季度的數(shù)據(jù)點夯秃。

  • 頻率= 6每小時的10分鐘的數(shù)據(jù)點。

  • 頻率= 24 * 6將一天的每10分鐘的數(shù)據(jù)點固定痢艺。

多時間序列

我們可以通過將兩個系列組合成一個矩陣仓洼,在一個圖表中繪制多個時間序列。

<pre class="prettyprint notranslate tryit" style="margin: 15px 0px; padding: 10px 5px; position: relative; width: auto; max-width: 700px; box-sizing: border-box; display: block; line-height: 1.7; background: rgb(239, 239, 239); border-radius: 3px; font-size: 14px; font-family: Consolas, "Courier New", Courier, monospace; overflow-x: auto; border: 1px solid rgb(221, 221, 221); word-wrap: break-word !important; white-space: pre-wrap !important; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"># Get the data points in form of a R vector.
rainfall1 <- c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)
rainfall2 <-
c(655,1306.9,1323.4,1172.2,562.2,824,822.4,1265.5,799.6,1105.6,1106.7,1337.8)

Convert them to a matrix.

combined.rainfall <- matrix(c(rainfall1,rainfall2),nrow = 12)

Convert it to a time series object.

rainfall.timeseries <- ts(combined.rainfall,start = c(2012,1),frequency = 12)

Print the timeseries data.

print(rainfall.timeseries)

Give the chart file a name.

png(file = "rainfall_combined.png")

Plot a graph of the time series.

plot(rainfall.timeseries, main = "Multiple Time Series")

Save the file.

dev.off()
</pre>

當(dāng)我們執(zhí)行上面的代碼堤舒,它產(chǎn)生以下結(jié)果及圖表 -

<pre class="result notranslate" style="margin: 15px 0px; padding: 10px 5px; position: relative; width: auto; max-width: 700px; box-sizing: border-box; display: block; line-height: 1.7; background: rgb(239, 239, 239); border-radius: 3px; font-size: 14px; font-family: Consolas, "Courier New", Courier, monospace; overflow-x: auto; border: 1px solid rgb(221, 221, 221); word-wrap: break-word !important; white-space: pre-wrap !important; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"> Series 1 Series 2
Jan 2012 799.0 655.0
Feb 2012 1174.8 1306.9
Mar 2012 865.1 1323.4
Apr 2012 1334.6 1172.2
May 2012 635.4 562.2
Jun 2012 918.5 824.0
Jul 2012 685.5 822.4
Aug 2012 998.6 1265.5
Sep 2012 784.2 799.6
Oct 2012 985.0 1105.6
Nov 2012 882.8 1106.7
Dec 2012 1071.0 1337.8
</pre>

多時間序列圖 -

結(jié)合時間序列色建,使用R
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市舌缤,隨后出現(xiàn)的幾起案子箕戳,更是在濱河造成了極大的恐慌某残,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漂羊,死亡現(xiàn)場離奇詭異驾锰,居然都是意外死亡卸留,警方通過查閱死者的電腦和手機(jī)走越,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耻瑟,“玉大人旨指,你說我怎么就攤上這事≡” “怎么了谆构?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長框都。 經(jīng)常有香客問我搬素,道長,這世上最難降的妖魔是什么魏保? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任熬尺,我火速辦了婚禮,結(jié)果婚禮上谓罗,老公的妹妹穿的比我還像新娘粱哼。我一直安慰自己,他們只是感情好檩咱,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布揭措。 她就那樣靜靜地躺著,像睡著了一般刻蚯。 火紅的嫁衣襯著肌膚如雪绊含。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天炊汹,我揣著相機(jī)與錄音躬充,去河邊找鬼。 笑死兵扬,一個胖子當(dāng)著我的面吹牛麻裳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播器钟,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼津坑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了傲霸?” 一聲冷哼從身側(cè)響起疆瑰,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤眉反,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后穆役,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寸五,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年耿币,在試婚紗的時候發(fā)現(xiàn)自己被綠了梳杏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡淹接,死狀恐怖十性,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情塑悼,我是刑警寧澤劲适,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站厢蒜,受9級特大地震影響霞势,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斑鸦,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一愕贡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鄙才,春花似錦颂鸿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浓冒,卻和暖如春栽渴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背稳懒。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工闲擦, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人场梆。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓墅冷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親或油。 傳聞我的和親對象是個殘疾皇子寞忿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容