Skip to main content

Advanced probability distributions for machine learning and statistical modeling

Project description

Advanced Distributions

Advanced probability distributions for:

  • AI Research
  • Machine Learning
  • Heavy-tail Modeling
  • Diffusion Models
  • Statistical Research
  • Copula Theory
  • Quantum Probability
  • Information Theory

Install

pip install advanced_distributions



# =============================================================
# EXAMPLE USAGE: slash distribution
# =============================================================

if __name__ == "__main__":

    dist = SlashDistribution(
        mu=0,
        sigma=1
    )

    print("Mean:", dist.mean())

    print(
        "Variance:",
        dist.var()
    )

    print(
        "Standard Deviation:",
        dist.std()
    )

    print(
        "Skewness:",
        dist.skewness()
    )

    print(
        "Kurtosis:",
        dist.kurtosis()
    )

    print(
        "Entropy:",
        dist.entropy()
    )

    print(
        "Median:",
        dist.median()
    )

    print(
        "Mode:",
        dist.mode()
    )

    print(
        "Moment(2):",
        dist.moment(2)
    )

    print(
        "\nPDF at x=1:",
        dist.pdf(1)
    )

    print(
        "CDF at x=1:",
        dist.cdf(
            np.array([1])
        )[0]
    )

    print(
        "Hazard at x=1:",
        dist.hazard(1)
    )

    print(
        "MGF at t=0.01:",
        dist.mgf(0.01)
    )

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate samples
    samples = dist.rvs(
        size=5000
    )

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = (
        SlashDistribution.fit(
            samples
        )
    )

    print("\nFitted Parameters:")
    print("mu    =", fitted.mu)
    print("sigma =", fitted.sigma)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()

    # =============================================================
# EXAMPLE USAGE: Fractal distribution
# =============================================================

if __name__ == "__main__":

    dist = FractalDistribution(
        D=1.3,
        lambda_=0.8
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())
    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())
    print("Entropy:", dist.entropy())
    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("\n3rd Moment:", dist.moment(3))

    print("\nPDF at x=2:", dist.pdf(2))
    print("CDF at x=2:", dist.cdf(np.array([2]))[0])
    print("Hazard at x=2:", dist.hazard(np.array([2]))[0])

    # Generate Samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted_params = FractalDistribution.fit(samples)

    print("\nFitted Parameters:")
    print("D =", fitted_params[0])
    print("lambda =", fitted_params[1])

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()


    # =============================================================
# EXAMPLE USAGE: Fractional distribution
# =============================================================

if __name__ == "__main__":

    dist = FractionalDistribution(
        alpha=1.7,
        beta=2.0,
        gamma=0.9
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())
    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())
    print("Entropy:", dist.entropy())

    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("3rd Moment:", dist.moment(3))

    print("\nPDF at x=2:", dist.pdf(2))
    print("CDF at x=2:", dist.cdf(np.array([2]))[0])

    print("Hazard at x=2:", dist.hazard(np.array([2]))[0])

    print("MGF at t=0.1:", dist.mgf(0.1))

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted_params = FractionalDistribution.fit(samples)

    print("\nFitted Parameters:")
    print("alpha =", fitted_params[0])
    print("beta  =", fitted_params[1])
    print("gamma =", fitted_params[2])

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()


    # =============================================================
# EXAMPLE USAGE: GeneralizedParetoDistribution
# =============================================================

if __name__ == "__main__":

    dist = GeneralizedParetoDistribution(
        xi=0.3,
        sigma=2.0,
        mu=0.0
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())
    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())

    print("Entropy:", dist.entropy())

    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("3rd Moment:", dist.moment(3))

    print("\nPDF at x=2:", dist.pdf(2))
    print("CDF at x=2:", dist.cdf(2))

    print("Hazard at x=2:", dist.hazard(2))

    print("MGF at t=0.1:", dist.mgf(0.1))

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate random samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = GeneralizedParetoDistribution.fit(samples)

    print("\nFitted Parameters:")
    print("xi =", fitted.xi)
    print("sigma =", fitted.sigma)
    print("mu =", fitted.mu)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()



