# sb {sensitivity}

Sequential Bifurcations
Package:
sensitivity
Version:
1.7

### Description

`sb` implements the Sequential Bifurcations screening method (Bettonvil and Kleijnen 1996). This is an alpha version that might strongly evolve in the future.

### Usage

```sb(p, sign = rep("+", p), interaction = FALSE)

## S3 method for class 'sb':

## S3 method for class 'sb':
tell((x, y, ...))

## S3 method for class 'sb':
print((x, ...))

## S3 method for class 'sb':
plot((x, ...))

```

### Arguments

p
number of factors.
sign
a vector fo length `p` filled with `"+"` and `"-"`, giving the (assumed) signs of the factors effects.
interaction
a boolean, `TRUE` if the model is supposed to be with interactions, `FALSE` otherwise.
x
a list of class `"sb"` storing the state of the screening study at the current iteration.
y
a vector of model responses.
i
an integer, used to force a wanted bifurcation instead of that proposed by the algorithm.
...
not used.

### Details

The model without interaction is while the model with interactions is In both cases, the factors are assumed to be uniformly distributed on [-1,1]. This is a difference with Bettonvil et al. where the factors vary across [0,1] in the former case, while [-1,1] in the latter.

Another difference with Bettonvil et al. is that in the current implementation, the groups are splitted right in the middle.

### Values

`sb` returns a list of class `"sb"`, containing all the input arguments detailed before, plus the following components: The groups effects can be displayed with the `print` method.

i
the vector of bifurcations.
y
the vector of observations.
ym
the vector of mirror observations (model with interactions only).

### References

B. Bettonvil and J. P. C. Kleijnen, 1996, Searching for important factors in simulation models with many factors: sequential bifurcations, European Journal of Operational Research, 96, 180--194.

### Examples

```# a model with interactions
p <- 50
beta <- numeric(length = p)
beta[1:5] <- runif(n = 5, min = 10, max = 50)
beta[6:p] <- runif(n = p - 5, min = 0, max = 0.3)
beta <- sample(beta)
gamma <- matrix(data = runif(n = p^2, min = 0, max = 0.1), nrow = p, ncol = p)
gamma[lower.tri(gamma, diag = TRUE)] <- 0
gamma[1,2] <- 5
gamma[5,9] <- 12
f <- function(x) { return(sum(x * beta) + (x %*% gamma %*% x))}

# 10 iterations of SB
sa <- sb(p, interaction = TRUE)
for (i in 1 : 10) {