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