pava alternatives and similar packages
Based on the "Math" category.
Alternatively, view pava alternatives based on common mentions on social networks and blogs.
-
vector
An efficient implementation of Int-indexed arrays (both mutable and immutable), with a powerful loop optimisation framework . -
statistics
A fast, high quality library for computing with statistics in Haskell. -
HerbiePlugin
GHC plugin that improves Haskell code's numerical stability -
hgeometry
HGeometry is a library for computing with geometric objects in Haskell. It defines basic geometric types and primitives, and it implements some geometric data structures and algorithms. The main two focusses are: (1) Strong type safety, and (2) implementations of geometric algorithms and data structures that have good asymptotic running time guarantees. -
dimensional
Dimensional library variant built on Data Kinds, Closed Type Families, TypeNats (GHC 7.8+). -
computational-algebra
General-Purpose Computer Algebra System as an EDSL in Haskell -
mwc-random
A very fast Haskell library for generating high quality pseudo-random numbers. -
numhask
A haskell numeric prelude, providing a clean structure for numbers and operations that combine them. -
poly
Fast polynomial arithmetic in Haskell (dense and sparse, univariate and multivariate, usual and Laurent) -
cf
"Exact" real arithmetic for Haskell using continued fractions (Not formally proven correct) -
optimization
Some numerical optimization methods implemented in Haskell -
equational-reasoning
Agda-style equational reasoning in Haskell -
safe-decimal
Safe and very efficient arithmetic operations on fixed decimal point numbers -
monoid-subclasses
Subclasses of Monoid with a solid theoretical foundation and practical purposes -
eigen
Haskel binding for Eigen library. Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. -
modular-arithmetic
A useful type for working with integers modulo some constant.
InfluxDB - Power Real-Time Data Analytics at Scale
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of pava or a related project?
README
Pool adjacent violators algorithm
Compute greatest convex majorants and least concave minorants using the pool adjacent violators algorithm.
The pool adjacent violators algorithm (PAVA) is an iterative algorithm for solving monotonic regression problems. In particular, (antitonic) regression is the computation of a non-decreasing (non-increasing) sequence of values such that a given problem is optimized. PAVA can also be used to compute the greatest convex minorant and the least concave majorant of a given set of observables.
At the moment, greatest convex majorants and least concave minorants can be computed efficiently. More general isotonic regression is not yet supported, but may be in future releases.
Reading list
- A good introduction to PAVA.
- Isotone regression in R.
- Computation of greatest convex minorants in R.
- Wikipedia article on isotonic regression.
Run times
Run times with random exponential vectors of different lengths:
cabal bench 2>&1
pava> benchmarks
Running 1 benchmarks...
Benchmark pava-bench: RUNNING...
benchmarking Greatest convex minorant/Vector of length 1e3
time 397.8 μs (384.9 μs .. 421.6 μs)
0.984 R² (0.959 R² .. 0.999 R²)
mean 392.7 μs (387.4 μs .. 406.6 μs)
std dev 30.48 μs (10.82 μs .. 55.79 μs)
variance introduced by outliers: 67% (severely inflated)
benchmarking Greatest convex minorant/Vector of length 1e4
time 3.806 ms (3.689 ms .. 3.892 ms)
0.959 R² (0.869 R² .. 0.999 R²)
mean 4.001 ms (3.859 ms .. 4.631 ms)
std dev 801.4 μs (123.5 μs .. 1.807 ms)
variance introduced by outliers: 88% (severely inflated)
benchmarking Greatest convex minorant/Vector of length 1e5
time 39.91 ms (38.41 ms .. 41.42 ms)
0.996 R² (0.993 R² .. 0.998 R²)
mean 40.01 ms (39.19 ms .. 41.10 ms)
std dev 1.906 ms (1.265 ms .. 2.777 ms)
variance introduced by outliers: 13% (moderately inflated)
Benchmark pava-bench: FINISH