Separation

sjfit <- dengue_features_train %>%
  filter(city == "sj")

sj_sub1 <- submission_format %>%
  filter((city == "sj"))

sj_sub2 <- submission_format %>%
  filter((city == "sj"))

sj_sub3 <- submission_format %>%
  filter((city == "sj"))

iqfit <- dengue_features_train %>%
  filter(city == "iq")

iq_sub1 <- submission_format %>%
  filter((city == "iq"))

iq_sub2 <- submission_format %>%
  filter((city == "iq"))

iq_sub3 <- submission_format %>%
  filter((city == "iq"))

Models

sj_ts <- ts(data = sjfit$total.cases, start = c(1990,18), frequency = 53)
plot.ts(sj_ts)

a <- forecast(auto.arima(sj_ts), h = 260)
b <- forecast(ets(sj_ts), h = 260)
## Warning in ets(sj_ts): I can't handle data with frequency greater than 24.
## Seasonality will be ignored. Try stlf() if you need seasonal forecasts.
c <- forecast(nnetar(sj_ts), h = 260)
sj_sub1$total_cases <- as.integer(a$mean)
sj_sub2$total_cases <- as.integer(b$mean)
sj_sub3$total_cases <- as.integer(c$mean)

iq_ts <- ts(data = iqfit$total.cases, start = c(2000,26), frequency = 53)
plot.ts(iq_ts)

x <- forecast(auto.arima(iq_ts), h = 156)
y <- forecast(ets(iq_ts), h = 156)
## Warning in ets(iq_ts): I can't handle data with frequency greater than 24.
## Seasonality will be ignored. Try stlf() if you need seasonal forecasts.
z <- forecast(nnetar(iq_ts), h = 156)
iq_sub1$total_cases <- as.integer(x$mean)
iq_sub2$total_cases <- as.integer(y$mean)
iq_sub3$total_cases <- as.integer(z$mean)

sub1 <- rbindlist(list(sj_sub1,iq_sub1))
sub2 <- rbindlist(list(sj_sub2,iq_sub2))
sub3 <- rbindlist(list(sj_sub3,iq_sub3))

Output of Data

write.csv(sub1, "C:/Users/tmcna/OneDrive/Predictive Analytics & Forecasting/Final Project/Excel Data/sub1.csv", row.names = FALSE)
write.csv(sub2, "C:/Users/tmcna/OneDrive/Predictive Analytics & Forecasting/Final Project/Excel Data/sub2.csv", row.names = FALSE)
write.csv(sub3, "C:/Users/tmcna/OneDrive/Predictive Analytics & Forecasting/Final Project/Excel Data/sub3.csv", row.names = FALSE)