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
#>        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