2013-04-24 24 views
2

我對R相當陌生,我試圖模擬一些數據,將其適用於模型,並對殘差執行運行測試。但是,執行運行測試時出現奇怪的類型錯誤。 這裏是我的代碼:運行測試中的錯誤:「缺少需要TRUE/FALSE的值」

library(TSA) 
d = arima.sim(list(ma=c(0.5)), n=5000) 
model = arima(d, order=c(0, 0, 1), include.mean=FALSE) 
runs(model$residuals) 

的錯誤是:

Error in if (pvalue > 0.5) pvalue <- 1 - pvalue : 
    missing value where TRUE/FALSE needed 

這個錯誤是什麼意思?

+0

它似乎有所不同,但我認爲可能會在代碼中某處發生某種溢出。在大多數情況下,如果我嘗試使用長度爲1035或更長的矢量使用'runs',則發生在我身上。有時候有1035個值可行,但我不知道究竟是什麼會導致這個問題 – Dason 2013-04-24 22:39:01

+2

那麼downvoter會小心評論嗎?他們提供了示例代碼,答案肯定不明顯...... – Dason 2013-04-24 22:39:39

回答

1

我對這個軟件包並不熟悉,但是我可以告訴你的數據是特定情況還是這個軟件包(至少運行函數)需要重新審查。

pdf <- pdf/sum(pdf)     # pdf contains Inf, so becomes NaN 
mu <- 1 + 2 * n1 * n2/(n1 + n2) 
if (r1 <= mu)      # This is verified 
    pvalue <- sum(pdf[(1:l2) <= r1]) # pvalue is not calculated, pdf is all NaN 
if (r1 > mu)       # there should be some R versions without else... 
    pvalue <- sum(pdf[(1:l2) >= r1]) 
if (pvalue > 0.5)     # This gives you the error! pvalue is all NaN 
    pvalue <- 1 - pvalue 

幾行字上面PDF獲取天道酬勤值:

for (i in seq(4, l2, 2)) {   # when i is 166 pdf gets its first Inf value 
    r <- (i - 2)/2 
    f[r + 1] <- (n1 - r) * (n2 - r)/r/r * f[r] 
    pdf[i] <- f[r + 1] 
    } 

我不能再往前走,因爲我不知道這樣既不數據是如何應該看起來像,也沒有結果,你應該得到這樣的功能。試着讓自己看一下這個函數,我已經足夠了:-)上面的代碼中缺少的其他東西並不是唯一奇怪的東西。希望有幫助

+0

@tba你有什麼改進? – Michele 2013-04-26 13:01:39

相關問題