# NormalDistribution

Normal probability distribution object

## Description

A `NormalDistribution` object consists of parameters, a model description, and sample data for a normal probability distribution.

The normal distribution, sometimes called the Gaussian distribution, is a two-parameter family of curves. The usual justification for using the normal distribution for modeling is the Central Limit theorem, which states (roughly) that the sum of independent samples from any distribution with finite mean and variance converges to the normal distribution as the sample size goes to infinity.

The normal distribution uses the following parameters.

ParameterDescriptionSupport
`mu` (μ)Mean$-\infty <\mu <\infty$
`sigma` (σ)Standard deviation$\sigma \ge 0$

## Creation

There are several ways to create a `NormalDistribution` probability distribution object.

## Properties

expand all

### Distribution Parameters

Mean of the normal distribution, specified as a scalar value.

Data Types: `single` | `double`

Standard deviation of the normal distribution, specified as a nonnegative scalar value.

You can specify `sigma` to be zero when you create an object by using `makedist`. Some object functions support an object `pd` with zero standard deviation. For example, `random``(pd)` always returns `mu`, and `cdf``(pd,x)` returns either 0 or 1. The output is 0 if `x` is smaller than `mu`, and 1 otherwise. `mean`, `std`, and `var` return the mean, standard deviation, and variance of `pd`, respectively.

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 `i`th parameter and the `j`th parameter. The (`i`,`i`) element is the estimated variance of the `i`th 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 of scalar values.

Data Types: `single` | `double`

Truncation interval for the probability distribution, specified as a vector of scalar values 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 `gather` Gather properties of Statistics and Machine Learning Toolbox object from GPU `icdf` Inverse cumulative distribution function `iqr` Interquartile range of probability distribution `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 `plot` Plot probability distribution object `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

Create a normal distribution object using the default parameter values.

`pd = makedist('Normal')`
```pd = NormalDistribution Normal distribution mu = 0 sigma = 1 ```

Create a normal distribution object by specifying the parameter values.

`pd = makedist('Normal','mu',75,'sigma',10)`
```pd = NormalDistribution Normal distribution mu = 75 sigma = 10 ```

Compute the interquartile range of the distribution.

`r = iqr(pd)`
```r = 13.4898 ```

Load the sample data and create a vector containing the first column of student exam grade data.

```load examgrades x = grades(:,1);```

Create a normal distribution object by fitting it to the data.

`pd = fitdist(x,'Normal')`
```pd = NormalDistribution Normal distribution mu = 75.0083 [73.4321, 76.5846] sigma = 8.7202 [7.7391, 9.98843] ```

The intervals next to the parameter estimates are the 95% confidence intervals for the distribution parameters.

## Version History

Introduced in R2013a