# =============================================================
# EXAMPLE USAGE: HyperbolicSecantDistribution
# =============================================================

if __name__ == "__main__":

    dist = HyperbolicSecantDistribution(
        mu=0,
        sigma=1
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())
    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())

    print("Entropy:", dist.entropy())

    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("3rd Moment:", dist.moment(3))

    print("\nPDF at x=1:", dist.pdf(1))
    print("CDF at x=1:", dist.cdf(1))

    print("Hazard at x=1:", dist.hazard(1))

    print("MGF at t=0.2:", dist.mgf(0.2))

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = HyperbolicSecantDistribution.fit(samples)

    print("\nFitted Parameters:")
    print("mu =", fitted.mu)
    print("sigma =", fitted.sigma)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()



# # =============================================================
# EXAMPLE USAGE: LevyStableDistribution
# =============================================================

if __name__ == "__main__":

    dist = LevyStableDistribution(
        alpha=1.7,
        beta=0.2,
        loc=0,
        scale=1
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())

    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())

    print("Entropy:", dist.entropy())

    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("Moment(0.5):", dist.moment(0.5))

    print("\nPDF at x=1:", dist.pdf(1))
    print("CDF at x=1:", dist.cdf(1))

    print("Hazard at x=1:", dist.hazard(1))

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate random samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = LevyStableDistribution.fit(samples)

    print("\nFitted Parameters:")
    print("alpha =", fitted.alpha)
    print("beta  =", fitted.beta)
    print("loc   =", fitted.loc)
    print("scale =", fitted.scale)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()


    # =============================================================
# EXAMPLE USAGE:NeuralSplineDistribution
# =============================================================

if __name__ == "__main__":

    dist = NeuralSplineDistribution()

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())

    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())

    print("Entropy:", dist.entropy())

    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("Moment(3):", dist.moment(3))

    print("\nPDF at x=1:", dist.pdf(1))
    print("CDF at x=1:", dist.cdf(np.array([1]))[0])

    print("Hazard at x=1:",
          dist.hazard(np.array([1]))[0])

    print("MGF at t=0.1:",
          dist.mgf(0.1))

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = NeuralSplineDistribution.fit(samples)

    print("\nFitted Knot Positions:")
    print("knots_x =", fitted.knots_x)
    print("knots_y =", fitted.knots_y)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()


# =============================================================
# EXAMPLE USAGE: QuantileDistribution
# =============================================================

if __name__ == "__main__":

    dist = QuantileDistribution(
        mu=0,
        sigma=1,
        alpha=1.5,
        beta=2.0
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())

    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())

    print("Entropy:", dist.entropy())

    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("Moment(3):", dist.moment(3))

    print("\nPDF at x=1:",
          dist.pdf(np.array([1]))[0])

    print("CDF at x=1:",
          dist.cdf(np.array([1]))[0])

    print("Hazard at x=1:",
          dist.hazard(np.array([1]))[0])

    print("MGF at t=0.1:",
          dist.mgf(0.1))

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate random samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = QuantileDistribution.fit(samples)

    print("\nFitted Parameters:")
    print("mu     =", fitted.mu)
    print("sigma  =", fitted.sigma)
    print("alpha  =", fitted.alpha)
    print("beta   =", fitted.beta)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()


# =============================================================
# EXAMPLE USAGE: QuantumProbabilityDistribution
# =============================================================

if __name__ == "__main__":

    dist = QuantumProbabilityDistribution(
        sigma=1.0,
        k=2.0,
        mu=0.0
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())

    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())

    print("Entropy:", dist.entropy())

    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("Moment(4):", dist.moment(4))

    print(
        "Energy Expectation:",
        dist.energy_expectation()
    )

    print("\nPDF at x=1:",
          dist.pdf(1))

    print("CDF at x=1:",
          dist.cdf(np.array([1]))[0])

    print("Hazard at x=1:",
          dist.hazard(np.array([1]))[0])

    print("MGF at t=0.1:",
          dist.mgf(0.1))

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate random samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = QuantumProbabilityDistribution.fit(
        samples
    )

    print("\nFitted Parameters:")
    print("mu    =", fitted.mu)
    print("sigma =", fitted.sigma)
    print("k     =", fitted.k)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_wave_function()
    dist.plot_histogram()


    
