了解R中的durbin-watson测试

时间:2018-03-18 17:24:18

标签: r linear-regression lm hypothesis-test

我似乎误解了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之间的数字与它们相关联(与之无关 - 呃...什么)

有人能指出我的明显错误吗?

1 个答案:

答案 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;在残差中,意味着相邻值之间的相关性。