Description
Discrete Distribution Approximations.
Description
Creates discretised versions of continuous distribution functions by mapping continuous values to an underlying discrete grid, based on a (uniform) frequency of discretisation, a valid discretisation point, and an integration range. For a review of discretisation methods, see Chakraborty (2015) <doi:10.1186/s40488-015-0028-6>.
README.md
distcrete
Discrete Distribution Approximations
distcrete
takes a distribution and a set of parameters and returns a list object with functions as elements. Each one is the equivalent to the function calls we typically expect to be able to do in R for a given distribution:
- Density e.g.
dnorm
- Distribution function e.g.
pnorm
- Quantile function e.g.
qnorm
- Random generation e.g.
rnorm
Each function created by distcrete
corresponds to the first letter of the non-discrete equivalent.
set.seed(415)
d0 <- distcrete::distcrete("gamma", 1, shape = 3, w = 0)
d0$d(1:10)
#> [1] 0.243022187 0.253486335 0.185086776 0.113451286 0.062683215
#> [6] 0.032332641 0.015882196 0.007521773 0.003462799 0.001558522
d0$p(c(.1,.5))
#> [1] 0.09958372 0.19115317
d0$q(c(.1,.5))
#> [1] 0 1
d0$r(10)
#> [1] 2 3 1 2 12 2 2 4 5 3
Allowed distributions
You can use any distribution that conforms to the following expectations:
- It has a distribution function like
p[dist name]
available - It has a quantile function like
q[dist name]
available
These can be loaded from a package or created on the fly, but must exist when the distcrete()
function is called.
Installation
You can install it from CRAN with:
install.packages("distcrete")
You can install distcrete
the most up to date version from github with:
# install.packages("devtools")
devtools::install_github("reconhub/distcrete")
Tests
devtools::test()
#> Loading distcrete
#> Loading required package: testthat
#> Testing distcrete
#> distcrete: .....................................................................................................................................
#> utils: ...............
#>
#> DONE ======================================================================