I understand the method of cross validation to be to leave out some part of a dataset (whether that be one data point at a time = LOO, or subsets = K fold), and train the model on some data, test the model's predictive accuracy with the remaining data, and repeat.
This 'method' then should tell you how well a model predicts out of sample, yet I only seem to see folks use it to compare models (ask which model does a better job predicting out of sample), by comparing these 'relative' model scores such as ELPD, LOOIC, WAIC (https://cran.r-project.org/web/packages/loo/vignettes/loo2-example.html, https://avehtari.github.io/modelselection/CV-FAQ.html).
It seems like one way to see if the model does a decent job at predicting, is to compare the model scores of a model with half the data to that of the other half (e.g. in Rloo_compare(loo(firsthalfmodel),loo(secondhalfmodel))
), but that seems like cross validation within cross validation, since functions like loo
are supposed to be doing cross validation themselves.
Is there some way that I can make a statement about a single model without comparing it to another with LOO or K-fold CV?
If I can assess one model, ELPD is often an output from LOO (see example R code below), but its interpretation doesn't make sense to me outside of a model comparison example.
From: https://avehtari.github.io/modelselection/CV-FAQ.html
"ELPD: The theoretical expected log pointwise predictive density for a new observations"
So this somehow tells me how predictive my model is, but I don't understand the implications of the numbers that come from an output, and I cannot seem to find this information anywhere - aside from a model comparison context.
An R example:
library(rstanarm)
set.seed(707)
dat<-data.frame(x = rnorm(1000),
y = 0.5 + x*.2
)
mod1<-stan_glm(y ~ x,data=dat)
loo(mod1)
Computed from 4000 by 1000 log-likelihood matrix
Estimate SE
elpd_loo 172.7 22.8
p_loo 3.2 0.2
looic -345.4 45.6
------
Monte Carlo SE of elpd_loo is 0.0.
All Pareto k estimates are good (k < 0.5).
See help('pareto-k-diagnostic') for details.
From: https://cran.r-project.org/web/packages/loo/vignettes/loo2-example.html
"If we had a well-specified model we would expect the estimated effective number of parameters (p_loo) to be smaller than or similar to the total number of parameters in the model."
Here p_loo is over 3, which is more than 3 times the total number of parameters in the model (only x). I am guessing that this would indicate model misspecification, how much to worry however seems elusive.
Can someone give, in layperson's terms, what these other numbers are referring to - in a non-model comparison context. What can I say about this model, given this output? For example, is the model a good fit to the data? Does it do a good job predicting? How would one go about making a statement about how well this model performed? Is there any overfitting going on? Or perhaps this method doesn't answer any of these questions?
I have skimmed this resource: https://arxiv.org/pdf/1507.04544.pdf which is dense, yet it all seems to be over my head, so I am looking for an answer that you might give to your grandparent I suppose.