calNGR: Non-homogeneous Gaussian Regression calibration for seasonal...

View source: R/calNGR.R

calNGRR Documentation

Non-homogeneous Gaussian Regression calibration for seasonal forecasts

Description

This function implements an EMOS method that adopts the Non-homogeneous Gaussian Regression (NGR; Gneiting et al. 2005) for use with ensemble forecasts. In particular, it uses a constant term and the ensemble mean signal as predictors for the calibrated forecast mean and a constant term and the ensemble spread for the inflation (shrinkage) of the ensemble spread. NGR approaches have been applied in many previous works, but mostly in the context of short-term forecasts. Only Tippet and Barnston 2008 have used NGRs in the context of seasonal forecasting.

Usage

calNGR(
  fcst.grid,
  obs.grid,
  crossval = TRUE,
  type = c("NGR", "ensNGR"),
  apply.to = c("all", "sig"),
  alpha = 0.1
)

Arguments

fcst.grid

climate4R grid. Forecasts to be calibrated (typically on a monthly/seasonal basis). At the moment, only gridded data are supported.

obs.grid

climate4R grid. Reference observations the forecasts are calibrated towards (typically on a monthly/seasonal basis).

crossval

Logical. TRUE (default) for leave-one-out-out cross-validation. FALSE for not cross-validation.

type

Logical. NGR or ensNGR. In the former (latter) case, the parameters are optimized by minimizing the CRPS (fair CRPS).

apply.to

Character. If "all" is selected, all forecasts are calibrated. Alternatively, if "sig" is selected, the calibration is only applied in those points where the correlation between the ensemble mean and the observations is statistically significant.

alpha

Significance (0.1 by default) of the ensemble mean correlation (i.e. "alpha = 0.05" would correspond to a 95% confidence level). Only works if "apply.to = sig".

Value

climate4R grid. Calibrated forecasts.

Note

Ensemble Model Output Statistics (EMOS) methods use the correspondence between the ensemble mean and the observations in the calibration process.

Author(s)

R. Manzanas and J. Bhend.

References

  • Gneiting, T., A.E. Raftery, A.H. Westveld, and T.Goldman, 2005: Calibrated Probabilistic Forecasting Using Ensemble Model Output Statistics and Minimum CRPS Estimation. Mon. Wea. Rev., 133 (5): 1098–1118. doi:10.1175/MWR2904.1

  • Tippett, M.K. and A.G. Barnston, 2008: Skill of Multimodel ENSO Probability Forecasts. Mon. Wea. Rev., 136, 3933–3946, https://doi.org/10.1175/2008MWR2431.1

See Also

Other calibration: calCCR(), calLM(), calMVA(), calRPC()

Examples

{
## loading seasonal forecasts (CFS) and observations (NCEP) of boreal winter temperature over Iberia
require(climate4R.datasets)
data("CFS_Iberia_tas"); fcst = CFS_Iberia_tas
data("NCEP_Iberia_tas"); obs = NCEP_Iberia_tas
## passing from daily data to seasonal averages
fcst = aggregateGrid(fcst, aggr.y = list(FUN = "mean", na.rm = TRUE))
obs = aggregateGrid(obs, aggr.y = list(FUN = "mean", na.rm = TRUE))
## interpolating forecasts to the observations' resolution
fcst = interpGrid(fcst, new.coordinates = getGrid(obs))
## applying calibration
fcst.cal = calNGR(fcst, obs, crossval = TRUE, type = "NGR", apply.to = "all")
## plotting climatologies
library(visualizeR)
spatialPlot(makeMultiGrid(climatology(obs),
                         climatology(fcst, by.member = FALSE),
                         climatology(fcst.cal, by.member = FALSE)),
           backdrop.theme = "coastline",
           layout = c(3, 1),
           names.attr = c("NCEP", "CFS (raw)", "CFS (calibrated)"))
}

SantanderMetGroup/calibratoR documentation built on July 8, 2023, 2:49 p.m.