RMSSS {s2dv}R Documentation

Compute root mean square error skill score

Description

Compute the root mean square error skill score (RMSSS) between an array of forecast 'exp' and an array of observation 'obs'. The two arrays should have the same dimensions except along 'dat_dim' and 'memb_dim'. The RMSSSs are computed along 'time_dim', the dimension which corresponds to the start date dimension. RMSSS computes the root mean square error skill score of each exp in 1:nexp against each obs in 1:nobs which gives nexp * nobs RMSSS for each grid point of the array.
The p-value and significance test are optionally provided by an one-sided Fisher test or Random Walk test.

Usage

RMSSS(
  exp,
  obs,
  ref = NULL,
  time_dim = "sdate",
  dat_dim = NULL,
  memb_dim = NULL,
  pval = TRUE,
  sign = FALSE,
  alpha = 0.05,
  sig_method = "one-sided Fisher",
  sig_method.type = NULL,
  ncores = NULL
)

Arguments

exp

A named numeric array of experimental data which contains at least time dimension (time_dim). It can also be a vector with the same length as 'obs', then the vector will automatically be 'time_dim'.

obs

A named numeric array of observational data which contains at least time dimension (time_dim). The dimensions should be the same as parameter 'exp' except the length of 'dat_dim' and 'memb_dim' dimension. It can also be a vector with the same length as 'exp', then the vector will automatically be 'time_dim'.

ref

A named numerical array of the reference forecast data with at least time dimension, or 0 (typical climatological forecast) or 1 (normalized climatological forecast). If it is an array, the dimensions must be the same as 'exp' except 'memb_dim' and 'dat_dim'. If there is only one reference dataset, it should not have dataset dimension. If there is corresponding reference for each experiment, the dataset dimension must have the same length as in 'exp'. If 'ref' is NULL, the typical climatological forecast is used as reference forecast (equivalent to 0.) The default value is NULL.

time_dim

A character string indicating the name of dimension along which the RMSSS are computed. The default value is 'sdate'.

dat_dim

A character string indicating the name of dataset (nobs/nexp) dimension. The default value is NULL.

memb_dim

A character string indicating the name of the member dimension to compute the ensemble mean; it should be set to NULL if the data are already the ensemble mean. The default value is NULL.

pval

A logical value indicating whether to compute or not the p-value of the test Ho: RMSSS = 0. The default value is TRUE.

sign

A logical value indicating whether to compute or not the statistical significance of the test Ho: RMSSS = 0. The default value is FALSE.

alpha

A numeric of the significance level to be used in the statistical significance test. The default value is 0.05.

sig_method

A character string indicating the significance method. The options are "one-sided Fisher" (default) and "Random Walk".

sig_method.type

A character string indicating the test type of the significance method. Check RandomWalkTest() parameter test.type for details if parameter "sig_method" is "Random Walk". The default is NULL (since "one-sided Fisher" doesn't have different test types.)

ncores

An integer indicating the number of cores to use for parallel computation. The default value is NULL.

Value

A list containing the numeric arrays with dimension:
c(nexp, nobs, all other dimensions of exp except time_dim).
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.

$rmsss

A numerical array of the root mean square error skill score.

$p.val

A numerical array of the p-value with the same dimensions as $rmsss. Only present if pval = TRUE.

sign

A logical array of the statistical significance of the RMSSS with the same dimensions as $rmsss. Only present if sign = TRUE.

Examples

# Load sample data as in Load() example:
example(Load)
clim <- Clim(sampleData$mod, sampleData$obs)
ano_exp <- Ano(sampleData$mod, clim$clim_exp)
ano_obs <- Ano(sampleData$obs, clim$clim_obs)
rmsss <- RMSSS(ano_exp, ano_obs, dat_dim = 'dataset', memb_dim = 'member')

set.seed(1)
exp1 <- array(rnorm(30), dim = c(dataset = 2, time = 3, memb = 5))
set.seed(2)
obs1 <- array(rnorm(15), dim = c(time = 3, memb = 5, dataset = 1))
res1 <- RMSSS(exp1, obs1, time_dim = 'time', dat_dim = 'dataset')

exp2 <- array(rnorm(30), dim = c(lat = 2, time = 3, memb = 5))
obs2 <- array(rnorm(15), dim = c(time = 3, lat = 2))
res2 <- RMSSS(exp2, obs2, time_dim = 'time', memb_dim = 'memb')

exp3 <- array(rnorm(30), dim = c(lat = 2, time = 3))
obs3 <- array(rnorm(15), dim = c(time = 3, lat = 2))
res3 <- RMSSS(exp3, obs3, time_dim = 'time')


[Package s2dv version 2.0.0 Index]