ccr: Climate Conserving Recalibration

View source: R/ccr.R

ccrR Documentation

Climate Conserving Recalibration

Description

Climate conserving recalibration with correction factors for each lead time without smoothing (application to daily series not recommended).

Usage

ccr(fcst, obs, fcst.out = fcst, type = c("calibration", "prediction"), ...)

Arguments

fcst

n x m x k array of n lead times, m forecasts, of k ensemble members

obs

n x m matrix of veryfing observations

fcst.out

array of forecast values to which bias correction should be applied (defaults to fcst)

type

if set to "prediction", additional inflation of the spread as in linear regression (see details)

...

additional arguments for compatibility with other bias correction methods

Details

In calibration mode, the climate conserving recalibration (CCR) follows Weigel et al. (2008). In prediction mode, the CCR spread correction is expanded to take into account additional uncertainty from the signal calibration following linear regression theory. I.e. the inflation factor s.pred is

s.pred = s \sqrt{1 + 1/n + f_0^2 / \sum{f_j^2}}

where f_0 is the ensemble mean forecast anomaly that is to be adjusted, and \sum{f_j^2} is the sum of the squared ensemble mean forecast anomalies in the calibration set. n is the number of forecast instances in the calibration set.

References

Weigel, A., M. Liniger and C. Appenzeller (2008). Seasonal Ensemble Forecasts: Are Recalibrated Single Models Better than Multimodels? Monthly Weather Review, 137(4), 1460-1479.

Examples

fcst <- array(rnorm(3000*1*51, mean=1, sd=rep(seq(0.5,2, length=3000), each=1)), 
c(1, 3000, 51)) + 0.5*sin(seq(0,4,length=1))
obs <- array(rnorm(3000, mean=2), c(1, 3000)) + sin(seq(0,4, length=1))
fcst.debias <- biascorrection:::ccr(fcst, obs)
f.rmse <- sqrt(apply((obs - apply(fcst.debias, 2, mean))**2, 1, mean))
f.sd <- sqrt(mean(apply(fcst.debias, 2, sd)**2))
f.sd / f.rmse ## should be exactly 1
mean(fcst.debias - obs[1,]) ## should be 0 (rounding errors)


jonasbhend/biascorrection documentation built on Nov. 11, 2023, 1:16 a.m.