99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀時間序列分析:對非平穩(wěn)時間序列進行建模
時間序列分析:對非平穩(wěn)時間序列進行建模
2016-06-15
收藏

編者按

曾經(jīng)有位小伙伴在公眾號留言提問:如何做時間序列分析?最近C君發(fā)現(xiàn)了一篇文章,也許可以解答這個問題,收錄在此,以饗讀者。本文來自于數(shù)據(jù)人網(wǎng)。

如果你有數(shù)據(jù)分析相關(guān)的問題,也可以公眾號留言提問,說不定C君可以幫你找到答案。發(fā)現(xiàn)優(yōu)質(zhì)文章,也可以推薦給C君。祝,學(xué)習(xí)快樂~

在這篇博客中,我將會簡單的介紹一下時間序列分析及其應(yīng)用。這里,我們將使用匹茲堡大學(xué)的教授David Stoffer所開發(fā)的R包astsa進行時間序列分析。而與之相關(guān)的課本,可以在Time Series Analysis and Its Applications (http://www.stat.pitt.edu/stoffer/tsa3/tsa3EZ.pdf,在瀏覽器打開此鏈接可直接下載,編者注)這里找到它的電子書,而且是免費的,它對于任何對這個話題感興趣的讀者都有一定的幫助。

時間序列就是一串基于具體時間區(qū)間的觀察值。它在經(jīng)濟預(yù)測這塊用有廣泛的應(yīng)用,而在預(yù)測未來一段時間的天氣方面也有很廣泛的應(yīng)用。時間序列分析的本質(zhì)就是利用一個具體的過往的觀測值來預(yù)測未來的觀測值。

首先,我們下載和加載一下astsa包。


我們現(xiàn)在利用數(shù)據(jù)集gtemp數(shù)據(jù)集進行檢驗,它通過預(yù)測1880-2009年的氣溫變化,來預(yù)測1951-1980年的平均氣溫。


得到gtemp圖:



在建模之前,我們要檢驗一下這個時間序列是否平穩(wěn)。如果一個時間序列是平穩(wěn)的,它要滿足三個條件:

1.常數(shù)均值穩(wěn)定在t。

2.常數(shù)方差穩(wěn)定在t。

3.兩個觀察值之間的自協(xié)方差僅由兩個觀測值之間的距離來決定,它可用log(h)來表示。

現(xiàn)實生活中,一般的數(shù)據(jù)通常都不完全滿足上面的三個條件,除非這個數(shù)據(jù)集用與白噪聲測量。從我們的肉眼來觀察,gtemp里的時間序列是非平穩(wěn)的。其均值是波動的,而且這個是很明顯的上升趨勢。不過,其方差就比較平穩(wěn)了。

我們可以使用acf2()函數(shù)來進一步的檢測它。如果它是平穩(wěn)的,ACF/PACF圖所顯示的將會是在最前面的一小部分點之間的相關(guān)性小幅度波動以后就開始急劇的下降。

這個藍(lán)色的虛線描述了每個時間間隔的極值。顯而易見的,這個時間序列是非平穩(wěn)的,尤其是那些數(shù)值較大的過往觀測值與未來的值是相關(guān)的。盡管回歸方法允許給這個數(shù)據(jù)集的時間序列擬合一條光滑的曲線,時間序列所關(guān)注的就是除去盡可能多的趨勢來確認(rèn)回歸線所抓取不到的信息的潛在因子。

對于所有的t值,我們將從Xt中減去Xt-1以實現(xiàn)數(shù)據(jù)序列從非平穩(wěn)轉(zhuǎn)為平穩(wěn)。這種方法叫差分化,并且可通過diff()函數(shù)來實現(xiàn)。


這看起來需要點技巧,這時,我們在1個時間間隔后面出去所有顯著相關(guān)性。是時候使用sarima()函數(shù)來建立時間序列模型了。serima()函數(shù)有3個基本參數(shù)(q,d,p),它們分別表示自回歸序列、差分度、移動平均序列。如果你對這些術(shù)語不熟悉,我建議你快速瀏覽這篇文章:Auto-regressive-moving-average model(https://en.wikipedia.org/wiki/Autoregressive%E2%80%93moving-average_model)。

ACF/PACF圖告訴我們我們使用了多少參數(shù)度。如果ACF圖是光滑的、幾何衰減的而且PACF在log(p)處中止,我們應(yīng)當(dāng)使用純AR(p)模型。給定ACF的模式?jīng)]有展示出它是光滑衰減的,而衰減度也在1個區(qū)間以后就變得不再顯著。于是,我們建立MA(1)模型來擬合這些數(shù)據(jù)。我們選擇d=1作為我們的差分度,其原因則源于diff()函數(shù)。

從我們建立的模型,可以看到,這種擬合效果很不錯。其殘差在0左右徘徊而QQ圖里,除了末尾各別數(shù)據(jù)點距離較大以外,整體的擬合效果還不錯。我們現(xiàn)在對我們的ARIMA模型來預(yù)測2010-2015年這5年的大致趨勢。藍(lán)線標(biāo)記了其中的標(biāo)準(zhǔn)誤差。


模型的擬合效果相當(dāng)不錯。

這個模型的狀態(tài)轉(zhuǎn)換給原始數(shù)據(jù)集gtemp里的一些趨勢進行了中和,研究者們則通過分析先前沒注意到的一個成分來增強模型的預(yù)測能力。

譯文來源 | 數(shù)據(jù)人網(wǎng)

原文鏈接:http://datascienceplus.com/time-series-analysis-building-a-model-on-non-stationary-time-series/

譯文鏈接:http://shujuren.org/article/147.html




數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }