Description Usage Arguments Details Value Author(s) References See Also Examples
This is the master routine for the calculation the Generalized Discrimination Score (aka Two-Alternatives Forced Choice Score - 2AFC) as described in the Paper of Mason and Weigel (2009). This routine requires, as input, datasets of forecasts and corresponding observations, as well as a specification of the verification context. The routine checks whether the input data are consistent with the verification context, then calls the appropriate function to calculate the 2AFC, and finally returns the 2AFC skill value.
1 | afc(obsv, fcst, obsv.type, fcst.type, m = 0, m2 = 0)
|
obsv |
Vector of observations. The required format depends on the specific verification context. More details below. |
fcst |
Vector or two-dimensional array of forecasts. The required format depends on the specific verification context. More details below. |
obsv.type |
Character specifying the type of the observations. Possible values: "d" (dichotomous), "m" (polychotomous with ordinal categories), "n" (polychotomous with nominal categories), "c" (continuous). |
fcst.type |
Character specifying the type of the forecasts. Possible values: "d" (dichotomous), "m" (polychotomous with ordinal categories), "n" (polychotomous with nominal categories), "p" (probabilistic), "c" (continuous) and "e" (ensemble). |
m |
Number of observation or forecast categories (only required if obsv.type or fcst.type equals "m" or "n") |
m2 |
Number of forecast categories (only required if both obsv.type and fcst.type equal "m"). The number of observation categories is then specified by the argument m above. |
Depending on the specific verification context (i.e. the choice for
obsv.type and fcst.type), this routine calls the appropriate
function(s) to calculate the 2AFC score. The following combinations of
obsv.type and fcst.type are possible: (1) "d-d"; (2) "d-m";
(3) "d-p"; (4) "d-c"; (5) "d-e"; (6) "m-m"; (7) "m-p"; (8) "m-c"; (9) "m-e";
(10) "n-n"; (11) "n-p"; (12) "c-c"; (13) "c-e". The required format of the
input data obsv and fcst depends on the verification
context:
(1) "d-d":
obsv: vector with dichotomous observations (values in
0,1)
fcst: vector of same length as obsv with dichotomous
forecasts (values in 0,1)
(2) "d-m":
obsv: vector with dichotomous observations (values in
0,1)
fcst: vector of same length as obsv with
polychotomous forecasts (values in 1,..,m)
(3) "d-p":
obsv: vector with dichotomous observations (values in
0,1)
fcst: vector of same length as obsv with forecast
probabilities for the event to happen
(4) "d-c":
obsv: vector with dichotomous observations (values in
0,1)
fcst: vector of same length as obsv with real-valued
forecasts
(5) "d-e":
obsv: vector with dichotomous observations (values in
0,1)
fcst: two-dimensional array with ensemble forecasts;
dim(fcst)[1] = length(obsv); dim(fcst)[2] = ensemble size.
(6) "m-m":
obsv: vector with polychotomous observations (values
in 1,..,m)
fcst: vector of same length as obsv with
polychotomous forecasts (values in 1,..,m2)
(7) "m-p":
obsv: vector with polychotomous observations (values
in 1,..,m)
fcst: two-dimensional array with forecast
probabilities for the m categories; dim(fcst)[1] = length(obsv);
dim(fcst)[2] = m
(8) "m-c":
obsv: vector with polychotomous observations (values
in 1,..,m)
fcst: vector of same length as obsv with
real-valued forecasts
(9) "m-e":
obsv: vector with polychotomous observations (values
in 1,..,m)
fcst: two-dimensional array with ensemble forecasts;
dim(fcst)[1] = length(obsv); dim(fcst)[2] = ensemble size.
(10) "n-n":
obsv: vector with polychotomous observations (values
in 1,..,m)
fcst: vector of same length as obsv with
polychotomous forecasts (values in 1,..,m)
(11) "n-p":
Same as "m-p".
(12) "c-c":
obsv: vector with real-valued observations
fcst: vector of same length as obsv with real-valued forecasts
(13) "c-e":
obsv: vector with real-valued observations
fcst: two-dimensional array with ensemble forecasts; dim(fcst)[1] =
length(obsv); dim(fcst)[2] = ensemble size.
p.afc |
Value of Generalized Discrimination Score (2AFC) |
Andreas Weigel, Federal Office of Meteorology and Climatology, MeteoSwiss, Zurich, Switzerland
S.J. Mason and A.P. Weigel, 2009. A generic verification framework for administrative purposes. Mon. Wea. Rev., 137, 331-349
afc.dd
afc.dm
afc.dp
afc.dc
afc.de
afc.mm
afc.mp
afc.mc
afc.me
afc.nn
afc.np
afc.cc
afc.ce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | #
#In all following examples, forecasts of the Nino-3.4 index are evaluated
#
#----------------------
#Example 1: Dichotomous observations, dichotomous forecasts
# ---------------------
#Load set of dichotomous observations and dichotomous forecasts
data(cnrm.nino34.dd)
obsv = cnrm.nino34.dd$obsv
fcst = cnrm.nino34.dd$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="d", fcst.type="d")
# ---------------------
#Example 2: Dichotomous observations, (ordinal) polychotomous forecasts
# ---------------------
#Load set of dichotomous observations and polychotomous forecasts (4 categories)
data(cnrm.nino34.dm)
obsv = cnrm.nino34.dm$obsv
fcst = cnrm.nino34.dm$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="d", fcst.type="m", m=4)
# ---------------------
#Example 3: Dichotomous observations, probabilistic forecasts
# ---------------------
#Load set of dichotomous observations and probabilistic forecasts
data(cnrm.nino34.dp)
obsv = cnrm.nino34.dp$obsv
fcst = cnrm.nino34.dp$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="d", fcst.type="p")
# ---------------------
#Example 4: Dichotomous observations, continuous forecasts
# ---------------------
#Load set of dichotomous observations and continuous forecasts
data(cnrm.nino34.dc)
obsv = cnrm.nino34.dc$obsv
fcst = cnrm.nino34.dc$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="d", fcst.type="c")
# ---------------------
#Example 5: Dichotomous observations, ensemble forecasts
# ---------------------
#Load set of dichotomous observations and 9-member ensemble forecasts
data(cnrm.nino34.de)
obsv = cnrm.nino34.de$obsv
fcst = cnrm.nino34.de$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="d", fcst.type="e")
# ---------------------
#Example 6: Polychotomous (ordinal) observations, polychotomous (ordinal) forecasts
# ---------------------
#Load set of polychotomous observations (4 categories) and polychotomous forecasts (4 categories)
data(cnrm.nino34.mm)
obsv = cnrm.nino34.mm$obsv
fcst = cnrm.nino34.mm$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="m", fcst.type="m", m=4, m2=4)
# ---------------------
#Example 7: Polychotomous (ordinal) observations, probabilistic forecasts forecasts
# ---------------------
#Load set of polychotomous observations (4 categories) and probabilistic forecasts
data(cnrm.nino34.mp)
obsv = cnrm.nino34.mp$obsv
fcst = cnrm.nino34.mp$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="m", fcst.type="p", m=4)
# ---------------------
#Example 8: Polychotomous (ordinal) observations, continuous forecasts
# ---------------------
#Load set of polychotomous observations (4 categories) and continuous forecasts
data(cnrm.nino34.mc)
obsv = cnrm.nino34.mc$obsv
fcst = cnrm.nino34.mc$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="m", fcst.type="c", m=4)
# ---------------------
#Example 9: Polychotomous (ordinal) observations, ensemble forecasts
# ---------------------
#Load set of polychotomous observations (4 categories) and 9-member ensemble forecasts
data(cnrm.nino34.me)
obsv = cnrm.nino34.me$obsv
fcst = cnrm.nino34.me$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="m", fcst.type="e", m=4)
# ---------------------
#Example 10: Polychotomous (nominal) observations, polychotomous (nominal) forecasts
# ---------------------
#Load set of polychotomous observations (4 categories) and polychotomous forecasts (4 categories)
data(cnrm.nino34.mm)
obsv = cnrm.nino34.mm$obsv
fcst = cnrm.nino34.mm$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="n", fcst.type="n", m=4)
# ---------------------
#Example 11: Polychotomous (nominal) observations, probabilistic forecasts
# ---------------------
#Load set of polychotomous observations (4 categories) and probabilistic forecasts
data(cnrm.nino34.mp)
obsv = cnrm.nino34.mp$obsv
fcst = cnrm.nino34.mp$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="n", fcst.type="p", m=4)
# ---------------------
#Example 12: Continuous observations, continuous forecasts
# ---------------------
#Load set of continuous observations and continuous forecasts
data(cnrm.nino34.cc)
obsv = cnrm.nino34.cc$obsv
fcst = cnrm.nino34.cc$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="c", fcst.type="c")
# ---------------------
#Example 13: Continuous observations, ensemble forecasts
# ---------------------
#Load set of continuous observations and 9-member ensemble forecasts
data(cnrm.nino34.ce)
obsv = cnrm.nino34.ce$obsv
fcst = cnrm.nino34.ce$fcst
#Calculate skill score
afc(obsv, fcst, obsv.type="c", fcst.type="e")
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.