MonotoneSplines.jl is a Julia package for monotone splines, which impose a monotonicity constraint on the smoothing splines.
Check the following paper for more details.
Lijun Wang, Xiaodan Fan, Huabai Li, and Jun S. Liu. “Monotone Cubic B-Splines with a Neural-Network Generator.” arXiv, November 17, 2023. https://doi.org/10.48550/arXiv.2307.01748.
@online{wangMonotoneCubicBSplines2023c,
title = {Monotone {{Cubic B-Splines}} with a {{Neural-Network Generator}}},
author = {Wang, Lijun and Fan, Xiaodan and Li, Huabai and Liu, Jun S.},
date = {2023-11-17},
eprint = {2307.01748},
eprinttype = {arxiv},
eprintclass = {astro-ph, stat},
doi = {10.48550/arXiv.2307.01748},
url = {http://arxiv.org/abs/2307.01748},
urldate = {2023-11-20},
pubstate = {preprint}
}
The package offers two deep-learning backends for the Multi-Layer Perceptrons (MLP) generator:
The statistical software R has offered several powerful packages on splines, such as splines
and fda
. We do not reinvent the wheel. Instead, we stand on the shoulders of the R giant by calling several basic core functions with the help of RCall.jl.
MonotoneSplines.jl is available at the General Registry, so you can easily install the package in the Julia session after typing ]
,
julia> ]
(@v1.8) pkg> add MonotoneSplines
By default, both PyCall.jl
and RCall.jl
would try to use the system Python and R, respectively (more details can be found in their repos).
Another easy way is to install standalone R
and Python
via Conda.jl (no need to install Conda.jl
explicitly) by specifying the following environmental variables before adding the package.
julia> ENV["PYTHON"]=""
julia> ENV["R_HOME"]="*"
julia> ]
(@v1.8) pkg> add MonotoneSplines
If you use the standalone R provided by Conda in Julia, the dependent R packages will be automatically installed during the building step.
The documentation https://hohoweiya.xyz/MonotoneSplines.jl/stable/ elaborates on the usage of the package via various simulation examples and an interesting astrophysics application.