Skip to contents
library(hydrorecipes)
#> Loading required package: Bessel

Example usage:

#|warning: false
#|message: false


library(hydrorecipes)
# kennel_2020 (1 minute interval)
#  water level
#  barometric pressure
#  synthetic earthtide
data(kennel_2020) 

form     <- as.formula(wl~.)
ba_knots <- log_lags_arma(15, 1441) # knots for distributed lag baro terms
df       <- 5                       # degrees of freedom for spline background trend

rec <- recipe(form, kennel_2020) |>
  step_distributed_lag(baro, knots = ba_knots) |>
  step_spline_b(datetime, df = df) |>
  step_lead_lag(et, lag = seq(-120, 120, 60)) |>
  step_intercept() |>
  step_drop_columns(c(baro, et, datetime)) |>
  step_ols(formula = form) |>
  prep() |>
  bake()


# responses
resp <- rec$get_response_data(type = "dt")

# barometric response function
plot(value~x, data = resp[term == "distributed_lag_interpolated" & variable == "cumulative"], 
     type = "l",
     xlab = "Lag time in minutes",
     ylab = "Cumulative response")



# decomposition
pred <- cbind(kennel_2020, rec$get_predict_data())

# initial
plot(wl~datetime, pred, type = "l", 
       xlab = "", ylab = "Pressure (dbar)")

# predicted sum of components
points(wl_step_distributed_lag + 
       wl_step_spline_b + 
       wl_step_lead_lag + 
       wl_step_intercept~datetime, pred, type = "l", col = "red")