Documentation

Copula.Archimedean.Converse

← Copula mathematical handbook

Nelsen's Theorem 4.1.4: an Archimedean formula is a copula iff the generator is convex #

Nelsen, An Introduction to Copulas, second edition, Theorem 4.1.4: for a continuous strictly decreasing generator φ : [0, 1] → [0, ∞] with φ(1) = 0 and pseudo-inverse ψ = φ^[-1], the function C(u, v) = ψ(φ(u) + φ(v)) is a copula if and only if φ is convex. The library's BivariateGenerator builds convexity (of ψ on [0, ∞)) into the structure and proves the "if" direction (BivariateGenerator.copula). This file proves the converse.

The proof follows Nelsen: the rectangle inequality on [u₂, u₁] × [v, 1] (Lemma 4.1.3) says ψ(b) + ψ(a + c) ≤ ψ(a) + ψ(b + c) for 0 ≤ a ≤ b, c ≥ 0 (increments of ψ over intervals of a fixed length are nondecreasing, ArchimedeanPregenerator.increment_le). Nelsen then uses midpoint convexity and continuity; we instead use that an antitone function with nondecreasing increments is convex (convexOn_of_antitoneOn_of_increment_le): equal-step increments give the convexity inequality at rational weights, and monotonicity extends it to all weights, so no continuity argument is needed.

theorem ProbabilityTheory.Copula.increment_average_le {f : ℝ → ℝ} (hw : ∀ (a b c : ℝ), 0 ≤ a → a ≤ b → 0 ≤ c → f b + f (a + c) ≤ f a + f (b + c)) {x d : ℝ} (hx : 0 ≤ x) (hd : 0 ≤ d) {m n : ℕ} (hmn : m ≤ n) :
↑n * (f (x + ↑m * d) - f x) ≤ ↑m * (f (x + ↑n * d) - f x)

Equal-step increments: if increments of f over intervals of a fixed length are nondecreasing, then n (f(x + m d) - f(x)) ≤ m (f(x + n d) - f(x)) for m ≤ n.

theorem ProbabilityTheory.Copula.le_of_antitoneOn_of_increment_le {f : ℝ → ℝ} (hanti : AntitoneOn f (Set.Ici 0)) (hw : ∀ (a b c : ℝ), 0 ≤ a → a ≤ b → 0 ≤ c → f b + f (a + c) ≤ f a + f (b + c)) {x y : ℝ} (hx : 0 ≤ x) (hxy : x ≤ y) {b : ℝ} (hb0 : 0 ≤ b) (hb1 : b ≤ 1) :
f (x + b * (y - x)) ≤ f x + b * (f y - f x)

The convexity inequality along a segment x ≤ y, from nondecreasing increments and antitonicity.

theorem ProbabilityTheory.Copula.convexOn_of_antitoneOn_of_increment_le {f : ℝ → ℝ} (hanti : AntitoneOn f (Set.Ici 0)) (hw : ∀ (a b c : ℝ), 0 ≤ a → a ≤ b → 0 ≤ c → f b + f (a + c) ≤ f a + f (b + c)) :

An antitone function on [0, ∞) whose increments over intervals of a fixed length are nondecreasing (f(b) + f(a + c) ≤ f(a) + f(b + c) for 0 ≤ a ≤ b, 0 ≤ c) is convex.

The data of Nelsen's Theorem 4.1.4 without convexity, in the inverse-generator convention: ψ = toFun is nonnegative and antitone on [0, ∞) and strictly decreasing where positive, and φ = invFun is a right inverse of ψ on (0, 1] with φ(1) = 0.

Instances For

    The Archimedean formula of a pregenerator, with grounded boundary values.

    Equations
    Instances For

      The value ψ(s) as a point of I.

      Equations
      Instances For

        φ(ψ(s)) = s where ψ(s) > 0.

        The generator is antitone on (0, 1] (a consequence of the axioms).

        theorem ProbabilityTheory.Copula.ArchimedeanPregenerator.increment_le (p : ArchimedeanPregenerator) (hinc : ∀ (u₁ u₂ v : ↑unitInterval), u₂ ≤ u₁ → 0 ≤ ↑u₁ - ↑u₂ - p.cdf u₁ v + p.cdf u₂ v) {a b c : ℝ} (ha : 0 ≤ a) (hab : a ≤ b) (hc : 0 ≤ c) :
        p.toFun b + p.toFun (a + c) ≤ p.toFun a + p.toFun (b + c)

        The Wright-convexity inequality ψ(b) + ψ(a + c) ≤ ψ(a) + ψ(b + c) (0 ≤ a ≤ b, c ≥ 0) follows from the rectangle inequality on the rectangles [ψ(b), ψ(a)] × [ψ(c), 1].

        theorem ProbabilityTheory.Copula.ArchimedeanPregenerator.convexOn_of_rectangle (p : ArchimedeanPregenerator) (hinc : ∀ (u₁ u₂ v : ↑unitInterval), u₂ ≤ u₁ → 0 ≤ ↑u₁ - ↑u₂ - p.cdf u₁ v + p.cdf u₂ v) :

        The "only if" of Nelsen's Theorem 4.1.4, from the rectangle inequality on the rectangles [u₂, u₁] × [v, 1] (Nelsen's Lemma 4.1.3 condition): the inverse generator is convex.

        Nelsen, Theorem 4.1.4 ("only if"): if some bivariate copula has the CDF ψ(φ(u) + φ(v)), then the inverse generator ψ is convex on [0, ∞).

        The BivariateGenerator of a pregenerator with convex inverse generator.

        Equations
        • p.toGenerator hconv = { toFun := p.toFun, invFun := p.invFun, nonneg := ⋯, antitone := ⋯, convex := hconv, inv_nonneg := ⋯, inv_antitone := ⋯, inv_one := ⋯, right_inv := ⋯ }
        Instances For

          Nelsen, Theorem 4.1.4: ψ(φ(u) + φ(v)) is the CDF of a bivariate copula iff the inverse generator ψ is convex on [0, ∞).

          Every bivariate generator is a pregenerator (forgetting convexity).

          Equations
          • g.toPregenerator = { toFun := g.toFun, invFun := g.invFun, nonneg := ⋯, antitone := ⋯, strictAnti := ⋯, inv_nonneg := ⋯, inv_one := ⋯, right_inv := ⋯ }
          Instances For