У меня есть два вопроса о прогнозировании с использованием GLMNET - в частности, о перехвате.Прогноз GLMNET с перехватом
Я сделал небольшой пример создания поезда данных, оценки GLMNET и прогнозирования по данным поезда (который я позже изменить, чтобы тестовые данные):
# Train data creation
Train <- data.frame('x1'=runif(10), 'x2'=runif(10))
Train$y <- Train$x1-Train$x2+runif(10)
# From Train data frame to x and y matrix
y <- Train$y
x <- as.matrix(Train[,c('x1','x2')])
# Glmnet model
Model_El <- glmnet(x,y)
Cv_El <- cv.glmnet(x,y)
# Prediction
Test_Matrix <- model.matrix(~.-y,data=Train)[,-1]
Test_Matrix_Df <- data.frame(Test_Matrix)
Pred_El <- predict(Model_El,newx=Test_Matrix,s=Cv_El$lambda.min,type='response')
Я хочу иметь перехват в расчетной формуле , Этот код выдает ошибку о размерах матрицы Test_Matrix, если я не удалить (Intercept) столбец матрицы - как в
Test_Matrix <- model.matrix(~.-y,data=Train)[,-1]
Мои вопросы:
Является ли это правильный путь сделать это, чтобы получить прогноз - когда я хочу, чтобы формула прогнозирования включала перехват?
Если это правильный путь: почему мне нужно удалить перехват в матрице?
Заранее спасибо.
благодарит за ваш ответ, он работает! Я пропустил y ~. синтаксис. –