# A test of monotonicity in a regression curve.

### Description

This function uses the idea of a ‘critical bandwidth’ to assess the evidence that a regression curve is non-monotonic. A hypothesis test is carried out by bootstrap methods and the empirical p-value is reported. Response variables on a continuous scale or with binomial variation can be handled.

### Usage

1 | ```
sm.monotonicity(x, y, N = rep(1, length(y)), h, type = "continuous", ...)
``` |

### Arguments

`x` |
a vector of covariate values. |

`y` |
a vector of responses observed at the covariate locations. |

`N` |
a vector of sample sizes at the covariate locations, when the responses have a binomial error structure. |

`h` |
a smoothing parameter to be used in the construction of the nonparametric
regression estimates. A normal kernel
function is used and |

`type` |
an indicator of whether the response variable is on a |

`...` |
other optional parameters are passed to the |

### Details

The first reference below describes the statistical methods used in the function. The test is an extension of one by Silverman (1986) for density estimation.

### Value

a list containing the following items

`p` |
the p-value for the test of the null hypothesis that the true curve is monotonic. |

`hcrit` |
the ‘critical’ smoothing parameter. This is the smallest value which, when applied to the observed data, makes the curve monotonic. |

`h` |
the smoothing parameter used for double-smoothing (see the reference below). |

### Side Effects

a plot of the curves generated by the bootstrap procedure is produced,
unless the option `display="none"`

is set. Those curves which
are non-monotonic, and therefore contribute to the empirical p-value,
are drawn in red.

### References

Bowman, A.W., Jones, M.C. and Gijbels, I. (1998).
Testing monotonicity of regression.
*J.Comp.Graph.Stat.* 7, 489-500.

### See Also

`sm.regression`

, `sm.options`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ```
## Not run:
# Radiocarbon dating data
with(radioc, {
ind <- (Cal.age>5000 & Cal.age<6000)
cal.age <- Cal.age[ind]
rc.age <- Rc.age[ind]
sm.monotonicity(cal.age, rc.age, method = "aicc", nboot = 200)
})
# Hosmer & Lemeshow birth data
with(birth, {
sm.monotonicity(Lwt[Smoke == "N"], Low[Smoke == "N"],
type = "binomial")
})
## End(Not run)
``` |