nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
copulas.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/copulas/copulas.hpp
4//
5// Copula density and CDF for the five MATLAB families:
6// Gaussian, t, Clayton, Frank, Gumbel.
7//
8// Inputs:
9// U — n × d matrix of pseudo-uniform observations, entries in (0, 1)
10// R — d × d correlation matrix (Gaussian, t)
11// α — scalar association parameter (Clayton, Frank, Gumbel)
12// ν — degrees of freedom (t)
13//
14// References:
15// • Nelsen, "An Introduction to Copulas", 2006.
16// • Joe, "Multivariate Models and Dependence Concepts", 1997.
17
18#pragma once
19
20#include <memory_resource>
21#include <nk/value/value.hpp>
22
23namespace nk::stats {
24
27
28
34 std::pmr::memory_resource *mr = nullptr);
35
40 std::pmr::memory_resource *mr = nullptr);
41
43Value copulapdf_t(const Value &U, const Value &R, double nu,
44 std::pmr::memory_resource *mr = nullptr);
45
47Value copulacdf_t(const Value &U, const Value &R, double nu,
48 std::pmr::memory_resource *mr = nullptr);
49
54Value copulapdf_clayton(const Value &U, double alpha,
55 std::pmr::memory_resource *mr = nullptr);
56
58Value copulacdf_clayton(const Value &U, double alpha,
59 std::pmr::memory_resource *mr = nullptr);
60
62Value copulapdf_frank(const Value &U, double alpha,
63 std::pmr::memory_resource *mr = nullptr);
64
69Value copulacdf_frank(const Value &U, double alpha,
70 std::pmr::memory_resource *mr = nullptr);
71
73Value copulapdf_gumbel(const Value &U, double alpha,
74 std::pmr::memory_resource *mr = nullptr);
75
79Value copulacdf_gumbel(const Value &U, double alpha,
80 std::pmr::memory_resource *mr = nullptr);
81
82
84} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value copulapdf_frank(const Value &U, double alpha, std::pmr::memory_resource *mr=nullptr)
Frank copula density (y = copulapdf('Frank', U, alpha)).
Value copulacdf_gaussian(const Value &U, const Value &R, std::pmr::memory_resource *mr=nullptr)
Gaussian copula CDF (p = copulacdf('Gaussian', U, R)).
Value copulapdf_clayton(const Value &U, double alpha, std::pmr::memory_resource *mr=nullptr)
Clayton copula density (y = copulapdf('Clayton', U, alpha)).
Value copulapdf_gumbel(const Value &U, double alpha, std::pmr::memory_resource *mr=nullptr)
Gumbel copula density (y = copulapdf('Gumbel', U, alpha)).
Value copulacdf_gumbel(const Value &U, double alpha, std::pmr::memory_resource *mr=nullptr)
Gumbel copula CDF.
Value copulacdf_t(const Value &U, const Value &R, double nu, std::pmr::memory_resource *mr=nullptr)
Student-t copula CDF (p = copulacdf('t', U, R, nu)).
Value copulapdf_t(const Value &U, const Value &R, double nu, std::pmr::memory_resource *mr=nullptr)
Student-t copula density (y = copulapdf('t', U, R, nu)).
Value copulacdf_clayton(const Value &U, double alpha, std::pmr::memory_resource *mr=nullptr)
Clayton copula CDF (C(u, v; α) = (u^{−α} + v^{−α} − 1)^{−1/α}).
Value copulacdf_frank(const Value &U, double alpha, std::pmr::memory_resource *mr=nullptr)
Frank copula CDF.
Value copulapdf_gaussian(const Value &U, const Value &R, std::pmr::memory_resource *mr=nullptr)
Gaussian copula density (y = copulapdf('Gaussian', U, R)).