This function extracts intraclass correlation coefficients (ICC) from a multilevel model. It can be used to decompose the variance in the outcome variable of a specification curve analysis (e.g., the regression coefficients). This approach summarises the relative importance of analytical choices by estimating the share of variance in the outcome (e.g., the regression coefficient) that different analytical choices or combinations therefor account for. To use this approach, one needs to estimate a multilevel model that includes all analytical choices as grouping variables (see examples).

icc_specs(model, percent = TRUE)



a multilevel (i.e., mixed effects) model that captures the variances of the specification curve.


a logical value indicating whether the ICC should also be printed as percentage. Defaults to TRUE.


a tibble including the grouping variable, the random effect variances, the raw intraclass correlation coefficient (ICC), and the ICC in percent.


  • Hox, J. J. (2010). Multilevel analysis: techniques and applications. New York: Routledge.

See also

plot_variance() to plot the variance decomposition.


# Step 1: Run spec curve analysis results <- run_specs(df = example_data, y = c("y1", "y2"), x = c("x1", "x2"), model = c("lm")) # Step 2: Estimate a multilevel model without predictors model <- lme4::lmer(estimate ~ 1 + (1|x) + (1|y), data = results) # Step 3: Estimate intra-class correlation icc_specs(model)
#> grp vcov icc percent #> 1 x 0.669097576 0.0310285827 3.10285827 #> 2 y 20.890686733 0.9687800785 96.87800785 #> 3 Residual 0.004126013 0.0001913388 0.01913388