# Calculate training metrics for each model explicitly.
train_metrics_1 <- train_pred_1 %>%
summarize(
model = "Baseline",
n = n(),
MAE = mean(abs_error, na.rm = TRUE),
RMSE = sqrt(mean(residual^2, na.rm = TRUE)),
mean_observed = mean(filings_count_capped, na.rm = TRUE),
mean_predicted = mean(predicted, na.rm = TRUE),
correlation = cor(filings_count_capped, predicted, use = "complete.obs"),
bias = mean(predicted - filings_count_capped, na.rm = TRUE)
)
train_metrics_2 <- train_pred_2 %>%
summarize(
model = "+ Tax/Spatial",
n = n(),
MAE = mean(abs_error, na.rm = TRUE),
RMSE = sqrt(mean(residual^2, na.rm = TRUE)),
mean_observed = mean(filings_count_capped, na.rm = TRUE),
mean_predicted = mean(predicted, na.rm = TRUE),
correlation = cor(filings_count_capped, predicted, use = "complete.obs"),
bias = mean(predicted - filings_count_capped, na.rm = TRUE)
)
train_metrics_3 <- train_pred_3 %>%
summarize(
model = "+ ACS",
n = n(),
MAE = mean(abs_error, na.rm = TRUE),
RMSE = sqrt(mean(residual^2, na.rm = TRUE)),
mean_observed = mean(filings_count_capped, na.rm = TRUE),
mean_predicted = mean(predicted, na.rm = TRUE),
correlation = cor(filings_count_capped, predicted, use = "complete.obs"),
bias = mean(predicted - filings_count_capped, na.rm = TRUE)
)
train_metrics_4 <- train_pred_4 %>%
summarize(
model = "+ Interactions",
n = n(),
MAE = mean(abs_error, na.rm = TRUE),
RMSE = sqrt(mean(residual^2, na.rm = TRUE)),
mean_observed = mean(filings_count_capped, na.rm = TRUE),
mean_predicted = mean(predicted, na.rm = TRUE),
correlation = cor(filings_count_capped, predicted, use = "complete.obs"),
bias = mean(predicted - filings_count_capped, na.rm = TRUE)
)
# Combine training metrics.
train_metrics <- bind_rows(train_metrics_1, train_metrics_2, train_metrics_3, train_metrics_4)
# Display training performance.
train_metrics %>%
kable(digits = 3, caption = "Training Set Performance Across Models",
col.names = c("Model", "Number", "MAE", "RMSE", "Mean Observed", "Mean Predicted", "Correlation", "Bias")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))