calc_cramers_dist_one_model_pair: Calculate the approximated Cramer’s distance between a pair...

View source: R/calc_cramers_dist_one_model_pair.R

calc_cramers_dist_one_model_pairR Documentation

Calculate the approximated Cramer’s distance between a pair of distributions F and G that are represented by a collection of quantiles using a specific approximation rule.

Description

Calculate the approximated Cramer’s distance between a pair of distributions F and G that are represented by a collection of quantiles using a specific approximation rule.

Usage

calc_cramers_dist_one_model_pair(q_F, tau_F, q_G, tau_G, approx_rule)

Arguments

q_F

vector containing the quantiles of F

tau_F

vector containing the probability levels corresponding to the quantiles of F.

q_G

vector containing the quantiles of G

tau_G

vector containing the probability levels corresponding to the quantiles of G.

approx_rule

string specifying which formula to use for approximation. Valid rules are "approximation1", "approximation2", "left_sided_riemann", and "trapezoid_riemann". See Details for more information.

Details

This function calculate the aprroximated Cramer’s distance between a pair of distributions F and G that are represented by a collection of quantiles using a specified approximation rule. Specifying "approximation1" or "approximation2" as approx_rule requires the two vectors of quantiles to be of equal length. These approximation methods are formulated based on equally-spaced probability levels. The approximation formula for "approximation1" is

\text{CD}(F,G) \approx \left\{\frac{1}{K(K+1)}\sum^{2K-1}_{i=1}b_i(b_i+1)(q_{i+1}-q_i)\right\}

and the approximation formula for "approximation2" is

\text{CD}(F,G) \approx \left\{\frac{1}{(K+1)^2}\sum^{2K-1}_{i=1}b_i^2(q_{i+1}-q_i)\right\}

where q_i is an element in a vector of an ordered pooled quantiles of q_F and q_G and b_i is an element of a vector of the absolute values of cumulative sums of \mathbf{a}, whose element is 1 if q_i is a quantile of F or -1 if q_i is a quantile of G.

Specifying "left_sided_riemann" or "trapezoid_riemann" as approx_rule accommodates cases when the lengths of q_F and q_G are not equal and when tau_F and tau_G are not equal. A Riemann sum approach is used to approximate a pairwise Cramér distance. The approximation formula for "left_sided_riemann" is

\text{CD}(F,G) \approx \left\{\sum^{2K-1}_{j=1}(\tau^F_j-\tau^G_j)^2(q_{i+1}-q_i)\right\}

and the approximation formula for "trapezoid_riemann" is

\text{CD}(F,G) \approx \left\{\frac{1}{(K+1)^2}\sum^{2K-1}_{i=1}\frac{(\tau^F_j-\tau^G_j)^2+(\tau^F_{j+1}-\tau^G_{j+1})^2}{2}(q_{i+1}-q_i)\right\}

where q_i is an element in a vector of an ordered pooled quantiles of q_F and q_G and \tau^F_j and \tau^G_j are defined as the probability level of a quantile in q_F when q_i comes from F and the probability level of a quantile in q_G when q_i comes from G, respectively.

Value

a single value of approximated pairwise Cramér distance between q_F and q_G

Examples

f_vector <- 1:9
tau_F_vector <- tau_G_vector <- seq(0.1, 0.9, 0.1)
g_vector <- seq(4, 20, 2)
calc_cramers_dist_one_model_pair(f_vector, tau_F_vector, g_vector, tau_G_vector, "left_sided_riemann")

reichlab/covidHubUtils documentation built on Feb. 6, 2024, 1:42 p.m.