{"id":28089475,"url":"https://github.com/jaksle/stabledistributions.jl","last_synced_at":"2026-02-23T13:06:25.609Z","repository":{"id":227263035,"uuid":"770918117","full_name":"jaksle/StableDistributions.jl","owner":"jaksle","description":"Generation and estimation of stable distributions","archived":false,"fork":false,"pushed_at":"2024-03-18T19:00:02.000Z","size":96,"stargazers_count":21,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-14T17:13:08.963Z","etag":null,"topics":["distribution","julia","statistics"],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaksle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-12T11:43:46.000Z","updated_at":"2025-07-03T18:00:56.000Z","dependencies_parsed_at":"2025-05-13T12:58:49.014Z","dependency_job_id":"171ad805-27ff-4392-a761-af610238a3db","html_url":"https://github.com/jaksle/StableDistributions.jl","commit_stats":null,"previous_names":["jaksle/stabledistributions.jl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jaksle/StableDistributions.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaksle%2FStableDistributions.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaksle%2FStableDistributions.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaksle%2FStableDistributions.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaksle%2FStableDistributions.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaksle","download_url":"https://codeload.github.com/jaksle/StableDistributions.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaksle%2FStableDistributions.jl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266520988,"owners_count":23942368,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distribution","julia","statistics"],"created_at":"2025-05-13T12:58:40.728Z","updated_at":"2026-02-23T13:06:25.529Z","avatar_url":"https://github.com/jaksle.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StableDistributions.jl\n\nGeneration and estimation of the class of stable distributions (see on [Wikipedia](https://en.wikipedia.org/wiki/Stable_distribution)) in Julia. It fully complies with the interface of [Distributions.jl](https://github.com/JuliaStats/Distributions.jl) package. The algorithms are based on book John P. Nolan, \"Univariate Stable Distributions\", Springer 2020 and related publications of John P. Nolan.\n\n## Defining stable distribution\n\nThis package uses the so-called type-1 parametrisation determined by:\n- stability index 0 \u003c α ≤ 2,\n- skewness parameter -1 ≤ β ≤ 1,\n- scale 0 \u003c σ,\n- location μ\n\nSuch distribution is uniquely characterised by its characteristic function (Fourier transform of its pdf)\n```math\n\\varphi(t; \\alpha, \\beta, \\sigma, \\mu) = \\exp\\big(\\mathrm i t\\mu -|\\sigma t|^\\alpha(1-\\mathrm i\\beta\\mathrm{sgn}(t)\\Phi(t))\\big)\n```\nwith $\\Phi(t) = -\\frac{2}{\\pi}\\log|t|$ for α = 1 or $\\Phi(t) = \\tan(\\pi\\alpha/2)$ for α ≠ 1.\n\nTo construct stable distribution one can use:\n- `Stable(α)` for standard symmetric α-stable distribution equivalent to Stable(α, 0, 1, 0),\n- `Stable(α, β)` for standard α-stable distribution with skewness parameter β equivalent to Stable(α, β, 1, 0),\n- `Stable(α, β, σ, μ)` in general case.\n\n## Generating values from stable distribution\n\nOne can use standard functions `rand(d::Stable)` for one value or `rand(d::Stable, shape)` for a series of values formatted with a given shape.\n\n## Utility functions\n\nProbability density function `pdf`, comultative probability function `cdf`, moment generating function `mgf`, characteristic function `cf` and quantiles `quantile`, and few ralated functions are also available. Values of `pdf`, `cdf` and `quantile` are approximate and based on numerical approximations of the corresponding integral representions and additional numerical function inversion for `quantile`. For example, `pdf(Stable(1.5), 2)` returns pdf of `Stable(1.5)` at point x = 2 which is approximately `0.084`.\n\nOne can multiply stable distributions by scalars and add them, e.g. `2Stable(1.5) + 3` is a valid code which returns `Stable(1.5, 0, 2, 3)`. Function `convolve` is used to convolve two stable distributions with the same α, which is a distribution of the sum of two indepedent stable variables with such distributions. For example `convolve(Stable(0.5,1), Stable(0.5,0,2,1))` gives approximately `Stable(0.5, 0.41, 5.83, 1)`. Function `support` returns support of a given stable distribution, which can be half-bounded for skewed stable distribution with β = 1 or β = -1 and α \u003c 1.\n\nMethod `convert` can be used to convert from special cases of Lévy, Cauchy and Gaussian to stable distributions. For example, `convert(Stable,Normal(0,1))` returns equivalent of `Stable(2, 0, √2/2, 1)`.\n\n## Fitting\n\nGiven data sample one can find best fitting stable distribution using method `fit(Stable, sample)`. It uses algorithm based on finding parameters which best fit sample characteristic function. This methods is considered to be efficient and quick. Alternatively, one can use `fit_quantile(Stable, sample)` which uses older McCulloch's quantile method in type-0 parametrisation. This method is considered to be generally worse but can be useful for additional checks, e.g. when there are doubts about the reliability of the estimation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaksle%2Fstabledistributions.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaksle%2Fstabledistributions.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaksle%2Fstabledistributions.jl/lists"}