gpt4 book ai didi

xts 时间序列与 if (ncol(x) == 1) { : argument is of length zero 中误差的关系

转载 作者:行者123 更新时间:2023-12-01 20:20:57 25 4
gpt4 key购买 nike

我是 R 方面的新手,但我正在努力克服困难。我正在使用通过以下代码设置的时间序列数据集:

myts <- as.xts(df[,-1], order.by = as.POSIXct(df$DATE_3, format="%Y-%m-%d %H:%M:%S"))

=> 我的数据系列是 2006 年至 2017 年的每小时数据

我已经完成了简单的 lm 回归,没有遇到任何问题。然后我开始测试统计假设,测试序列平稳性和异方差性没有问题,但是,在序列相关性上,我尝试使用以下代码:

library(car)
dwt(didreg6) 'didreg6 is the name of one of my regressions

但是我收到了这个错误。

Error in if (ncol(x) == 1) { : argument is of length zero

我尝试过traceback()是否能找到任何解决错误的线索。我收到了:

 1: dwt(didreg6)
2: durbinWatsonTest(...)
3: durbinWatsonTest.lm(...)
4: matrix(sample(residuals, n * reps, replace = TRUE), n, reps)
5: as.vector(data)
6: as.vector(x, mode)
7: as.vector.zoo(x, mode)
8: as.vector(as.matrix(x), mode = mode)
9: as.matrix(x)
10: as.matrix.xts(x)

由于我无法确定问题出在哪里,所以我尝试了 Ljung-Box,因为我想,也许它会起作用。

Res<-residuals(didreg6)
Box.test(Res, lag = 1, type = "Ljung-Box")

但是,我收到了另一个错误,我猜它与时间序列有关。

Error in if (frequency > 1 && abs(frequency - round(frequency)) < ts.eps) frequency 
<- round(frequency) :
missing value where TRUE/FALSE needed

之后,因为我发现我的数据系列误差是异方差的,所以我想使用HAC误差而不是标准误差。我输入了这段代码:

library(estimatr)
didreg6_robust <- lm_robust(lnEL ~ sum of my explanatory variables, data = myts,
se_type = "stata")
summary(didreg6_robust)

但是同样的错误再次出现:

Error in if (ncol(x) == 1) { : argument is of length zero

最终,我尝试对 HAC 错误使用不同的编码:

didreg6 <- lm(lnEL ~ sum of my explanatory variables, data = myts)       
summary(didreg6)
library(lmtest)
library(sandwich)
coeftest(didreg6, df = Inf, vcov = vcovHC(didreg6, type = "HC0"))

但是 if (ncol(x) == 1) { 中仍然收到错误:参数长度为零遵循traceback():

 1: coeftest(didreg7_coef, df = Inf, vcov = vcovHC(didreg7_coef, type = "HC0"))
2: coeftest.default(didreg7_coef, df = Inf, vcov = vcovHC(didreg7_coef, type = "HC0"))
3: vcovHC(didreg7_coef, type = "HC0")
4: vcovHC.default(didreg7_coef, type = "HC0")
5: meatHC(x, type = type, omega = omega)
6: estfun(x, ...)
7: estfun.lm(x, ...)
8: as.vector(res)
9: as.vector(x, mode)
10: as.vector.zoo(x, mode)
11: as.vector(as.matrix(x), mode = mode)
12: as.matrix(x)
13: as.matrix.xts(x)

我读过很多关于此错误的文章,但是,它们都没有涉及这个问题,该错误可能与时间序列相关。我在整个数据集中没有丢失数据。 ( "Error in 1:ncol(x) : argument of length 0" when using Amelia in R ) 但我认为,错误出现在第一列,因此是我存储日期和时间的列。

这是我的数据集的预览,也许它有助于解决问题: Data preview

而且我真的很绝望,因为我不知道这个错误仍然弹出的原因是什么以及如何处理它。

我的错误在哪里?

最佳答案

将其从 xts 转换回数值数组即可解决。是的,问题似乎出在 xts 对象上。您可以按如下方式解决:

fit_dw <- lm( as.numeric(xts1) ~ as.numeric(xts2) + as.numeric(xts3) ) durbinWatsonTest(fit_dw )

其中 xts1、xts2、xts3 是内部包含一个时间序列的 xts 对象。

关于xts 时间序列与 if (ncol(x) == 1) { : argument is of length zero 中误差的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53662141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com