Ошибка в foreach l oop для gl mnet предсказывает? - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь использовать foreach l oop для запуска скользящих прогнозов с gl mnet по заработной плате. У меня есть 2 переменные в наборе данных, месяц и заработная плата. Всего 6862 строки и 2 столбца. Я использую окно размером 3000 наблюдений. Например, для прогнозирования 3001-го наблюдения используются 1-е - 3000-е наблюдения. Чтобы предсказать 3002-е наблюдения, для обучения модели используются 2-е и 3001-е наблюдения. Создается матрица x с константой и запаздывающим значением заработной платы.

Тем не менее, я получаю сообщение об ошибке «Ошибка в {: задача 1 не выполнена -« Ошибка Cholmod »X и / или Y имеют неправильные размеры 'at file ../MatrixOps/cholmod_sdmult.c,"

Может кто-нибудь посоветовать, как я могу исправить ошибку? Спасибо.

R синтаксис

dat=read.csv("Raw data/WAGES.csv", 
             header = TRUE, fileEncoding="UTF-8-BOM")
y = dat$WAGES
int = rep(1,length(y))
ly = c(0,y[1:length(y)-1]) # lag of WAGES
x = matrix(c(int,ly), nrow=length(y)) # matrix with constant and lagged variable of wages
L = seq(1, 10, by=9)
# = Number of windows and window size
w_size = 3000
n_windows = length(y) - 3000
library(foreach)
# = Rolling Window Loop = #
forecasts = foreach(i=1:n_windows,.combine = cbind) %do%{
  x_in = x[i:(w_size + i - 1), ] 
  x_out = x[w_size + i, ]

  outn <- glmnet(x, y, alpha = 1, lambda = exp(L), data = x_in)
  f1 <- predict(outn, newx = x_out, type="response")
}
...