Я довольно новичок в 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
Я попытался отследить () смогу ли я найти какой-либо ключ к решению этой ошибки.Я получил:
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"))
Однако по-прежнему получена ошибка в случае, если (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)
Я прочитал много статей об этой ошибке,однако, ни один из них не занимается проблемой, что ошибка, вероятно, связана с временными рядами.У меня нет пропущенных данных во всем наборе данных.( «Ошибка в 1: ncol (x): аргумент длины 0» при использовании Amelia в R ) Но я думаю, что ошибка находится в первом столбце, отсюда и столбец, где я храню дату и время.
Вот предварительный просмотр моего набора данных, возможно, он поможет в решении проблемы: Предварительный просмотр данных
Более того, я становлюсь действительно отчаявшимся, потому что не имею понятияв чем причина этой ошибки, которая все еще появляется, и как с ней бороться.
Где я допустил ошибку?