Learn R Programming

ensembleMOS (version 0.8.2)

fitMOStruncnormal: Truncated normal EMOS model fit to a training set

Description

Fits a truncated normal EMOS model to a given training set.

Usage

fitMOStruncnormal(ensembleData, control = controlMOStruncnormal(),
                  exchangeable = NULL)

Arguments

ensembleData

An ensembleData object including ensemble forecasts and verification observations. Missing values (indicated by NA) are allowed. Dates are ignored if they are included. This is the training set for the model.

control

A list of control values for the fitting functions specified via the function controlMOStruncnormal. For details and default values, see controlMOStruncnormal.

exchangeable

An optional numeric or character vector or factor indicating groups of ensemble members that are exchangeable (indistinguishable). The models have equal EMOS coefficients within each group. If supplied, this argument will override any specification of exchangeability in ensembleData.

Value

A list with the following output components:

a

The fitted intercept.

B

The fitted EMOS coefficients.

c,d

The fitted parameters for the squared scale, see details.

Details

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\). Specifically, \(a, b_1,\ldots, b_m, c, d\) are fitted to optimize control$scoringRule over the specified training period using optim with method = control$optimRule.

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

controlMOStruncnormal, ensembleMOStruncnormal,

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")
                             
windTrain <- trainingData(windTestData, trainingDays = 30,
                          date = "2008010100")

windTestFit <- fitMOStruncnormal(windTrain)
# }

Run the code above in your browser using DataLab