scores_mixnorm | R Documentation |
Calculating scores for a mixture of normal distributions.
crps_mixnorm(y, m, s, w = NULL)
crps_mixnorm_int(y, m, s, w = NULL, rel_tol = 1e-06)
logs_mixnorm(y, m, s, w = NULL)
dss_mixnorm(y, m, s, w = NULL)
y |
vector of observations. |
m |
matrix of mean parameters; rows represent observations, columns represent mixture components. |
s |
matrix of scale parameters; same structure as |
w |
optional; matrix of non-negative weights; same structure as |
rel_tol |
relative accuracy for numerical integration. |
logs_mixnorm
and crps_mixnorm
calculate scores via analytical formulas. crps_mixnorm_int
uses numerical integration for the CRPS; this can be faster if there are many mixture components (i.e., if m
, s
and w
have many columns). See examples below.
A vector of score values.
# Example 1: 100 observations, 15 mixture components
mval <- matrix(rnorm(100*15), nrow = 100)
sdval <- matrix(rgamma(100*15, shape = 2), nrow = 100)
weights <- matrix(rep(1/15, 100*15), nrow = 100)
y <- rnorm(100)
crps1 <- crps_mixnorm(y = y, m = mval, s = sdval, w = weights)
crps2 <- crps_mixnorm_int(y = y, m = mval, s = sdval, w = weights)
## Not run:
# Example 2: 2 observations, 10000 mixture components
mval <- matrix(rnorm(2*10000), nrow = 2)
sdval <- matrix(rgamma(2*10000, shape = 2), nrow = 2)
weights <- matrix(rep(1/10000, 2*10000), nrow = 2)
y <- rnorm(2)
# With many mixture components, numerical integration is much faster
system.time(crps1 <- crps_mixnorm(y = y, m = mval, s = sdval, w = weights))
system.time(crps2 <- crps_mixnorm_int(y = y, m = mval, s = sdval, w = weights))
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.