CST_Calibration {CSTools} | R Documentation |

## Forecast Calibration

### Description

Five types of member-by-member bias correction can be performed.
The `"bias"`

method corrects the bias only, the `"evmos"`

method
applies a variance inflation technique to ensure the correction of the bias
and the correspondence of variance between forecast and observation (Van
Schaeybroeck and Vannitsem, 2011). The ensemble calibration methods
`"mse_min"`

and `"crps_min"`

correct the bias, the overall forecast
variance and the ensemble spread as described in Doblas-Reyes et al. (2005)
and Van Schaeybroeck and Vannitsem (2015), respectively. While the
`"mse_min"`

method minimizes a constrained mean-squared error using three
parameters, the `"crps_min"`

method features four parameters and
minimizes the Continuous Ranked Probability Score (CRPS). The
`"rpc-based"`

method adjusts the forecast variance ensuring that the
ratio of predictable components (RPC) is equal to one, as in Eade et al.
(2014). It is equivalent to function `Calibration`

but for objects
of class `s2dv_cube`

.

### Usage

```
CST_Calibration(
exp,
obs,
exp_cor = NULL,
cal.method = "mse_min",
eval.method = "leave-one-out",
multi.model = FALSE,
na.fill = TRUE,
na.rm = TRUE,
apply_to = NULL,
alpha = NULL,
memb_dim = "member",
sdate_dim = "sdate",
dat_dim = NULL,
ncores = NULL
)
```

### Arguments

`exp` |
An object of class |

`obs` |
An object of class |

`exp_cor` |
An optional object of class |

`cal.method` |
A character string indicating the calibration method used,
can be either |

`eval.method` |
A character string indicating the sampling method used, it
can be either |

`multi.model` |
A boolean that is used only for the |

`na.fill` |
A boolean that indicates what happens in case calibration is
not possible or will yield unreliable results. This happens when three or
less forecasts-observation pairs are available to perform the training phase
of the calibration. By default |

`na.rm` |
A boolean that indicates whether to remove the NA values or not.
The default value is |

`apply_to` |
A character string that indicates whether to apply the
calibration to all the forecast ( |

`alpha` |
A numeric value indicating the significance level for the
correlation test. Only useful if |

`memb_dim` |
A character string indicating the name of the member dimension. By default, it is set to 'member'. |

`sdate_dim` |
A character string indicating the name of the start date dimension. By default, it is set to 'sdate'. |

`dat_dim` |
A character string indicating the name of dataset dimension. The length of this dimension can be different between 'exp' and 'obs'. The default value is NULL. |

`ncores` |
An integer that indicates the number of cores for parallel computations using multiApply function. The default value is one. |

### Details

Both the `na.fill`

and `na.rm`

parameters can be used to
indicate how the function has to handle the NA values. The `na.fill`

parameter checks whether there are more than three forecast-observations pairs
to perform the computation. In case there are three or less pairs, the
computation is not carried out, and the value returned by the function depends
on the value of this parameter (either NA if `na.fill == TRUE`

or the
uncorrected value if `na.fill == TRUE`

). On the other hand, `na.rm`

is used to indicate the function whether to remove the missing values during
the computation of the parameters needed to perform the calibration.

### Value

An object of class `s2dv_cube`

containing the calibrated
forecasts in the element `data`

with the dimensions nexp, nobs and same
dimensions as in the 'exp' object. nexp is the number of experiment
(i.e., 'dat_dim' in exp), and nobs is the number of observation (i.e.,
'dat_dim' in obs). If dat_dim is NULL, nexp and nobs are omitted. If 'exp_cor'
is provided the returned array will be with the same dimensions as 'exp_cor'.

### Author(s)

VerĂ³nica Torralba, veronica.torralba@bsc.es

Bert Van Schaeybroeck, bertvs@meteo.be

### References

Doblas-Reyes F.J, Hagedorn R, Palmer T.N. The rationale behind the success of multi-model ensembles in seasonal forecasting-II calibration and combination. Tellus A. 2005;57:234-252. doi: 10.1111/j.1600-0870.2005.00104.x

Eade, R., Smith, D., Scaife, A., Wallace, E., Dunstone, N., Hermanson, L., & Robinson, N. (2014). Do seasonal-to-decadal climate predictions underestimate the predictability of the read world? Geophysical Research Letters, 41(15), 5620-5628. doi: 10.1002/2014GL061146

Van Schaeybroeck, B., & Vannitsem, S. (2011). Post-processing through linear regression. Nonlinear Processes in Geophysics, 18(2), 147. doi: 10.5194/npg-18-147-2011

Van Schaeybroeck, B., & Vannitsem, S. (2015). Ensemble post-processing using member-by-member approaches: theoretical aspects. Quarterly Journal of the Royal Meteorological Society, 141(688), 807-818. doi: 10.1002/qj.2397

### See Also

### Examples

```
# Example 1:
mod1 <- 1 : (1 * 3 * 4 * 5 * 6 * 7)
dim(mod1) <- c(dataset = 1, member = 3, sdate = 4, ftime = 5, lat = 6, lon = 7)
obs1 <- 1 : (1 * 1 * 4 * 5 * 6 * 7)
dim(obs1) <- c(dataset = 1, member = 1, sdate = 4, ftime = 5, lat = 6, lon = 7)
lon <- seq(0, 30, 5)
lat <- seq(0, 25, 5)
coords <- list(lat = lat, lon = lon)
exp <- list(data = mod1, coords = coords)
obs <- list(data = obs1, coords = coords)
attr(exp, 'class') <- 's2dv_cube'
attr(obs, 'class') <- 's2dv_cube'
a <- CST_Calibration(exp = exp, obs = obs, cal.method = "mse_min", eval.method = "in-sample")
# Example 2:
mod1 <- 1 : (1 * 3 * 4 * 5 * 6 * 7)
mod2 <- 1 : (1 * 3 * 1 * 5 * 6 * 7)
dim(mod1) <- c(dataset = 1, member = 3, sdate = 4, ftime = 5, lat = 6, lon = 7)
dim(mod2) <- c(dataset = 1, member = 3, sdate = 1, ftime = 5, lat = 6, lon = 7)
obs1 <- 1 : (1 * 1 * 4 * 5 * 6 * 7)
dim(obs1) <- c(dataset = 1, member = 1, sdate = 4, ftime = 5, lat = 6, lon = 7)
lon <- seq(0, 30, 5)
lat <- seq(0, 25, 5)
coords <- list(lat = lat, lon = lon)
exp <- list(data = mod1, coords = coords)
obs <- list(data = obs1, coords = coords)
exp_cor <- list(data = mod2, lat = lat, lon = lon)
attr(exp, 'class') <- 's2dv_cube'
attr(obs, 'class') <- 's2dv_cube'
attr(exp_cor, 'class') <- 's2dv_cube'
a <- CST_Calibration(exp = exp, obs = obs, exp_cor = exp_cor, cal.method = "evmos")
```

*CSTools*version 5.2.0 Index]