Specifies a list of values controling the Bayesian Model Averaging fit of a mixture of normals to ensemble forecasts.
controlBMAnormal(maxIter, tol, equalVariance, biasCorrection, init)
A list whose components are the input arguments and their assigned values.
An integer specifying an upper limit on the number of iterations
for fitting the BMA mixture via EM. The default is Inf
,
which sets no upper limit on the number of iterations,
so that the convergence criterion based on eps
is used.
A numeric convergence tolerance. The EM fit for the mixture
model is terminated when the relative error in successive
objective values in the M-step falls below tol
.
The default is sqrt(.Machine$double.eps)
,
which is approximately 1.e-8
on IEEE compliant machines.
A logical value indicating whether or not the variances for the mixture components should to be equal. The default is to constrain them to be equal.
A character string describing the type of bias correction to be used.
"regression"
The bias correction term is formed by regression on the forecast values (including an intercept).
"additive"
The mean of the difference between observations and forecasts is used for bias correction.
"none"
No bias correction.
An optional list of initial values for standard deviations and weights. The default is to start with all standard deviations equal to 1, and with equal weights for each member of the ensemble.
A. E. Raftery, T. Gneiting, F. Balabdaoui and M. Polakowski, Using Bayesian model averaging to calibrate forecast ensembles, Monthly Weather Review 133:1155--1174, 2005.
C. Fraley, A. E. Raftery, T. Gneiting and J. M. Sloughter,
ensembleBMA
: An R
Package for Probabilistic Forecasting
using Ensemble and Bayesian Model Averaging,
Technical Report No. 516R, Department of Statistics, University of
Washington, 2007 (revised 2010).
ensembleBMAnormal
,
fitBMAnormal
data(ensBMAtest)
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")
if (FALSE) # R check
tempTestFit1 <- ensembleBMAnormal(tempTestData, trainingDays = 30,
control = controlBMAnormal(maxIter = 100, biasCorrection = "additive"))
# for quick run only; use more training days for forecasting
tempTestFit1 <- ensembleBMAnormal(tempTestData[1:20,], trainingDays = 5,
control = controlBMAnormal(maxIter = 100, biasCorrection = "additive"))
Run the code above in your browser using DataLab