Learn R Programming

ensembleMOS (version 0.8.2)

fitMOSlognormal: Log-normal EMOS model fit to a training set

Description

Fits a log-normal EMOS model to a given training set.

Usage

fitMOSlognormal(ensembleData, control = controlMOSlognormal(),
                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 controlMOSlognormal. For details and default values, see controlMOSlognormal.

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 variance, see details.

Details

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

$$Y ~ LN(\mu, \sigma)$$

where \(LN\) denotes the log-normal distrbution with meanlog parameter \(\mu\) and scalelog parameter \(\sigma\), see Lognormal. The model is parametrized such that the mean value of the log-normal distribution is a linear function \(a + b_1 X_1 + \ldots + b_m X_m\) of the ensemble forecats, and the variance is a linear function \(c + d S^2\). For transformations between \(\mu, \sigma\) and mean and variance of the log-normal distribution, see Baran and Lerch (2015). See ensembleMOSlognormal for details.

References

S. Baran and S. Lerch, Log-normal distribution based Ensemble Model Output Statistics models for probabilistic wind-speed forecasting. Quarterly Journal of the Royal Meteorological Society 141:2289--2299, 2015.

See Also

controlMOSlognormal, ensembleMOSlognormal,

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 <- fitMOSlognormal(windTrain)
# }

Run the code above in your browser using DataLab