# Determine probability of reporting under a Poisson arrival Process

Source:`R/prob_report.R`

`prob_report.Rd`

Determines the probability that claims occuring under a Poisson process with
arrival intensity `expo`

and reporting delay distribution `dist`

during the
time between `t_min`

and `t_max`

are reported between `tau_min`

and
`tau_max`

.

## Usage

```
prob_report(
dist,
intervals,
expo = NULL,
with_params = list(),
.tolerance = .Machine$double.eps^0.5,
.max_iter = 100L,
.try_compile = TRUE
)
```

## Arguments

- dist
A reporting delay Distribution, or a compiled interval probability function.

- intervals
A data frame with columns

`xmin`

,`xmax`

,`tmin`

,`tmax`

. Claims occur within`[xmin, xmax]`

and be reported within`[tmin, tmax]`

.- expo
Poisson intensity. If given, must be a vectorised function that yields the intensity of the claim arrival process at a specified time.

`expo = NULL`

is equivalent to a constant intensity function.`expo`

is only relevant up to a multiplicative constant.- with_params
Parameters of

`dist`

to use. Can be a parameter set with different values for each interval. If`dist`

is a compiled interval probability function,`with_params`

can be a matrix instead.- .tolerance
Absolute element-wise tolerance.

- .max_iter
Maximum number of iterations. The number of integration intervals will be at most

`length(lower) * .max_iter`

. Therefor the maximum number of function evaluations per integration interval will be`15 * .max_iter`

.- .try_compile
Try compiling the distributions probability function to speed up integration?

## Details

The reporting probability is given by

P(x + d in [tmin, tmax] | x in [xmin, xmax]) = E(P(x + d in [tmin, tmax] | x) | x in [xmin, xmax]) / P(x in [xmin, xmax]) = int_[xmin, xmax] expo(x) P(x + d in [tmin, tmax]) dx = int_[xmin, xmax] expo(x) P(d in [tmin - x, tmax - x]) dx / int_[xmin, xmax] expo(x) dx

`prob_report`

uses `integrate_gk()`

to compute the two integrals.

## Examples

```
dist <- dist_exponential()
ints <- data.frame(
xmin = 0,
xmax = 1,
tmin = seq_len(10) - 1.0,
tmax = seq_len(10)
)
params <- list(rate = rep(c(1, 0.5), each = 5))
prob_report(dist, ints, with_params = params)
#> [1] 0.367879441 0.399576401 0.146995943 0.054076785 0.019893738 0.041904709
#> [7] 0.025416491 0.015415881 0.009350204 0.005671186
```