Probability density function
Probability density function for the folded-normal distribution
μ=1, σ=1
Cumulative distribution function
Cumulative distribution function for the normal distribution
μ=1, σ=1
Parameters μR   (location)
σ2 > 0   (scale)
Support x ∈ [0,∞)

The folded normal distribution is a probability distribution related to the normal distribution. Given a normally distributed random variable X with mean μ and variance σ2, the random variable Y = |X| has a folded normal distribution. Such a case may be encountered if only the magnitude of some variable is recorded, but not its sign. The distribution is called "folded" because probability mass to the left of x = 0 is folded over by taking the absolute value. In the physics of heat conduction, the folded normal distribution is a fundamental solution of the heat equation on the half space; it corresponds to having a perfect insulator on a hyperplane through the origin.



The probability density function (PDF) is given by

for x ≥ 0, and 0 everywhere else. An alternative formulation is given by


where cosh is the cosine Hyperbolic function. It follows that the cumulative distribution function (CDF) is given by:

for x ≥ 0, where erf() is the error function. This expression reduces to the CDF of the half-normal distribution when μ = 0.

The mean of the folded distribution is then


where is the normal cumulative distribution function:

The variance then is expressed easily in terms of the mean:

Both the mean (μ) and variance (σ2) of X in the original normal distribution can be interpreted as the location and scale parameters of Y in the folded distribution.



The mode of the distribution is the value of for which the density is maximised. In order to find this value, we take the first derivative of the density with respect to and set it equal to zero. Unfortunately, there is no closed form. We can, however, write the derivative in a better way and end up with a non-linear equation


Tsagris et al. (2014) saw from numerical investigation that when , the maximum is met when , and when becomes greater than , the maximum approaches . This is of course something to be expected, since, in this case, the folded normal converges to the normal distribution. In order to avoid any trouble with negative variances, the exponentiation of the parameter is suggested. Alternatively, you can add a constraint, such as if the optimiser goes for a negative variance the value of the log-likelihood is NA or something very small.

Characteristic function and other related functions






Related distributions

Statistical Inference

Estimation of parameters

There are a few ways of estimating the parameters of the folded normal. All of them are essentially the maximum likelihood estimation procedure, but in some cases, a numerical maximization is performed, whereas in other cases, the root of an equation is being searched. The log-likelihood of the folded normal when a sample of size is available can be written in the following way

In R (programming language), using the package Rfast one can obtain the MLE really fast (command foldnorm.mle). Alternatively, the command optim or nlm will fit this distribution. The maximisation is easy, since two parameters ( and ) are involved. Note, that both positive and negative values for are acceptable, since belongs to the real line of numbers, hence, the sign is not important because the distribution is symmetric with respect to it. The next code is written in R

folded <- function(y) {

  ## y is a vector with positive data
  n <- length(y)  ## sample size
  sy2 <- sum(y^2)

    sam <- function(para, n, sy2) {
      me <- para[1]   ;   se <- exp( para[2] )
      f <-  - n/2 * log(2/pi/se) + n * me^2 / 2 / se +
            sy2 / 2 / se - sum( log( cosh( me * y/se ) ) )

  mod <- optim( c( mean(y), sd(y) ), n = n, sy2 = sy2, sam, control = list(maxit = 2000) )
  mod <- optim( mod$par, sam, n = n, sy2 = sy2, control = list(maxit = 20000) )
  result <- c( -mod$value, mod$par[1], exp(mod$par[2]) )
  names(result) <- c("log-likelihood", "mu", "sigma squared")


The partial derivatives of the log-likelihood are written as


By equating the first partial derivative of the log-likelihood to zero, we obtain a nice relationship


Note that the above equation has three solutions, one at zero and two more with the opposite sign. By substituting the above equation, to the partial derivative of the log-likelihood w.r.t and equating it to zero, we get the following expression for the variance


which is the same formula as in the normal distribution. A main difference here is that and are not statistically independent. The above relationships can be used to obtain maximum likelihood estimates in an efficient recursive way. We start with an initial value for and find the positive root () of the last equation. Then, we get an updated value of . The procedure is being repeated until the change in the log-likelihood value is negligible. Another easier and more efficient way is to perform a search algorithm. Let us write the last equation in a more elegant way


It becomes clear that the optimization the log-likelihood with respect to the two parameters has turned into a root search of a function. This of course is identical to the previous root search. Tsagris et al. (2014) spotted that there are three roots to this equation for , i.e. there are three possible values of that satisfy this equation. The and , which are the maximum likelihood estimates and 0, which corresponds to the minimum log-likelihood.

See also


  1. ^ a b Sun, Jingchao; Kong, Maiying; Pal, Subhadip (22 June 2021). "The Modified-Half-Normal distribution: Properties and an efficient sampling scheme" (PDF). Communications in Statistics - Theory and Methods. 52 (5): 1591–1613. doi:10.1080/03610926.2021.1934700. ISSN 0361-0926. S2CID 237919587.