inv.chisqDist | R Documentation |

Density, CDF, quantile function and random number generator for the Inverse Chi–squared distribution.

```
dinv.chisq(x, df, log = FALSE)
pinv.chisq(q, df, lower.tail = TRUE, log.p = FALSE)
qinv.chisq(p, df, lower.tail = TRUE, log.p = FALSE)
rinv.chisq(n, df)
```

`x, q, p, n` |
Same as |

`df, lower.tail, log, log.p` |
Same as |

The inverse chi–squared distribution with non–negative
`df`

= `\nu`

degrees
of freedom implemented here has density

```
f(x; \nu) = \frac{ 2^{-\nu / 2} x^{-\nu/2 - 1}
e^{-1 / (2x)} }{ \Gamma(\nu / 2) },
```

where `x > 0`

, and
`\Gamma`

is the `gamma`

function.

The mean is `1 / (\nu - 2)`

, for `\nu > 2`

, and the variance is
given by `2 / [(\nu - 2)^2 (\nu - 4)]`

, for `\nu > 4`

.

Also, as with `Chisquare`

, the degrees
of freedom can be non–integer.

`dinv.chisq`

returns the density, `pinv.chisq`

returns the
distribution function, `qinv.chisq`

gives the quantiles, and
`rinv.chisq`

generates random numbers from this distribution.

Specifically, it is the probability distribution of a random variable whose reciprocal follows a chi–squared distribution, i.e.,

If `Y \sim`

chi–squared`(\nu)`

, then `1/Y \sim`

Inverse chi–squared`(\nu)`

.

As a result, `dinv.chisq, pinv.chisq, qinv.chisq`

and
`rinv.chisq`

use the functions
`Chisquare`

as a basis. Hence,
invalid arguments will lead these functions to return
`NA`

or `NaN`

accordingly.

Yet to do: A *non–central* parameter as an argument,
if amenable.

Two similar versions of the Inverse chi–squared distribution with
`\nu`

degrees of freedom may be found in the literature, as
follows:

Let `Y \sim`

chi–squared`(\nu)`

, then

I. `1 / Y \sim`

Inverse chi–squared`(\nu)`

, and
II. ` \nu / Y \sim`

Inverse chi–squared`(\nu)`

.

Here, the former, which is the popular version, has been implemented.

V. Miranda

Johnson, N.L., Kotz, S. and Balakrishnan, N. (1995)
*Continuous Univariate Distributions*.
Chapters 18 (volume 1) and 29 (volume 2). Wiley, New York.

`Chisquare`

,
`gamma`

.

```
## Example 1 ##
nn <- 50; df <- 1.4
data.1 <- ppoints(nn)
data.q <- qinv.chisq(-data.1, df = df, log.p = TRUE)
data.p <- -log(pinv.chisq(data.q, df = df))
max(abs(data.p - data.1)) # Should be zero
## Example 2 ##
xx <- seq(0, 3.0, len = 301)
yy <- dinv.chisq(xx, df = df)
qtl <- seq(0.1, 0.9, by = 0.1)
d.qtl <- qinv.chisq(qtl, df = df)
plot(xx, yy, type = "l", col = "orange",
main = "Orange is density, blue is cumulative distribution function",
sub = "Brown dashed lines represent the 10th, ... 90th percentiles",
las = 1, xlab = "x", ylab = "", ylim = c(0, 1))
abline(h = 0, col= "navy", lty = 2)
lines(xx, pinv.chisq(xx, df = df), col = "blue")
lines(d.qtl, dinv.chisq(d.qtl, df = df), type ="h", col = "brown", lty = 3)
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.