2013-04-24 25 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

相关问题