# Model stability in cross-validation of regression models

Given multiple cross-validation folds of a logistic regression, and the resulting multiple estimates of each regression coefficient, how should one measure whether or not a predictor (or set of predictors) is/are stable and meaningful based on the regression coefficient(s)? Is this different for linear regression?

-

@BGreene Very clever. Why not post that as an answer? You're also making me wonder whether the ensemble learning literature holds something relevant. – Jack Tanner Feb 28 at 17:14
thanks, will do. – BGreene Feb 28 at 18:48
When you say "multiple cross-validation", do you mean that you run $m$ times a $k$-fold cross-validation? – andrea Mar 11 at 9:22
@andrea, I say "multiple cross-validation folds", i.e., $k$ folds. – Jack Tanner Mar 11 at 19:48

## 2 Answers

You could treat the regression coefficients resulting from each test fold in the CV as independent observations and then calculate their reliability/stability using intra-class correlation coefficient (ICC) as reported by Shrout & Fleiss.

-

I assume you in your cross-validation you divide the data in two parts, a training set and a test set. In one fold you fit a model from the training set and use it to predict the response of the test set, right? This will give you an error rate for the whole model, not for a single predictor.

I do not know if it is possible to find p-values for predictors using something like the F-tests used in ordinary linear regression.

You can try remove predictors from the model using for example backward or forward selection if that is your aim.

You could instead of CV use bootstrap to find a confidence interval for each predictor and then see how stable it is.

How many folds do you use in your CV, is it leave-one-out cross-validation?

Perhaps more details of what your aim is would help to answer this question.

-

Assume this is leave-one-out. Each predictor in each fold already has a confidence interval, e.g., from a Bayesian posterior CI or std err from `glm(..., family="binomial")` in R. What do I do with the intervals for each predictor across the leave-one-out runs? – Jack Tanner Apr 27 '12 at 3:22
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 3, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.8910489082336426, "perplexity_flag": "middle"}