Learn R Programming

ensembleMOS (version 0.8.2)

controlMOStruncnormal: Control parameters for truncated normal EMOS models

Description

Specifies a list of values controling the truncated normal EMOS fit of ensemble forecasts.

Usage

controlMOStruncnormal(scoringRule = c("crps", "log"),
                      optimRule = c("BFGS","Nelder-Mead"),
                      coefRule = c("square", "none", "positive"),
                      varRule = c("square", "none"),
                      start = list(a = NULL, B = NULL,
                                   c = NULL, d = NULL),
                      maxIter = Inf)

Arguments

scoringRule

The scoring rule to be used in optimum score estimation. Options are "crps" for the continuous ranked probability score and "log" for the logarithmic score.

optimRule

Numerical optimization method to be supplied to optim. Options are "BFGS" for the Broyden-Fletcher-Goldfarb-Shanno algorithm and "Nelder-Mead" for the Nelder-Mead method, see optim for details.

coefRule

Method to control non-negativity of regression estimates. Options are:

  • "square" EMOS coefficients are parameterized as squares and thus gauranteed to be non-negative.

  • "positive" finds non-negative coefficents iteratively by setting negative estimates at the current iteration to zero.

  • "none" no restriction on the coefficient estimates.

varRule

Method to control non-negativity of the scale parameters. Options "square" and "none" are the same as in coefRule.

start

A list of starting parameters, a, B, c and d specifying initial values for the intercept coefficient and variance parameters supplied to optim. See details.

maxIter

An integer specifying the upper limit of the number of iterations used to fit the model.

Value

A list whose components are the input arguments and their assigned values.

Details

If no value is assigned to an argument, the first entry of the list of possibly choices will be used by default.

Given an ensemble of size \(m\): \(X_1, \ldots , X_m\), the following truncated normal model is fit by ensembleMOStruncnormal:

$$Y ~ N_0(a + b_1 X_1 + ... + b_m X_m, c + dS^2),$$

where \(N_0\) denotes the normal distribution truncated at zero, with location \(a + b_1 X_1 + ... + b_m X_m\) and squared scale \(c + dS^2\). B is a vector of fitted regression coefficients \(b_1, \ldots, b_m\). See ensembleMOStruncnormal for details.

References

T. L. Thorarinsdottir and T. Gneiting, Probabilistic forecasts of wind speed: Ensemble model output statistics by using heteroscedastic censored regression. Journal of the Royal Statistical Society Series A 173:371--388, 2010.

See Also

ensembleMOStruncnormal, fitMOStruncnormal

Examples

Run this code
# NOT RUN {
data("ensBMAtest", package = "ensembleBMA")

ensMemNames <- c("gfs","cmcg","eta","gasp","jma","ngps","tcwb","ukmo")

obs <- paste("MAXWSP10","obs", sep = ".")
ens <- paste("MAXWSP10", ensMemNames, sep = ".")
windTestData <- ensembleData(forecasts = ensBMAtest[,ens],
                             dates = ensBMAtest[,"vdate"],
                             observations = ensBMAtest[,obs],
                             station = ensBMAtest[,"station"],
                             forecastHour = 48,
                             initializationTime = "00")

windTestFitTN <- ensembleMOStruncnormal(windTestData, trainingDays = 25,
                                        dates = "2008010100",
                                        control = controlMOStruncnormal(maxIter = as.integer(100),
                                                                        scoringRule = "log",
                                                                        optimRule = "BFGS",
                                                                        coefRule= "none", 
                                                                        varRule = "square"))
# }

Run the code above in your browser using DataLab