我似乎误解了R中dwtest
的{{1}}是如何工作的。
> r1 <- runif(1000, 0.0, 1.0)
> r2 <- runif(1000, 0.0, 1.0)
> dwtest(lm(r2 ~ r1 ))
Durbin-Watson test
data: lm(r2 ~ r1)
DW = 1.9806, p-value = 0.3789
alternative hypothesis: true autocorrelation is greater than 0
>
> r1 <- seq(0, 1000, by=1)
> r2 <- seq(0, 1000, by=1)
> dwtest(lm(r2 ~ r1 ))
Durbin-Watson test
data: lm(r2 ~ r1)
DW = 2.2123, p-value = 0.8352
当我理解一切正确时,我首先相互测试2组随机数(不相关 - 正确)
然后我将1到1000之间的数字与它们相关联(与之无关 - 呃...什么)
有人能指出我的明显错误吗?
答案 0 :(得分:1)
在维基百科上看,似乎Durbin-Watson测试是残差的自相关,而不是相关性。所以,如果我定义r2&lt; - r1 + sin(r1),那么我从DW测试得到了一个重要的结果:
> r1 <- seq(0, 1000, by=1)
> r2 <- r1 + sin(r1)
> dwtest(lm(r2 ~ r1))
Durbin-Watson test
data: lm(r2 ~ r1)
DW = 0.91956, p-value < 2.2e-16
alternative hypothesis: true autocorrelation is greater than 0
这就是原因。从线性模型预测的r2 [i]的值是r1 [i]。 &#34;残差&#34;,它是实际值和预测值之间的差值,是r2 [i] -r1 [i]。如果这大于零,则r2 [i + 1] -r1 [i + 1]可能也高于零,因为它们是正弦函数的相邻值。因此,有自相关&#34;自相关&#34;在残差中,意味着相邻值之间的相关性。