- 1
- Global (most parameterised) model
- 2
- Number of simulations
We’ve learned how to evaluate our models in compared to each other using Delta AIC
However, our set of candidate models might omit vital influences on density, or only model subtle or trivial patterns in the data
What if even our best model is a poor fit - a terrible approximation of reality?! 😱
How can we tell how good our models are? 👼 or 👿 ?
We need to assess how well our model set explains the patterns in our field data:
A poor model may suffer from over-fitting, or under-fitting
Over-fitting happens when you include more parameters in your model than your sample size can support
Under-fitting occurs when your models contain too few, or the wrong, parameters
Both over- and under-fitting can be avoided by:
Before we further investigate our results and draw final conclusions, we should assess the fit of our global, or most general, model1 in two ways:
The R-squared value for the global model tells you how much of the variation in your field data is explained by your parameters
This helps you decide whether:
If you are concerned that the global model is a poor fit, include a model with little or no structure (null model)
This null model will be relatively implausible if the global model is useful
GoF assesses where the real data are placed in comparison to the simulated data
If our real data are at one extreme of the simulated data, and have a very low probability, this indicates that all our models are inadequate to describe our field observations
We use a Chi-Square test to assess how far our real data lie from the simulated data:
High probabilities, indicated by large p-values, tell us the general model explains our data well (nothing to worry about) 😅
A non-significant p-value tells us that our field data don’t deviate markedly from what our model predicts, and our global model is helpful to some degree in describing the ecological system we’re investigating
Low probabilities, indicated by small p-values, indicate the model is poor at predicting our real field data (real data is outlier) 😓
A significant Goodness of Fit test (\(p < 0.05\)) tells us we failed to generate an accurate detection function, or identify what factors determine the species’ density
Let’s run a Goodness of Fit check on our global model, hazLC_DTC1
We can do this by running a parametric bootstrap using unmarked’s parboot()
function:
Bootstrapping takes time! Be patient
Bootstrapping with a higher number of simulations gives you a more robust goodness of fit test
Here we use only 100 simulations, but you can increase this to 1000 or more if 100 simulations run in less than a minute on your computer
Let’s view the output of our Goodness of Fit test:
Call: parboot(object = hazLC_DTC, nsim = 100)
Parametric Bootstrap Statistics:
t0 mean(t0 - t_B) StdDev(t0 - t_B) Pr(t_B > t0)
SSE 157 30.4 25.7 0.129
t_B quantiles:
0% 2.5% 25% 50% 75% 97.5% 100%
[1,] 80 92 108 120 142 186 193
t0 = Original statistic computed from data
t_B = Vector of bootstrap samples
The important value here is the p-value, called Pr(t_B > t0)
Our p-value of 0.129 is greater than 0.05, and is therefore non-significant
This results means that our field data lie within the datasets simulated from our global model, rather than being an extremely unlikely event that lies beyond the normal range of predictions from our global model
We can conclude that our global model fits the field data sufficiently well for us to trust all the models in this analysis 🙌