Nelsen Table 4.1: one-parameter Archimedean families¶
Reference: Roger B. Nelsen, An Introduction to Copulas, second edition,
Springer, 2006, Table 4.1 (Section 4.2). The numbering below is Nelsen's and
agrees with the A01--A22 numbering of Ansari and Rockel.
Conventions. Nelsen writes C(u,v) = phi^[-1](phi(u) + phi(v)) with a
decreasing generator phi. The library uses the inverse generator psi
(field toFun of BivariateGenerator, convex on [0, infinity)) and the
generator phi (field invFun). Ranges are the ranges of Nelsen's Table 4.1
(as recorded in docs/ansari-rockel.md).
Status legend. "in library" means a compiled, proved copula constructor exists
for the stated range. All 22 families of the table are now in the library, each
on Nelsen's full parameter range (limiting parameter values that are not members
of the family, such as theta = 0 for #9, are noted where they are proved as
limits or special cases).
| # | Generator phi(t) |
Range of theta |
Status | Module and main declarations |
|---|---|---|---|---|
| 1 | (t^(-theta) - 1)/theta |
theta >= -1, theta != 0 |
in library (theta > 0 and -1 <= theta < 0; theta = 0 is independence) |
Copula.Families.Clayton, Copula.Archimedean.Clayton (claytonGenerator), Copula.Families.Clayton.Negative (claytonNegative) |
| 2 | (1 - t)^theta |
theta >= 1 |
in library | Copula.Families.Nelsen (nelsen2, nelsen2_cdf_full) |
| 3 | ln((1 - theta(1 - t))/t) |
-1 <= theta < 1 (the endpoint theta = 1 is Clayton(1) in this library) |
in library | Copula.Families.AMH (amh, cdf_amh) |
| 4 | (-ln t)^theta |
theta >= 1 |
in library | Copula.Families.Gumbel (gumbel) |
| 5 | -ln((e^(-theta t) - 1)/(e^(-theta) - 1)) |
theta != 0 |
in library (theta > 0 and theta < 0 separately; theta = 0 is independence) |
Copula.Families.Frank, Copula.Families.FrankNegative |
| 6 | -ln(1 - (1 - t)^theta) |
theta >= 1 |
in library | Copula.Families.Joe (joe, joe_cdf_full) |
| 7 | -ln(theta t + (1 - theta)) |
0 < theta <= 1 |
in library (also theta = 0 as W) |
Copula.Families.Nelsen7 (nelsen7) |
| 8 | (1 - t)/(1 + (theta - 1) t) |
theta >= 1 |
in library | Copula.Families.Nelsen8 (nelsen8) |
| 9 | ln(1 - theta ln t) |
0 < theta <= 1 |
in library (whole range) | Copula.Families.NelsenTable.N9 (nelsen9, cdf_nelsen9) |
| 10 | ln(2 t^(-theta) - 1) |
0 < theta <= 1 |
in library (full range; inner power of AMH(-1)) | Copula.Families.NelsenTable.N10 (nelsen10, cdf_nelsen10) |
| 11 | ln(2 - t^theta) |
0 < theta <= 1/2 |
in library (whole range; non-strict, pseudo-inverse clamped at ln 2; lambda_L = 0, lambda_U = 0; limit Pi at theta -> 0) |
Copula.Families.NelsenTable.N11 (nelsen11, cdf_nelsen11), Copula.TailDependence.NelsenTable, NelsenTableUpper, Copula.Families.NelsenTable.LimitsZero (tendsto_nelsen11_zero) |
| 12 | (1/t - 1)^theta |
theta >= 1 |
in library | Copula.Families.Nelsen (nelsen12, BB1 with theta = 1) |
| 13 | (1 - ln t)^theta - 1 |
theta > 0 |
in library (whole range; theta = 1 is independence) |
Copula.Families.NelsenTable.N13 (nelsen13, cdf_nelsen13, nelsen13_one) |
| 14 | (t^(-1/theta) - 1)^theta |
theta >= 1 |
in library | Copula.Families.Nelsen (nelsen14, BB1) |
| 15 | (1 - t^(1/theta))^theta |
theta >= 1 |
in library (Genest--Ghoudi) | Copula.Families.Nelsen (genestGhoudi) |
| 16 | (theta/t + 1)(1 - t) |
theta >= 0 |
in library (whole range; theta = 0 is W; theta -> infinity gives Pi/(Sigma - Pi) = Clayton(1); lambda_L = 1/2 for theta > 0) |
Copula.Families.NelsenTable.N16 (nelsen16, cdf_nelsen16, nelsen16_zero), Copula.Families.NelsenTable.Limits (tendsto_nelsen16_atTop), Copula.TailDependence.NelsenTable |
| 17 | -ln(((1 + t)^(-theta) - 1)/(2^(-theta) - 1)) |
theta != 0 |
in library (both signs at once; theta = -1 is independence; limits C_infinity = M and C_{-infinity} = max(0, (uv + u + v - 1)/2) (family 7 at 1/2, see below); lambda_L = lambda_U = 0) |
Copula.Families.NelsenTable.N17 (nelsen17, cdf_nelsen17, nelsen17_neg_one), Copula.Families.NelsenTable.LimitsInfinity (tendsto_nelsen17_atTop, tendsto_nelsen17_atBot) |
| 18 | e^(theta/(t - 1)) |
theta >= 2 |
in library (whole range; non-strict; theta -> infinity gives M; lambda_L = 0, lambda_U = 1) |
Copula.Families.NelsenTable.N18 (nelsen18, cdf_nelsen18), Copula.Families.NelsenTable.Limits (tendsto_nelsen18_atTop), Copula.TailDependence.NelsenTable |
| 19 | e^(theta/t) - e^theta |
theta > 0 |
in library (whole range) | Copula.Families.NelsenTable.N19 (nelsen19, cdf_nelsen19) |
| 20 | e^(t^(-theta)) - e |
theta > 0 |
in library (whole range) | Copula.Families.NelsenTable.N20 (nelsen20, cdf_nelsen20) |
| 21 | 1 - (1 - (1 - t)^theta)^(1/theta) |
theta >= 1 |
in library (whole range; non-strict; theta = 1 is W; lambda_L = 0, lambda_U = 2 - 2^(1/theta); limit M at infinity) |
Copula.Families.NelsenTable.N21 (nelsen21, cdf_nelsen21, nelsen21_one), Copula.TailDependence.NelsenTable, NelsenTableLower, Copula.Families.NelsenTable.LimitsInfinity (tendsto_nelsen21_atTop) |
| 22 | arcsin(1 - t^theta) |
0 < theta <= 1 |
in library (whole range; non-strict; lambda_L = 0, lambda_U = 0; corrected CDF, see below; limit Pi at theta -> 0) |
Copula.Families.NelsenTable.N22 (nelsen22, cdf_nelsen22), Copula.TailDependence.NelsenTable, NelsenTableUpper, Copula.Families.NelsenTable.LimitsZero (tendsto_nelsen22_zero) |
Non-strict generators (#11, #18, #21, #22) are built with
BivariateGenerator.ofClamp (Copula.Archimedean.Clamp): the pseudo-inverse is
F(min t a) for the inverse F of the generator on [0, a], a = phi(0).
The families whose convexity needs a second-derivative argument (#11, #13,
17, #18) prove it with convexOn_of_hasDerivWithinAt2_nonneg; #16 and #21 use¶
elementary convexity (Euclidean norm, convex antitone function of a concave
function), and #22 is an inner power of its theta = 1 member.
Correction for #22. With a = 1 - u^theta and b = 1 - v^theta, Table 4.1
prints C(u,v) = max((1 - a sqrt(1 - b^2) - b sqrt(1 - a^2))^(1/theta), 0).
This is correct only where phi(u) + phi(v) <= pi/2, equivalently
a^2 + b^2 <= 1; outside that region the copula is zero while the printed
expression is positive (it tends to one for small u = v). cdf_nelsen22
states the corrected formula with this case distinction.
Generic theory for BivariateGenerator (diagonal formula, strict inequality
C(u,u) < u, generator recovery phi(psi(s)) = s) lives in
Copula.Archimedean.Theory and Copula.Archimedean.Diagonal; shared convexity
lemmas for the new families are in Copula.Archimedean.TheoryConvex.
Kendall's tau, tail coefficients and quadrant dependence¶
Kendall's tau is proved from Nelsen's Corollary 5.1.4 (tau = 1 + 4 int_0^1 phi/phi'),
using BivariateGenerator.kendallTau_eq_of_hasDerivAt (Copula.Archimedean.KendallTauGenerator)
for an explicit differentiable generator. Tail coefficients use Corollary 5.4.3; quadrant
dependence uses Theorem 4.4.2 with Pi (Copula.Archimedean.Concordance). The first table lists
the results from the earlier round; the complete matrix is at the end of this page.
| # | Kendall's tau | Tails (lambda_L, lambda_U) and quadrant dependence |
Lean |
|---|---|---|---|
| 1 | theta/(theta + 2) (both signs) |
Clayton increasing in theta > 0 |
kendallTau_clayton, kendallTau_claytonNegative, lowerOrthantLE_clayton |
| 5 | 1 - (4/theta)(1 - D_1(theta)), D_1(theta) = (1/theta) int_0^theta t/(e^t - 1) dt (both signs) |
kendallTau_frank_debye, kendallTau_frankNegative_debye, debyeOne_neg |
|
| 6 | 1 + (4/theta) int_0^1 (1 - (1-t)^theta) log(1 - (1-t)^theta) / (1-t)^(theta-1) dt |
kendallTau_joe |
|
| 7 | 2 - 2/theta - 2(1 - theta)^2 log(1 - theta)/theta^2 (-1 at theta = 0) |
lambda_U = 0 |
kendallTau_nelsen7, kendallTau_nelsen7_zero, hasUpperTailDependence_nelsen7 |
| 8 | (theta - 4)/(3 theta) |
kendallTau_nelsen8 |
|
| 9 | 1 - (4/theta) int_0^1 t(1 - theta log t) log(1 - theta log t) dt |
NQD | kendallTau_nelsen9, isNQD_nelsen9 |
| 10 | (0, 0); NQD |
hasLowerTailDependence_nelsen10, hasUpperTailDependence_nelsen10, isNQD_nelsen10 |
|
| 11 | lambda_U = 0 |
hasUpperTailDependence_nelsen11 |
|
| 13 | 1 - (4/theta) int_0^1 t((1 - log t) - (1 - log t)^(1-theta)) dt |
(0, 0); PQD for theta >= 1, NQD for theta <= 1 |
kendallTau_nelsen13, hasLowerTailDependence_nelsen13, hasUpperTailDependence_nelsen13, isPQD_nelsen13, isNQD_nelsen13 |
| 15 | (2 theta - 3)/(2 theta - 1) |
kendallTau_genestGhoudi |
|
| 16 | 4 theta - 1 - 4 theta log((1 + theta)/theta) + 4(1 - theta) sqrt(theta) arctan(1/sqrt(theta)) (theta > 0) |
lambda_U = 0 |
kendallTau_nelsen16, hasUpperTailDependence_nelsen16 |
| 17 | (0, 0) |
hasLowerTailDependence_nelsen17, hasUpperTailDependence_nelsen17 |
|
| 18 | 1 - 4/(3 theta) |
kendallTau_nelsen18 |
|
| 19 | 1 - (4/theta) int_0^1 t^2 (1 - e^(theta - theta/t)) dt |
PQD | kendallTau_nelsen19, isPQD_nelsen19 |
| 20 | 1 - (4/theta) int_0^1 t^(theta+1) (1 - e^(1 - t^(-theta))) dt |
PQD | kendallTau_nelsen20, isPQD_nelsen20 |
| 21 | lambda_U = 2 - 2^(1/theta) |
hasUpperTailDependence_nelsen21 |
|
| 22 | lambda_U = 0 |
hasUpperTailDependence_nelsen22 |
Limit of family 17 at theta -> -infinity. With r = (1 + u)(1 + v)/2 the CDF tends to
max(1, r) - 1 = max(0, (uv + u + v - 1)/2), which is the member theta = 1/2 of family 7 and
not W (for example, at u = v = 0.8 the limit is 0.62, while W(0.8, 0.8) = 0.6); this is
proved by the two-sided bound nelsen17_bounds_neg.
Complete property matrix¶
Every family of Table 4.1 (plus the named Gumbel, Frank, Joe, AMH members) is classified for quadrant
dependence over its full parameter range (Copula.Archimedean.QuadrantClassification, one *_quadrant
theorem per family; negative statements are proved from tail coefficients, non-strictness of the
generator, or explicit witnesses). Kendall's tau is proved for all families (closed form where one
exists, otherwise the explicit integral of Corollary 5.1.4). Blomqvist's beta is proved in closed form
for all 22 families (Copula.Archimedean.BlomqvistTable, BlomqvistTableN; generic
BivariateGenerator.blomqvistBeta_copula). Spearman's rho is proved wherever a closed or one-dimensional
form exists; for the other families only the generic formula
BivariateGenerator.spearmanRho_copula (rho = 12 int int C - 3) is available and no elementary closed
form is known.
| # | PQD | NQD | Kendall's tau (new in this round) | Spearman's rho |
|---|---|---|---|---|
| 1 Clayton | theta > 0 |
-1 <= theta < 0 |
kendallTau_clayton[Negative] |
generic |
| 2 | never | iff theta = 1 |
kendallTau_nelsen2 |
4 Gamma(1/theta+1)^2/Gamma(2/theta+1) - 3 (spearmanRho_nelsen2) |
| 3 AMH | iff theta >= 0 |
iff theta <= 0 |
kendallTau_amh |
series, dilogarithm form for abs theta < 1, 4 pi^2 - 39 at 1, 33 - 48 log 2 at -1 (SpearmanRhoAMH*) |
| 4 Gumbel | yes | iff theta = 1 |
kendallTau_gumbel |
generic |
| 5 Frank | theta > 0 |
theta < 0 |
kendallTau_frank_debye |
1 - (12/theta)(D_1 - D_2) (spearmanRho_frank_debye, spearmanRho_frankNegative_debye) |
| 6 Joe | yes | iff theta = 1 |
kendallTau_joe |
generic |
| 7 | iff theta = 1 |
yes | kendallTau_nelsen7 |
nelsen7_rho |
| 8 | never | iff theta <= 2 |
kendallTau_nelsen8 |
generic |
| 9 | never | yes | kendallTau_nelsen9 |
one-dimensional integral (spearmanRho_nelsen9) |
| 10 | never | yes | kendallTau_nelsen10 |
generic |
| 11 | never | yes | kendallTau_nelsen11 |
generic |
| 12 | yes | never | kendallTau_nelsen12 |
generic |
| 13 | iff theta >= 1 |
iff theta <= 1 |
kendallTau_nelsen13 |
generic |
| 14 | yes | never | kendallTau_nelsen14 |
generic |
| 15 | never | iff theta = 1 |
kendallTau_genestGhoudi |
generic |
| 16 | iff theta >= 1 |
iff theta = 0 |
kendallTau_nelsen16 |
generic |
| 17 | iff theta >= -1 |
iff theta <= -1 |
kendallTau_nelsen17 |
generic |
| 18 | never | never | kendallTau_nelsen18 |
generic |
| 19 | yes | never | kendallTau_nelsen19 |
generic |
| 20 | yes | never | kendallTau_nelsen20 |
generic |
| 21 | never | iff theta = 1 |
kendallTau_nelsen21 |
generic |
| 22 | never | yes | kendallTau_nelsen22 |
generic |
Several families are neither PQD nor NQD on part of their range (#2 and #15 and #21 for theta > 1,
8 for theta > 2, #16 for 0 < theta < 1, and #18 throughout). Family #17 changes sign at¶
theta = -1, not at 0. "Generic" means Spearman's rho is available only as the double integral of the
CDF; Spearman's rho of the other families has no known elementary closed form.
Library revision: fe53ea2f · Lean 4.34.0