# =============================================================
# EXAMPLE USAGE: csinhDistribution
# =============================================================

if __name__ == "__main__":

    dist = SinhArcsinhDistribution(
        epsilon=1.0,
        delta=0.8,
        mu=0,
        sigma=1
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())
    print("Standard Deviation:", dist.std())

    print("Skewness:", dist.skewness())
    print("Kurtosis:", dist.kurtosis())

    print("Entropy:", dist.entropy())

    print("Median:", dist.median())
    print("Mode:", dist.mode())

    print("Moment(4):", dist.moment(4))

    print("\nPDF at x=1:",
          dist.pdf(1))

    print("CDF at x=1:",
          dist.cdf(1))

    print("Hazard at x=1:",
          dist.hazard(1))

    print("MGF at t=0.1:",
          dist.mgf(0.1))

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate random samples
    samples = dist.rvs(size=5000)

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = SinhArcsinhDistribution.fit(
        samples
    )

    print("\nFitted Parameters:")
    print("epsilon =", fitted.epsilon)
    print("delta   =", fitted.delta)
    print("mu      =", fitted.mu)
    print("sigma   =", fitted.sigma)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()


    # =============================================================
# EXAMPLE USAGE: SkewedStudentTDistribution
# =============================================================

if __name__ == "__main__":

    dist = SkewedStudentT(
        nu=8,
        lam=0.3,
        mu=0,
        sigma=1
    )

    print("Mean:", dist.mean())
    print("Variance:", dist.var())

    print(
        "Standard Deviation:",
        dist.std()
    )

    print(
        "Skewness:",
        dist.skewness()
    )

    print(
        "Kurtosis:",
        dist.kurtosis()
    )

    print(
        "Entropy:",
        dist.entropy()
    )

    print(
        "Median:",
        dist.median()
    )

    print(
        "Mode:",
        dist.mode()
    )

    print(
        "Moment(4):",
        dist.moment(4)
    )

    print(
        "\nPDF at x=1:",
        dist.pdf(1)
    )

    print(
        "CDF at x=1:",
        dist.cdf(
            np.array([1])
        )[0]
    )

    print(
        "Hazard at x=1:",
        dist.hazard(1)
    )

    print(
        "MGF at t=0.1:",
        dist.mgf(0.1)
    )

    print(
        "Characteristic Function at t=1:",
        dist.characteristic_function(1)
    )

    # Generate random samples
    samples = dist.rvs(
        size=5000
    )

    print("\nRandom Samples:")
    print(samples[:10])

    # Fit distribution
    fitted = (
        SkewedStudentTDistribution.fit(
            samples
        )
    )

    print("\nFitted Parameters:")
    print("nu    =", fitted.nu)
    print("lam   =", fitted.lam)
    print("mu    =", fitted.mu)
    print("sigma =", fitted.sigma)

    # Plotting
    dist.plot_pdf()
    dist.plot_cdf()
    dist.plot_histogram()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

advanced_distributions-0.2.1.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

advanced_distributions-0.2.1-py3-none-any.whl (30.8 kB view details)

Uploaded Python 3

File details

Details for the file advanced_distributions-0.2.1.tar.gz.

File metadata

  • Download URL: advanced_distributions-0.2.1.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for advanced_distributions-0.2.1.tar.gz
Algorithm Hash digest
SHA256 703222596af7ef7f4c818051a3a95e0fae47913d0c448d5862f1a5e03f5e8e2d
MD5 9c4bcd3b40c9f63ed9384b7e6db85b54
BLAKE2b-256 5fa6154700c0c136e07f08019f76df098f57cc8bbe42e6fbec10783c063e5b69

See more details on using hashes here.

File details

Details for the file advanced_distributions-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for advanced_distributions-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e1710840c7661298cc04192b3b80a6596ec34bfdae5a76f63e3a643e66c3dc59
MD5 e05c1870e03b423a3a1d99abbef8a830
BLAKE2b-256 f84aaaabf4098ea5f8c9a9abce02cbba995c7d4bf55a3a87cf1f573defbc4186

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page