nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
fit.hpp
Go to the documentation of this file.
1// toolboxes/stats/include/nk/stats/fit/fit.hpp
2//
3// Distribution fitters and likelihood scoring (function-form).
4
5#pragma once
6
7#include <memory_resource>
8#include <nk/value/value.hpp>
9
10#include <tuple>
11
12namespace nk::stats {
13
16
17
26
38std::tuple<Value, Value, Value, Value>
39normfit(const Value &x, double alpha,
40 std::pmr::memory_resource *mr = nullptr);
41
55std::tuple<Value, Value, Value, Value>
56normfit(const Value &x, double alpha, const Value &cens, const Value &freq,
57 std::pmr::memory_resource *mr = nullptr);
58
68std::tuple<Value, Value>
69poissfit(const Value &x, double alpha,
70 std::pmr::memory_resource *mr = nullptr);
71
85std::tuple<Value, Value>
86expfit(const Value &x, double alpha,
87 const Value &cens = Value::Empty, const Value &freq = Value::Empty,
88 std::pmr::memory_resource *mr = nullptr);
89
99std::tuple<Value, Value, Value, Value>
100unifit(const Value &x, double alpha,
101 std::pmr::memory_resource *mr = nullptr);
102
115std::tuple<Value, Value>
116lognfit(const Value &x, double alpha,
117 std::pmr::memory_resource *mr = nullptr);
118
132std::tuple<Value, Value>
133lognfit(const Value &x, double alpha, const Value &cens, const Value &freq,
134 std::pmr::memory_resource *mr = nullptr);
135
146std::tuple<Value, Value>
147binofit(const Value &x, const Value &n, double alpha,
148 std::pmr::memory_resource *mr = nullptr);
149
159std::tuple<Value, Value>
160raylfit(const Value &x, double alpha,
161 std::pmr::memory_resource *mr = nullptr);
162
182double normlike(double mu, double sigma, const Value &x,
183 const Value &cens, const Value &freq,
184 std::pmr::memory_resource *mr = nullptr);
185
193double explike(double mu, const Value &x,
194 std::pmr::memory_resource *mr = nullptr);
195
204double lognlike(double mu, double sigma, const Value &x,
205 std::pmr::memory_resource *mr = nullptr);
206
214double gamlike(double a, double b, const Value &x,
215 std::pmr::memory_resource *mr = nullptr);
216
224double betalike(double a, double b, const Value &x,
225 std::pmr::memory_resource *mr = nullptr);
226
234double wbllike(double a, double b, const Value &x,
235 std::pmr::memory_resource *mr = nullptr);
236
244double evlike(double mu, double sigma, const Value &x,
245 std::pmr::memory_resource *mr = nullptr);
246
255double gevlike(double k, double sigma, double mu, const Value &x,
256 std::pmr::memory_resource *mr = nullptr);
257
265double gplike(double k, double sigma, const Value &x,
266 std::pmr::memory_resource *mr = nullptr);
267
268
270} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
static const Value Empty
MATLAB-style empty matrix sentinel — a 0×0 DOUBLE value.
Definition value.hpp:136
double gevlike(double k, double sigma, double mu, const Value &x, std::pmr::memory_resource *mr=nullptr)
Generalised Extreme Value nLogL (nLogL = gevlike(k, sigma, mu, x)).
std::tuple< Value, Value > lognfit(const Value &x, double alpha, std::pmr::memory_resource *mr=nullptr)
Lognormal MLE without censoring ([parm, pci] = lognfit(x, alpha)).
std::tuple< Value, Value > binofit(const Value &x, const Value &n, double alpha, std::pmr::memory_resource *mr=nullptr)
Binomial parameter CI ([phat, pci] = binofit(x, n, alpha)).
std::tuple< Value, Value > poissfit(const Value &x, double alpha, std::pmr::memory_resource *mr=nullptr)
Poisson MLE ([lhat, lci] = poissfit(x, alpha)).
double gplike(double k, double sigma, const Value &x, std::pmr::memory_resource *mr=nullptr)
Generalised Pareto nLogL (nLogL = gplike(k, sigma, x), theta = 0).
std::tuple< Value, Value > expfit(const Value &x, double alpha, const Value &cens=Value::Empty, const Value &freq=Value::Empty, std::pmr::memory_resource *mr=nullptr)
Exponential MLE ([muhat, muci] = expfit(x, alpha, cens, freq)).
double betalike(double a, double b, const Value &x, std::pmr::memory_resource *mr=nullptr)
Beta nLogL (nLogL = betalike(a, b, x)).
double lognlike(double mu, double sigma, const Value &x, std::pmr::memory_resource *mr=nullptr)
Lognormal nLogL (nLogL = lognlike(mu, sigma, x)).
double gamlike(double a, double b, const Value &x, std::pmr::memory_resource *mr=nullptr)
Gamma nLogL (nLogL = gamlike(a, b, x)).
std::tuple< Value, Value, Value, Value > normfit(const Value &x, double alpha, std::pmr::memory_resource *mr=nullptr)
Normal MLE without censoring ([muhat, sigmahat, muci, sigmaci] = normfit(x, alpha)).
double wbllike(double a, double b, const Value &x, std::pmr::memory_resource *mr=nullptr)
Weibull nLogL (nLogL = wbllike(a, b, x)).
std::tuple< Value, Value > raylfit(const Value &x, double alpha, std::pmr::memory_resource *mr=nullptr)
Rayleigh MLE ([shat, sci] = raylfit(x, alpha)).
std::tuple< Value, Value, Value, Value > unifit(const Value &x, double alpha, std::pmr::memory_resource *mr=nullptr)
Continuous-uniform MLE ([ahat, bhat, aci, bci] = unifit(x, alpha)).
double explike(double mu, const Value &x, std::pmr::memory_resource *mr=nullptr)
Exponential nLogL (nLogL = explike(mu, x)).
double normlike(double mu, double sigma, const Value &x, const Value &cens, const Value &freq, std::pmr::memory_resource *mr=nullptr)
Normal negative-log-likelihood (nLogL = normlike(mu, sigma, x, cens, freq)).
double evlike(double mu, double sigma, const Value &x, std::pmr::memory_resource *mr=nullptr)
Type-I EV nLogL (nLogL = evlike(mu, sigma, x)).