# Simulate a volleyball match

`vs_simulate_match.Rd`

Simulate a volleyball match using either best-of-5 or best-of-3 scoring

## Usage

```
vs_simulate_match(
rates,
process_model = "phase",
serving = NA,
serving5 = NA,
max_sets = 5,
go_to = 25,
go_to5 = 15,
n = 2000,
simple = TRUE,
method = "theoretical"
)
vs_simulate_match_mc(...)
vs_simulate_match_theor(...)
vs_simulate_match_beach(...)
```

## Arguments

- rates
list: A two-element list, each element of which is a set of rates as returned by

`vs_estimate_rates`

- process_model
string: either "sideout" or "phase". See

`vs_estimate_rates()`

- serving
logical: if

`TRUE`

, team 1 will serve first in the match. If`NA`

, the team serving first will be chosen at random- serving5
logical: if

`TRUE`

, team 1 will serve first in the tiebreaking set (if the match gets that far). If`NA`

, the team serving first in that set will be chosen at random- max_sets
integer: the maximum number of sets to be played (either 3 or 5)

- go_to
integer: the minimum score that must be reached to end the set (typically 25 for indoor volleyball in sets 1 to 4, 15 in set 5, or 21 in beach volleyball)

- go_to5
integer: the minimum score that must be reached to end the tiebreaker set (typically 15 for indoor volleyball)

- n
integer: the number of simulations to run

- simple
logical: if

`TRUE`

, just return the probability of team winning and the probabilities of each possible set score. If`FALSE`

, return extra details in a named list. The details will differ between`method = "monte carlo"`

and`method = "theoretical"`

- method
string: the simulation method to use. Either "monte carlo" or "theoretical". Details TBD

- ...
parameters as for

`vs_simulate_match`

.`vs_simulate_match_theor`

and`vs_simulate_match_mc`

are convenience functions for`vs_simulate_match(..., method = "theoretical")`

and`vs_simulate_match(..., method = "monte carlo")`

respectively.`vs_simulate_match_beach`

is a convenience function for`vs_simulate_match(..., max_sets = 3, go_to = 21, go_to5 = 21)`

(typical beach volleyball settings).

## Examples

```
if (FALSE) {
library(datavolley)
x <- dv_read(dv_example_file())
rates <- vs_estimate_rates(x, target_team = "each")
vs_simulate_set(rates) ## simulate a single set
vs_simulate_match(rates) ## simulate a match
## so given the performances of the two teams during that match, we expect
## that the home team should have won, with 3-0 being the most likely scoreline
## compare to the actual match result
summary(x)
}
```