Learn R Programming

ensembleMOS (version 0.8.2)

fitMOS: EMOS model fit to a training set

Description

Fits an EMOS model to a given training set.

Usage

fitMOS(ensembleData, control = NULL, model = NULL,
       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. The corresponding control function has to be chosen in accordance with the selected model. For the Gaussian (normal) EMOS model see controlMOSnormal, for the truncated normal model see controlMOStruncnormal, for the log-normal model see controlMOSlognormal, for the censored and shifted gamma model see controlMOScsg0, and for the censored generalized extreme value distribution model see controlMOSgev0.

model

A character string describing the EMOS model to be fit. Current choices are "normal" (typically used for temperature or pressure data), "truncnormal" (typically used for wind speed data), "lognormal" (typically used for wind speed data), "csg0" (typically used for precipitation accumulation data), and "gev0" (typically used for precipitation accumulation data). For specific details on model fitting see ensembleMOSnormal, ensembleMOStruncnormal, ensembleMOSlognormal, ensembleMOScsg0, or ensembleMOSgev0.

exchangeable

A numeric or character vector or factor indicating groups of ensemble members that are exchangeable (indistinguishable). The model fit will have equal weights and parameters within each group. The default determines exchangeability from ensembleData.

Value

A list with estimated coefficient values. The specific content depends on the chosen model.

References

Gaussian (normal) EMOS model: T. Gneiting, A. E. Raftery, A. H. Westveld and T. Goldman, Calibrated probabilistic forecasting using ensemble model output statistics and minimum CRPS estimation. Monthly Weather Review 133:1098--1118, 2005.

Truncated (normal) EMOS model: 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.

Log-normal EMOS model: 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.

Censored and shifted gamma EMOS model: M. Scheuerer and T. M. Hamill, Statistical post-processing of ensemble precipitation forecasts by fitting censored, shifted gamma distributions. Monthly Weather Review 143:4578--4596, 2015. S. Baran and D. Nemoda, Censored and shifted gamma distribution based EMOS model for probabilistic quantitative precipitation forecasting. Environmetrics 27:280--292, 2016.

Censored generalized extreme value distribution EMOS model: M. Scheuerer, Probabilistic quantitative precipitation forecasting using ensemble model output statistics. Quarterly Journal of the Royal Meteorological Society 140:1086--1096, 2014.

See Also

fitMOSnormal fitMOStruncnormal fitMOSlognormal fitMOScsg0 fitMOSgev0 controlMOSnormal controlMOStruncnormal controlMOSlognormal controlMOScsg0 controlMOSgev0

Examples

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

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

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

tempTrain <- trainingData(tempTestData, trainingDays = 30,
                          date  = "2008010100")

tempTrainFit <- fitMOS(tempTrain, model = "normal")

## equivalent to
##    tempTrainFit <- fitMOSnormal(tempTrain)
# }

Run the code above in your browser using DataLab