2017-07-17 40 views
0

我試圖自動爲不同的時間序列很多的ACF的策劃這樣我就可以快速檢測,如果這些TS可以通過ARMA過程中得到很好的建模。我創建了以下循環,目的是將每個圖打印到它自己的jpeg。自動化ACF地塊中的R用許多時間序列在一個數據幀

更換線3,d = ACF(data.ts)與分解功能時,我已經測試環路,並能夠返回所有這些結果的。此外,如果我用數據框中的任何TS替換變量i,我可以查看RStudio中的jpeg,但我不想花費時間right_click - > Save_as everything。

我收到以下錯誤,當我運行代碼:

Error in plot.window(...) : need finite 'ylim' values 
In addition: Warning messages: 
1: In min(x) : no non-missing arguments to min; returning Inf 
2: In max(x) : no non-missing arguments to max; returning -Inf 

這是我一直關閉的循環。

for (i in 2:272){ 
    data.ts=ts(df1[i,], start=c(2011,1), end = c(2016,12),fr=12) 
    mypath = file.path("S:", "Work") 
    jpeg(paste("acfplot_", i, ".jpeg", sep="")) 
    acf(data.ts, lag.max = 999) 
    dev.off() 
} 

編輯:該溶液包括添加如@亞歷克斯-braksator答覆下面看的ylimit到ACF功能。

回答

0

嘗試添加ylim到您的通話ACF當R繪製其指定的y限制範圍。

通常情況下,您的ACF圖將顯示代表95%置信區間的藍色虛線。這就是我所假設的是你正在使用什麼來確定顯着的滯後和你的TS是否可以建模。這些藍線與計算: qnorm((1 + 0.95)/2)/sqrt(length(data.ts))

所以你的情況,使該ylim束縛你的繪圖窗口,也許加1或2

ylimit <- qnorm((1 + 0.95)/2)/sqrt(length(data.ts)) + 1 acf(data.ts, lag.max = 999, ylim=c(-ylimit, ylimit))

希望這有助於。讓我知道你是否仍然有錯誤。

+0

這個工作!謝謝。 – dward4

0

也許你應該修改代碼爲:

mypath = file.path("S:", "Work", paste("acfplot_", i, ".jpeg", sep="")) 
jpeg(filename=mypath) 

不要忘了讓我們知道它的工作:)

+0

謝謝,我試過在通過decompose.ts運行循環時遇到錯誤。但是,該編輯適用於此。 – dward4

+0

所以它解決了你的問題......對吧? – Prem

+0

不,我仍然收到原來所述的錯誤。 @ alex-braksator發佈了上面修復過的修補程序,在ACF函數內添加了適當的y限制。 通過'爲此工作'我的意思是格式確實工作 - 歧義的道歉。 – dward4

相關問題