运行测试出错:“缺少需要TRUE / FALSE的值”

时间:2013-04-24 22:21:15

标签: r

我是R的新手,我正在尝试模拟一些数据,使其适合模型,并对残差进行运行测试。但是,执行运行测试时出现奇怪的类型错误。 这是我的代码:

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

这个错误是什么意思?

1 个答案:

答案 0 :(得分: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以上几行获得Inf值:

  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]
  }

我无法继续前进,因为我既不知道这些数据应该是什么样子,也不知道你应该从这种功能得到的结果。试着自己看一下这个函数,我已经够了:-)上面代码中缺少的其他东西并不是唯一奇怪的东西。希望有所帮助