# Model prediction error

### Description

`r_squared`

evaluates *R^2* for our simulated dynamics.

`simulated_model`

Error of the stochastic model.

`null_model`

Error of the null model.

### Usage

1 2 3 4 5 | ```
r_squared(observed, simulated, sp)
null_model(observed, sp)
simulated_model(observed, simulated)
``` |

### Arguments

`observed` |
A vector with the actual observed species richness. |

`simulated` |
A vector with the simulated species richness. |

`sp` |
Number of species in the species pool. |

### Details

The importance of assesing how well a model predicts new data is paramount.
The most used metric to assess this model error is *R^2*. *R^2* is
always refered to a null model and is defined as follows:

*R^2 = 1 - ε^2 / ε^2_0*

where
*ε^2* is the prediction error defined as the mean squared
deviation of model predictions from actual observations, and
*ε^2_0* is a null model error, in example, an average of squared
deviations evaluated with a null model.

Our null model corresponds with a random species model with no time correlations, in which we draw randomly from a uniform distribution a number of species between 0 and number of species observed in the species pool. The expectation of the sum of squared errors under the null model is evaluated analytically in Alonso et al. (2015).

### Value

`r_squared`

gives the value of *R^2* for the predictions of
the model.

`null_model`

gives the average of squared
deviations of the null model predictions from actual observations,
*ε^2_0*.

`simulated_model`

gives the average of
squared deviations of the model predictions from the actual observations,
*ε^2*.

### Note

The value of *R^2* depends critically on the definition of the null
model. Note that different definitions of the null model will lead to
different values of *R^2*.

### References

Alonso, D., Pinyol-Gallemi, A., Alcoverro T. and Arthur, R..
(2015) Fish community reassembly after a coral mass mortality: higher
trophic groups are subject to increased rates of extinction. *Ecology
Letters*, **18**, 451–461.

### Examples

1 2 3 4 5 6 7 8 | ```
idaho.sim <- data_generation(as.data.frame(c(rep(0, 163),
rep(1, 57))), 1, c(0.162599, 0.111252), 250, 20)
idaho.me <- c(57, apply(idaho.sim, 1, quantile, 0.5))
r_squared(colSums(idaho[[1]][,3:23]), idaho.me, 220)
null_model(colSums(idaho[[1]][,3:23]), 220)
simulated_model(colSums(idaho[[1]][,3:23]), idaho.me)
``` |