Documentation

# HalfNormalDistribution

Half-normal probability distribution object

## Description

A HalfNormalDistribution object consists of parameters, a model description, and sample data for a half-normal probability distribution.

The half-normal distribution is a special case of the folded normal and truncated normal distribution. Applications of the half-normal distribution include modeling measurement data and lifetime data.

The half-normal distribution uses the following parameters:

ParameterDescriptionSupport
muLocation$-\infty <\mu <\infty$
sigmaScale$\sigma \ge 0$

## Creation

There are several ways to create a HalfNormalDistribution probability distribution object.

• Create a distribution with specified parameter values using makedist.

• Fit a distribution to data using fitdist.

• Interactively fit a distribution to data using the Distribution Fitter app.

## Properties

expand all

### Distribution Parameters

Location parameter of the half-normal distribution, specified as a scalar value. The mu parameter is also the lower limit of the half-normal distribution.

The Statistics and Machine Learning Toolbox™ implementation of the half-normal distribution assumes a fixed value for the location parameter μ. You can specify a value for the μ parameter when creating a HalfNormalDistribution object.

Data Types: single | double

Scale parameter of the half-normal distribution, specified as a nonnegative scalar value.

Data Types: single | double

### Distribution Characteristics

Logical flag for truncated distribution, specified as a logical value. If IsTruncated equals 0, the distribution is not truncated. If IsTruncated equals 1, the distribution is truncated.

Data Types: logical

Number of parameters for the probability distribution, specified as a positive integer value.

Data Types: double

Covariance matrix of the parameter estimates, specified as a p-by-p matrix, where p is the number of parameters in the distribution. The (i,j) element is the covariance between the estimates of the ith parameter and the jth parameter. The (i,i) element is the estimated variance of the ith parameter. If parameter i is fixed rather than estimated by fitting the distribution to data, then the (i,i) elements of the covariance matrix are 0.

Data Types: double

Logical flag for fixed parameters, specified as an array of logical values. If 0, the corresponding parameter in the ParameterNames array is not fixed. If 1, the corresponding parameter in the ParameterNames array is fixed.

Data Types: logical

Distribution parameter values, specified as a vector.

Data Types: single | double

Truncation interval for the probability distribution, specified as a vector containing the lower and upper truncation boundaries.

Data Types: single | double

### Other Object Properties

Probability distribution name, specified as a character vector.

Data Types: char

Data used for distribution fitting, specified as a structure containing the following:

• data: Data vector used for distribution fitting.

• cens: Censoring vector, or empty if none.

• freq: Frequency vector, or empty if none.

Data Types: struct

Distribution parameter descriptions, specified as a cell array of character vectors. Each cell contains a short description of one distribution parameter.

Data Types: char

Distribution parameter names, specified as a cell array of character vectors.

Data Types: char

## Object Functions

 cdf Cumulative distribution function icdf Inverse cumulative distribution function iqr Interquartile range mean Mean of probability distribution median Median of probability distribution negloglik Negative loglikelihood of probability distribution paramci Confidence intervals for probability distribution parameters pdf Probability density function proflik Profile likelihood function for probability distribution random Random numbers std Standard deviation of probability distribution truncate Truncate probability distribution object var Variance of probability distribution

## Examples

collapse all

pd = makedist('HalfNormal')
pd =
HalfNormalDistribution

Half Normal distribution
mu = 0
sigma = 1

Create a half-normal distribution object. Specify mu equal to 0 and sigma equal to 1.5.

pd = makedist('HalfNormal','mu',0,'sigma',1.5)
pd =
HalfNormalDistribution

Half Normal distribution
mu =   0
sigma = 1.5

Compute the mean and standard deviation of the distribution.

m = mean(pd)
m = 1.1968
s = std(pd)
s = 0.9042

Generate 100 random numbers from a standard normal distribution and compute their absolute value.

rng default  % For reproducibility
x = abs(random(makedist('Normal'),100,1));

Fit a half-normal distribution object to the sample data.

pd = fitdist(x,'HalfNormal')
pd =
HalfNormalDistribution

Half Normal distribution
mu =      0
sigma = 1.1631   [1.02184, 1.35006]

Calculate the mean of the fitted half-normal distribution using the probability distribution object.

m = mean(pd)
m = 0.9280

Calculate the mean of the half-normal distribution by substituting the fitted mu and sigma parameter values into the formula

$mean=\mu +\sigma \sqrt{\frac{2}{\pi }}.$

mcalc = pd.mu + pd.sigma*(sqrt(2/pi))
mcalc = 0.9280

## References

[1] Cooray, K. and M.M.A. Ananda. “A Generalization of the Half-Normal Distribution with Applications to Lifetime Data.” Communications in Statistics – Theory and Methods. Vol. 37, Number 9, 2008, pp. 1323–1337.

[2] Pewsey, A. Large-Sample Inference for the General Half-Normal Distribution. Communications in Statistics – Theory and Methods. Vol. 31, Number 7, 2002, pp. 1045–1054.