| crps.numeric | R Documentation |
Calculate the Continuous Ranked Probability Score (CRPS) given observations and parameters of a family of distributions.
## S3 method for class 'numeric'
crps(y, family, ...)
y |
vector of realized values. |
family |
string which specifies the parametric family; current options:
|
... |
vectors of parameter values; expected input depends on the chosen
|
Mathematical details are available in Appendix A of the vignette Evaluating probabilistic forecasts with scoringRules that accompanies the package.
The parameters supplied to each of the functions are numeric vectors:
Distributions defined on the real line:
"laplace" or "lapl":
location (real-valued location parameter),
scale (positive scale parameter);
see crps_lapl
"logistic" or "logis":
location (real-valued location parameter),
scale (positive scale parameter);
see crps_logis
"normal" or "norm":
mean, sd (mean and standard deviation);
see crps_norm
"normal-mixture" or "mixture-normal" or "mixnorm":
m (mean parameters),
s (standard deviations),
w (weights);
see crps_mixnorm;
note: matrix-input for parameters
"t":
df (degrees of freedom),
location (real-valued location parameter),
scale (positive scale parameter);
see crps_t
"two-piece-exponential" or "2pexp":
location (real-valued location parameter),
scale1, scale2 (positive scale parameters);
see crps_2pexp
"two-piece-normal" or "2pnorm":
location (real-valued location parameter),
scale1, scale2 (positive scale parameters);
see crps_2pnorm
Distributions for non-negative random variables:
"exponential" or "exp":
rate (positive rate parameter);
see crps_exp
"gamma":
shape (positive shape parameter),
rate (positive rate parameter),
scale (alternative to rate);
see crps_gamma
"log-laplace" or "llapl":
locationlog (real-valued location parameter),
scalelog (positive scale parameter);
see crps_llapl
"log-logistic" or "llogis":
locationlog (real-valued location parameter),
scalelog (positive scale parameter);
see crps_llogis
"log-normal" or "lnorm":
locationlog (real-valued location parameter),
scalelog (positive scale parameter);
see crps_lnorm
Distributions with flexible support and/or point masses:
"beta":
shape1, shape2 (positive shape parameters),
lower, upper (lower and upper limits);
see crps_beta
"uniform" or "unif":
min, max (lower and upper limits),
lmass, umass (point mass in lower or upper limit);
see crps_unif
"expM":
location (real-valued location parameter),
scale (positive scale parameter),
mass (point mass in location);
see crps_expM
"gev":
location (real-valued location parameter),
scale (positive scale parameter),
shape (real-valued shape parameter);
see crps_gev
"gpd":
location (real-valued location parameter),
scale (positive scale parameter),
shape (real-valued shape parameter),
mass (point mass in location);
see crps_gpd
"tlogis":
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
see crps_tlogis
"clogis":
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
see crps_clogis
"gtclogis":
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
lmass, umass (point mass in lower or upper limit);
see crps_gtclogis
"tnorm":
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
see crps_tnorm
"cnorm":
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
see crps_cnorm
"gtcnorm":
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
lmass, umass (point mass in lower or upper limit);
see crps_gtcnorm
"tt":
df (degrees of freedom),
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
see crps_tt
"ct":
df (degrees of freedom),
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
see crps_ct
"gtct":
df (degrees of freedom),
location (location parameter),
scale (scale parameter),
lower, upper (lower and upper limits);
lmass, umass (point mass in lower or upper limit);
see crps_gtct
Distributions of discrete variables:
"binom":
size (number of trials (zero or more)),
prob (probability of success on each trial);
see crps_binom
"hyper":
m (the number of white balls in the urn),
n (the number of black balls in the urn),
k (the number of balls drawn from the urn);
see crps_hyper
"negative-binomial" or "nbinom":
size (positive dispersion parameter),
prob (success probability),
mu (mean, alternative to prob);
see crps_nbinom
"poisson" or "pois":
lambda (positive mean);
see crps_pois
All numerical arguments should be of the same length. An exception are scalars of length 1, which will be recycled.
Vector of score values. A lower score indicates a better forecast.
Alexander Jordan, Fabian Krueger, Sebastian Lerch
Closed form expressions of the CRPS for specific distributions:
Baran, S. and S. Lerch (2015): 'Log-normal distribution based Ensemble Model Output Statistics models for probabilistic wind-speed forecasting', Quarterly Journal of the Royal Meteorological Society 141, 2289-2299. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/qj.2521")} (Log-normal)
Friederichs, P. and T.L. Thorarinsdottir (2012): 'Forecast verification for extreme value distributions with an application to probabilistic peak wind prediction', Environmetrics 23, 579-594. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/env.2176")} (Generalized Extreme Value, Generalized Pareto)
Gneiting, T., Larson, K., Westvelt III, A.H. and T. Goldman (2005): 'Calibrated probabilistic forecasting using ensemble model output statistics and minimum CRPS estimation', Monthly Weather Review 133, 1098-1118. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1175/mwr2904.1")} (Normal)
Gneiting, T., Larson, K., Westrick, K., Genton, M.G. and E. Aldrich (2006): 'Calibrated probabilistic forecasting at the stateline wind energy center: The regime-switching space-time method', Journal of the American Statistical Association 101, 968-979. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1198/016214506000000456")} (Censored normal)
Gneiting, T. and T.L. Thorarinsdottir (2010): ‘Predicting inflation: Professional experts versus no-change forecasts’, arXiv preprint arXiv:1010.2318. (Two-piece normal)
Grimit, E.P., Gneiting, T., Berrocal, V.J. and N.A. Johnson (2006): 'The continuous ranked probability score for circular variables and its application to mesoscale forecast ensemble verification', Quarterly Journal of the Royal Meteorological Society 132, 2925-2942. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1256/qj.05.235")} (Mixture of normals)
Scheuerer, M. and D. Moeller (2015): 'Probabilistic wind speed forecasting on a grid based on ensemble model output statistics', Annals of Applied Statistics 9, 1328-1349. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1214/15-aoas843")} (Gamma)
Thorarinsdottir, T.L. and T. Gneiting (2010): '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. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1111/j.1467-985x.2009.00616.x")} (Truncated normal)
Wei, W. and L. Held (2014): ‘Calibration tests for count data’, TEST 23, 787-205. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s11749-014-0380-8")} (Poisson, Negative Binomial)
Independent listing of closed-form solutions for the CRPS:
Taillardat, M., Mestre, O., Zamo, M. and P. Naveau (2016): 'Calibrated ensemble forecasts using quantile regression forests and ensemble model output statistics', Monthly Weather Review 144, 2375-2393. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1175/mwr-d-15-0260.1")}
logs.numeric
crps(y = 1, family = "normal", mean = 0, sd = 2)
crps(y = rnorm(20), family = "normal", mean = 1:20, sd = sqrt(1:20))
## Arguments can have different lengths:
crps(y = rnorm(20), family = "normal", mean = 0, sd = 2)
crps(y = 1, family = "normal", mean = 1:20, sd = sqrt(1:20))
## Mixture of normal distributions requires matrix input for parameters:
mval <- matrix(rnorm(20*50), nrow = 20)
sdval <- matrix(runif(20*50, min = 0, max = 2), nrow = 20)
weights <- matrix(rep(1/50, 20*50), nrow = 20)
crps(y = rnorm(20), family = "mixnorm", m = mval, s = sdval, w = weights)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.