# gaminv

Gamma inverse cumulative distribution function

## Syntax

``x = gaminv(p,a)``
``x = gaminv(p,a,b)``
``[x,xLo,xUp] = gaminv(p,a,b,pCov)``
``[x,xLo,xUp] = gaminv(p,a,b,pCov,alpha)``

## Description

````x = gaminv(p,a)` returns the inverse cumulative distribution function (icdf) of the standard gamma distribution with the shape parameter `a`, evaluated at the values in `p`.```

example

````x = gaminv(p,a,b)` returns the icdf of the gamma distribution with shape parameter `a` and the scale parameter `b`, evaluated at the values in `p`.```

example

````[x,xLo,xUp] = gaminv(p,a,b,pCov)` also returns the 95% confidence interval [`xLo`,`xUp`] of `x` when `a` and `b` are estimates. `pCov` is the covariance matrix of the estimated parameters.```
````[x,xLo,xUp] = gaminv(p,a,b,pCov,alpha)` specifies the confidence level for the confidence interval [`xLo`,`xUp`] to be `100(1–alpha)`%.```

## Examples

collapse all

Find the median of the gamma distribution with shape parameter `3` and scale parameter `5`.

`x = gaminv(0.5,3,5)`
```x = 13.3703 ```

Find a confidence interval estimating the median using gamma distributed data.

Generate a sample of `500` gamma distributed random numbers with shape `2` and scale `5`.

`x = gamrnd(2,5,500,1);`

Compute estimates for the parameters.

`params = gamfit(x)`
```params = 1×2 1.9820 5.0601 ```

Store the estimates for the parameters as `ahat` and `bhat`.

```ahat = params(1); bhat = params(2);```

Compute the covariance of the parameter estimates.

`[~,nCov] = gamlike(params,x)`
```nCov = 2×2 0.0135 -0.0346 -0.0346 0.1141 ```

Create a confidence interval estimating x.

`[x,xLo,xUp] = gaminv(0.50,ahat,bhat,nCov)`
```x = 8.4021 ```
```xLo = 7.8669 ```
```xUp = 8.9737 ```

## Input Arguments

collapse all

Probability values at which to evaluate the inverse cdf (icdf), specified as a scalar value or an array of scalar values, where each element is in the range `[0,1]`.

If you specify `pCov` to compute the confidence interval `[xLo,xUp]`, then `p` must be a scalar value (not an array).

• To evaluate the icdf at multiple values, specify `p` using an array.

• To evaluate the icdfs of multiple distributions, specify `a` and `b` using arrays.

If one or more of the input arguments `p`, `a`, and `b` are arrays, then the array sizes must be the same. In this case, `gaminv` expands each scalar input into a constant array of the same size as the array inputs. Each element in `x` is the icdf value of the distribution specified by the corresponding elements in `a` and `b`, evaluated at the corresponding element in `p`.

Example: `[0.1,0.5,0.9]`

Data Types: `single` | `double`

Shape parameter of the gamma distribution, specified as a positive scalar value or an array of positive scalar values.

• To evaluate the icdf at multiple values, specify `p` using an array.

• To evaluate the icdfs of multiple distributions, specify `a` and `b` using arrays.

If one or more of the input arguments `p`, `a`, and `b` are arrays, then the array sizes must be the same. In this case, `gaminv` expands each scalar input into a constant array of the same size as the array inputs. Each element in `x` is the icdf value of the distribution specified by the corresponding elements in `a` and `b`, evaluated at the corresponding element in `p`.

Example: `[1 2 3 5]`

Data Types: `single` | `double`

Scale parameter of the gamma distribution, specified as a positive scalar value or an array of positive scalar values.

• To evaluate the icdf at multiple values, specify `p` using an array.

• To evaluate the icdfs of multiple distributions, specify `a` and `b` using arrays.

If one or more of the input arguments `p`, `a`, and `b` are arrays, then the array sizes must be the same. In this case, `gaminv` expands each scalar input into a constant array of the same size as the array inputs. Each element in `x` is the icdf value of the distribution specified by the corresponding elements in `a` and `b`, evaluated at the corresponding element in `p`.

Example: `[1 1 2 2]`

Data Types: `single` | `double`

Covariance of the estimates `a` and `b`, specified as a 2-by-2 matrix.

If you specify `pCov` to compute the confidence interval `[xLo,xUp]`, then `p`, `a`, and `b` must be scalar values.

You can estimate `a` and `b` by using `gamfit` or `mle`, and estimate the covariance of `a` and `b` by using `gamlike`. For an example, see Confidence Interval of Gamma icdf Value.

Data Types: `single` | `double`

Significance level for the confidence interval, specified as a scalar in the range (0,1). The confidence level is `100(1–alpha)`%, where `alpha` is the probability that the confidence interval does not contain the true value.

Example: `0.01`

Data Types: `single` | `double`

## Output Arguments

collapse all

icdf values evaluated at the probability values in `p`, returned as a scalar value or an array of scalar values. `x` is the same size as `p`, `a`, and `b`, after any necessary scalar expansion. Each element in `x` is the icdf value of the distribution specified by the corresponding elements in `a` and `b`, evaluated at the corresponding element in `p`.

Lower confidence bound for `x`, returned as a scalar value or an array of scalar values. `xLo` has the same size as `x`.

Upper confidence bound for `x`, returned as a scalar value or an array of scalar values. `xUp` has the same size as `x`.

collapse all

### Gamma icdf

The gamma distribution is a two-parameter family of curves. The parameters a and b are shape and scale, respectively.

The gamma inverse function in terms of the gamma cdf is

`$x={F}^{-1}\left(p|a,b\right)=\left\{x:F\left(x|a,b\right)=p\right\},$`

where

`$p=F\left(x|a,b\right)=\frac{1}{{b}^{a}\Gamma \left(a\right)}\underset{0}{\overset{x}{\int }}{t}^{a-1}{e}^{\frac{-t}{b}}dt.$`

The result x is the value such that an observation from the gamma distribution with parameters a and b falls in [0,x] with probability p.

## Algorithms

No known analytical solution exists for the integral equation shown in Gamma icdf. `gaminv` uses an iterative approach (Newton's method) to converge on the solution.

## Alternative Functionality

• `gaminv` is a function specific to the gamma distribution. Statistics and Machine Learning Toolbox™ also offers the generic function `icdf`, which supports various probability distributions. To use `icdf`, create a `GammaDistribution` probability distribution object and pass the object as an input argument or specify the probability distribution name and its parameters. Note that the distribution-specific function `gaminv` is faster than the generic function `icdf`.