Я пытаюсь использовать штрафованную регрессию для прогнозирования столбца данных y с использованием предикторов месяца и времени. Я хотел бы включить ограничение позитивности для одного из предикторов, но не для другого. Все работает нормально, если я использую положительный = ИСТИНА или положительный = ЛОЖЬ, но если я использую положительный = с (Т, Т) или положительный = с (Т, F), я получаю следующую ошибку:
Ошибка в .checkinput (match.call (), parent.frame ()): длина «Positive» не соответствует количеству столбцов «наказано»
, хотя длина ограничения и длинаПредсказатели совпадают.
Предсказатель месяца является фактором, а время числовым. Однако, изменение месяца на числовую переменную тоже не поможет. Вот мой код:
library(penalized)
df<-data.frame(date=seq(as.Date("2018-01-01"), as.Date("2018-10-01"), by="days"))
df$month<-format(as.Date(df$date), "%m")
df$y<-runif(nrow(df),1,100)
df$time<- -floor(nrow(df)/2):(ceiling(nrow(df)/2)-1)/1000
df$month<-as.factor(df$month)
training<-df[1:200,]
test<-df[201,]
ens<-penalized(y, ~ month+time, ~ 0,lambda1=1, lambda2=1, positive =c(F,T), data=training)
pred<-predict(ens,~ month + time, ~0,data=test)
Может кто-нибудь определить, что здесь не так?