dot-ar_fit: Fit Selected AR models

Description Usage Arguments Details Value

Description

This functions is just a thin wrapper around forecast::Arima(). The function fits AR models that optionally include: linear trends by YEAR, seasonal AR terms, and annual fourier predictors to address seasonal patterns.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
.ar_fit(
  .data,
  .dev,
  .x,
  .annual_period = 365.25 * 24,
  .tidal_period = 25,
  .order = 5,
  .tidal_order = NULL,
  .annual_terms = NULL
)

Arguments

.data

A data frame or null

.dev

Data column in .data or defined externally, to which the model will be fit. In our context, usually deviations between observed and predicted water levels.

.x

Data column in .data or defined externally that defines a single linear predictor. In our setting, this is usually a term that increments by year, so that the model coefficient associated with this predictor provides an estimate of annual sea level rise. If omitted, no linear predictor is included in the model.

.annual_period

How many observations are included in each year? This value is used to fit annual fourier term or terms. fourier term period? For hourly observations, this is approximately 325.25 (days per year) times 24 (hours per day) = 8766 observations per year.

.tidal_period

How many observations are included in each seasonal period? For hourly observations, this is often approximately 25 hours.

.order

Small positive integer. Default = 5. The order of the autoregressive component of the model.

.tidal_order

Small positive integer. Default = 1. The order of the 'seasonal' (usually tidal) autogregressive model.

.annual_terms

Small positive integer. Default = 1. This establishes how many fourier terms are fit to the annual pattern. A first order fourier fit (the default) fits a simple sine curve to the annual data to reflect seasonal patterns. Higher order fits allow more complex matches to the seasonal pattern. Given the high noise and relatively small annual pattern in these data (most of the pattern was removed by NOAA when they construct the model predicting tides), a low order fit (1 or 2) is usually most appropriate.

Details

In initial model exploration for hourly tidal deviations data, SARIMA(5,0,0)(1,0,0)25 models often performed well. Model performance could be further improved by fitting low-order annual fourier terms. Since we know that tidal deviations are non-stationary, it may also makes sense to fit a linear predictor that can account for non-stationarity.

Unfortunately, fitting complex models at this stage can complicate integration of model simulations with the larger modeling strategy. So, the function allows control of whether to fit different components. In general, the user controls which components to fit by selecting whether or not to include certain parameters or not. .

These models tend to produce simulated deviations with temporal structure that is similar to observed tidal deviations, but the distribution of simulated deviations tends to be less skewed and less kurtotic as actual tidal deviation data. Thus models are likely to underestimate the frequency of extreme events.

Value

An ARIMA model, with class = c("forecast_ARIMA", "ARIMA","Arima"). this can be a large object (> 1.25 MB), but the full model object is needed to simulate from more complex ARIMA models, such as non-stationary models or models with predictors.


ccb60/SLRSIM documentation built on Jan. 21, 2022, 1:31 a.m.