Здесь я сгенерировал некоторые псевдоданные, которые выглядят как ваша проблема как фрейм данных df
:
currency <- c('USD','CAD','CAD','EUR','CNY','USD','EUR','CNY')
incoterms <- c('FOB','FOB','DAP','DAP','FOB','DAP','FOB','DAP')
month <- c('01','01','01','01','01','02','03','04')
df <- data.frame(currency, incoterms, month)
df <- rbind(df,df,df,df)
df$price <- rnorm(nrow(df), 200, 50)
df$ontime <- rbinom(nrow(df), 1, 0.5)
Тогда я иду вперед и подхожу mod1
Важно отметить, что я не определяю каждый предиктор как вектор, я просто извлекаю их по имени из фрейма данных, в который было включено только первое число.
mod1 <- glm(ontime ~ currency + incoterms + price, data = df[month == '01',])
Следующая функция прогнозирования теперь работает нормально:
pred <- predict(mod1, df[month %in% c('02','03','04'),], type = 'response')