fitMOStruncnormal: Truncated normal EMOS model fit to a training set

Description Usage Arguments Details Value References See Also Examples

Description

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

Usage

1
2
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.

Details

Given an ensemble of size m: X_1, … , 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, …, b_m. Specifically, a, b_1,…, b_m, c, d are fitted to optimize control$scoringRule over the specified training period using optim with method = control$optimRule.

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.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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)

Example output

Loading required package: ensembleBMA
Loading required package: chron
Loading required package: evd

Attaching package:ensembleMOSThe following objects are masked frompackage:ensembleBMA:

    brierScore, cdf, crps, quantileForecast, trainingData

ensembleMOS documentation built on May 2, 2019, 11:03 a.m.