# hypothesis: Test hypotheses on mcp objects. In mcp: Regression with Multiple Change Points

 hypothesis R Documentation

## Test hypotheses on mcp objects.

### Description

Returns posterior probabilities and Bayes Factors for flexible hypotheses involving model parameters. The documentation for the argument `hypotheses` below shows examples of how to specify hypotheses, and read worked examples on the mcp website. For directional hypotheses, `hypothesis`` executes the hypothesis string in a `tidybayes“ environment and summerises the proportion of samples where the expression evaluates to TRUE. For equals-hypothesis, a Savage-Dickey ratio is computed. Savage-Dickey requires a prior too, so remember `mcp(..., sample = "both")`. This function is heavily inspired by the 'hypothesis' function from the 'brms' package.

### Usage

```hypothesis(fit, hypotheses, width = 0.95, digits = 3)
```

### Arguments

 `fit` An `mcpfit` object. `hypotheses` String representation of a logical test involving model parameters. Takes R code that evaluates to TRUE or FALSE in a vectorized way. Directional hypotheses are specified using <, >, <=, or >=. `hypothesis` returns the posterior probability and odds in favor of the stated hypothesis. The odds can be interpreted as a Bayes Factor. For example: `"cp_1 > 30"`: the first change point is above 30. `"int_1 > int_2"`: the intercept is greater in segment 1 than 2. `"x_2 - x_1 <= 3"`: the difference between slope 1 and 2 is less than or equal to 3. `"int_1 > -2 & int_1 < 2"`: int_1 is between -2 and 2 (an interval hypothesis). This can be useful as a Region Of Practical Equivalence test (ROPE). `"cp_1^2 < 30 | (log(x_1) + log(x_2)) > 5"`: be creative. `"`cp_1_id[1]` > `cp_1_id[2]`"`: id1 is greater than id2, as estimated through the varying-by-"id" change point in segment 1. Note that ```` required for varying effects. Hypotheses can also test equality using the equal sign (=). This runs a Savage-Dickey test, i.e., the proportion by which the probability density has increased from the prior to the posterior at a given value. Therefore, it requires `mcp(sample = "both")`. There are two requirements: First, there can only be one equal sign, so don't use and (&) or or (|). Second, the point to test has to be on the right, and the variables on the left. `"cp_1 = 30"`: is the first change point at 30? Or to be more precise: by what factor has the credence in cp_1 = 30 risen/fallen when conditioning on the data, relative to the prior credence? `"int_1 + int_2 = 0"`: Is the sum of two intercepts zero? `"`cp_1_id[John]`/`cp_1_id[Erin]` = 2"`: is the varying change point for John (which is relative to 'cp_1“) double that of Erin? `width` Float. The width of the highest posterior density interval (between 0 and 1). `digits` a non-null value for digits specifies the minimum number of significant digits to be printed in values. The default, NULL, uses getOption("digits"). (For the interpretation for complex numbers see signif.) Non-integer values will be rounded down, and only values greater than or equal to 1 and no greater than 22 are accepted.

### Value

A data.frame with a row per hypothesis and the following columns:

• `hypothesis` is the hypothesis; often re-arranged to test against zero.

• `mean` is the posterior mean of the left-hand side of the hypothesis.

• `lower` is the lower bound of the (two-sided) highest-density interval of width `width`.

• `upper` is the upper bound of ditto.

• `p` Posterior probability. For "=" (Savage-Dickey), it is the BF converted to p. For directional hypotheses, it is the proportion of samples that returns TRUE.

• `BF` Bayes Factor in favor of the hypothesis. For "=" it is the Savage-Dickey density ratio. For directional hypotheses, it is p converted to odds.

### Author(s)

Jonas Kristoffer Lindeløv jonas@lindeloev.dk

mcp documentation built on March 18, 2022, 6:41 p.m.