R Durbin Watson测试lm对象列表

R Durbin Watson测试lm对象列表,r,statistics,regression,linear-regression,lm,R,Statistics,Regression,Linear Regression,Lm,我有一个包含两个(或更多)对象的列表。现在我想用dwtest或durbinWatsonTest从lmtest或car分别对两个lm对象同时执行Durbin-Watson测试,即 dwtest(reg_objects) durbinWatsonTest(reg_objects) 当我这样做时,我得到以下结果:使用dwtest:值是NA。使用durbinWatsonTest: Error in durbinWatsonTest.default(reg_1y$call) : requires ve

我有一个包含两个(或更多)对象的列表。现在我想用
dwtest
durbinWatsonTest
lmtest
car
分别对两个
lm
对象同时执行Durbin-Watson测试,即

dwtest(reg_objects)
durbinWatsonTest(reg_objects)
当我这样做时,我得到以下结果:使用
dwtest
:值是
NA
。使用
durbinWatsonTest

Error in durbinWatsonTest.default(reg_1y$call) : 
requires vector of residuals 
为了便于理解,我生成了一个包含5个lm对象的列表对象:

#  non-sensical lm!
set.seed(123)
y <- 1 + rnorm(10)

#  this makes a list of 5 lm's using the response data 'y'
data <- replicate( 5 , lm(  y ~ 1 + rnorm(10) ) , simpl = FALSE )
#非感官lm!
种子集(123)
y试试这个:

my_dw_stat <- list()

for(dw in seq(data)) {

  my_dw_stat[[dw]] <- dwtest(data[[dw]]$model[, 1] ~ data[[dw]]$model[, 2])

}

my_dw_stat so
reg_objects
是模型列表吗?您是否阅读了这些函数的帮助页面,或者至少查看了示例?当然,我阅读了,并且也尝试了,请参见上面的错误消息。有趣的是,在任何一种情况下,我都找不到一次处理多个回归对象的示例。因此,我认为这是一个相当有趣的一般性问题。好吧,两个模型一次只取一个模型,因此您必须编写某种循环:
lappy(1:5,function(x)car::dwt(eval(data[[x]]]$call))