fitMOStruncnormal {ensembleMOS} | R Documentation |
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 |
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 |
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
.
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
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)