dip.test | R Documentation |

Compute Hartigans' dip statistic `D_n`

, and
its p-value for the test for unimodality, by interpolating
tabulated quantiles of `\sqrt{n} D_n`

.

For `X_i \sim F, i.i.d.`

,
the null hypothesis is that `F`

is a unimodal distribution.
Consequently, the test alternative is non-unimodal, i.e., at least
bimodal. Using the language of medical testing, you would call the
test “Test for **Multi**modality”.

```
dip.test(x, simulate.p.value = FALSE, B = 2000)
```

`x` |
numeric vector; sample to be tested for unimodality. |

`simulate.p.value` |
a logical indicating whether to compute p-values by Monte Carlo simulation. |

`B` |
an integer specifying the number of replicates used in the Monte Carlo test. |

If `simulate.p.value`

is `FALSE`

, the p-value is computed
via linear interpolation (of `\sqrt{n} D_n`

) in the
`qDiptab`

table.
Otherwise the p-value is computed from a Monte Carlo simulation of a
uniform distribution (`runif(n)`

) with `B`

replicates.

A list with class `"htest"`

containing the following
components:

`statistic` |
the dip statistic |

`p.value` |
the p-value for the test, see details. |

`method` |
character string describing the test, and whether Monte Carlo simulation was used. |

`data.name` |
a character string giving the name(s) of the data. |

see also the package vignette, which describes the procedure in more details.

Martin Maechler

see those in `dip`

.

For goodness-of-fit testing, notably of continuous distributions,
`ks.test`

.

```
## a first non-trivial case
(d.t <- dip.test(c(0,0, 1,1))) # "perfect bi-modal for n=4" --> p-value = 0
stopifnot(d.t$p.value == 0)
data(statfaculty)
plot(density(statfaculty)); rug(statfaculty)
(d.t <- dip.test(statfaculty))
x <- c(rnorm(50), rnorm(50) + 3)
plot(density(x)); rug(x)
## border-line bi-modal ... BUT (most of the times) not significantly:
dip.test(x)
dip.test(x, simulate=TRUE, B=5000)
## really large n -- get a message
dip.test(runif(4e5))
```

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.