Metadata-Version: 2.4
Name: advanced_distributions
Version: 0.1.2
Summary: Advanced Probability Distributions for AI and Statistics
Author: Sandeep Kumar
Author-email: Your Name <your_email@gmail.com>
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.22.0
Requires-Dist: scipy>=1.9.0
Requires-Dist: matplotlib>=3.5.0
Dynamic: author
Dynamic: license-file
Dynamic: requires-python

# Advanced Distributions

Advanced probability distributions for:

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

## Install

```bash
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 = SkewedStudentTDistribution(
#         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()
