-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
Description
This tracking issue proposes adding comprehensive support for the half-normal distribution in @stdlib/stats/base/dists/halfnormal. The half-normal distribution is the distribution of the absolute value of a normally distributed random variable with mean 0. It is commonly used in statistical applications such as stochastic frontier analysis, modeling measurement errors, and other fields where only the magnitude of a normally distributed variable is of interest.
Rationale
Why is this feature important?
-
Completeness: Expanding stdlib's statistical distributions library to include the half-normal distribution provides users with a comprehensive set of tools for statistical analysis.
-
Common Use Cases: The half-normal distribution is widely used in:
- Stochastic frontier analysis
- Quality control and process capability studies
- Modeling absolute deviations and measurement errors
- Bayesian analysis as a prior distribution
-
Consistency: Following stdlib's existing patterns for probability distributions ensures a consistent API and user experience.
-
Scientific Computing: Enables researchers and data scientists to perform half-normal distribution calculations natively within stdlib without external dependencies.
Proposed Solution
How do you propose to implement this feature?
Implement the half-normal distribution following the established pattern used for other continuous distributions in stdlib (e.g., normal, exponential, gamma). This includes creating subpackages for various distribution functions, properties, and utilities within @stdlib/stats/base/dists/halfnormal/.
Implementation Checklist
The following subpackages need to be implemented for the half-normal distribution:
Core Distribution Functions
-
@stdlib/stats/base/dists/halfnormal/cdf- Cumulative distribution function (CDF) -
@stdlib/stats/base/dists/halfnormal/pdf- Probability density function (PDF) -
@stdlib/stats/base/dists/halfnormal/quantile- Quantile function (inverse CDF) -
@stdlib/stats/base/dists/halfnormal/logcdf- Logarithm of cumulative distribution function -
@stdlib/stats/base/dists/halfnormal/logpdf- Logarithm of probability density function
Distribution Properties
-
@stdlib/stats/base/dists/halfnormal/mean- Expected value (mean) -
@stdlib/stats/base/dists/halfnormal/median- Median -
@stdlib/stats/base/dists/halfnormal/mode- Mode -
@stdlib/stats/base/dists/halfnormal/variance- Variance -
@stdlib/stats/base/dists/halfnormal/stdev- Standard deviation -
@stdlib/stats/base/dists/halfnormal/entropy- Differential entropy -
@stdlib/stats/base/dists/halfnormal/skewness- Skewness -
@stdlib/stats/base/dists/halfnormal/kurtosis- Excess kurtosis
Generating Functions
-
@stdlib/stats/base/dists/halfnormal/mgf- Moment-generating function (MGF)
Constructor and Utilities
-
@stdlib/stats/base/dists/halfnormal/ctor- Distribution constructor
Main Package
-
@stdlib/stats/base/dists/halfnormal- Main package with exports and documentation
Related Issues
- [RFC]: Add support for half-normal distribution
@stdlib/stats/base/dists/halfnormal#8205 - Original RFC for half-normal distribution support - [RFC]: adding new statistical distributions ( tracking issue ) #6951 - Related issue mentioned in [RFC]: Add support for half-normal distribution
@stdlib/stats/base/dists/halfnormal#8205
Questions
- Are there any additional distribution-specific functions that should be included beyond the standard set?
- Should we implement any specialized constants related to the half-normal distribution?
Other
No.
Checklist
- I have read and understood the Code of Conduct.
- Searched for existing issues and pull requests.
- The issue name begins with
RFC:.