Detect hierarchical structure in data
Value
A list with components levels, level_names,
level_variables, n_levels, units_per_level,
nesting_structure, cross_classification,
recommendations, and icc_values.
Examples
d <- data.frame(
case = rep(c("C1", "C2", "C3"), each = 8),
phase = rep(c("A", "B"), 12),
time = rep(1:8, 3),
outcome = rnorm(24)
)
detect_hierarchical_structure(d)
#> $levels
#> $levels[[1]]
#> [1] "time"
#>
#> $levels[[2]]
#> [1] "case"
#>
#> $levels[[3]]
#> [1] "phase"
#>
#>
#> $level_names
#> [1] "Level 2" "Level 3" "Level 4"
#>
#> $level_variables
#> [1] "time" "case" "phase"
#>
#> $n_levels
#> [1] 3
#>
#> $units_per_level
#> [1] 8 3 2
#>
#> $nesting_structure
#> list()
#>
#> $cross_classification
#> [1] TRUE
#>
#> $recommendations
#> $recommendations$model_type
#> [1] "crossed_random_effects"
#>
#> $recommendations$crossed_message
#> [1] "Cross-classified structure detected. Use crossed random effects."
#>
#> $recommendations$centering
#> [1] "group_mean_centering"
#>
#> $recommendations$centering_message
#> [1] "Consider group-mean centering for Level 1 predictors"
#>
#> $recommendations$estimation
#> [1] "bayesian"
#>
#> $recommendations$estimation_message
#> [1] "Small number of units at higher levels ( 2 ). Bayesian estimation recommended."
#>
#>
#> $variance_based
#> $variance_based$time
#> $variance_based$time$variable
#> [1] "time"
#>
#> $variance_based$time$level
#> [1] "level4"
#>
#> $variance_based$time$between_variance
#> [1] 0.3202507
#>
#> $variance_based$time$prop_variance
#> [1] 0.2412646
#>
#> $variance_based$time$n_groups
#> [1] 8
#>
#>
#> $variance_based$phase
#> $variance_based$phase$variable
#> [1] "phase"
#>
#> $variance_based$phase$level
#> [1] "level5"
#>
#> $variance_based$phase$between_variance
#> [1] 0.2730338
#>
#> $variance_based$phase$prop_variance
#> [1] 0.2056933
#>
#> $variance_based$phase$n_groups
#> [1] 2
#>
#>
#> $variance_based$case
#> $variance_based$case$variable
#> [1] "case"
#>
#> $variance_based$case$level
#> [1] "level5"
#>
#> $variance_based$case$between_variance
#> [1] 0.06528691
#>
#> $variance_based$case$prop_variance
#> [1] 0.04918467
#>
#> $variance_based$case$n_groups
#> [1] 3
#>
#>
#>
#> $ic_based
#> $ic_based$time
#> $ic_based$time$variable
#> [1] "time"
#>
#> $ic_based$time$n_groups
#> [1] 8
#>
#> $ic_based$time$ic_score
#> [1] 9.424431
#>
#> $ic_based$time$effective_sample_per_group
#> [1] 3
#>
#>
#> $ic_based$case
#> $ic_based$case$variable
#> [1] "case"
#>
#> $ic_based$case$n_groups
#> [1] 3
#>
#> $ic_based$case$ic_score
#> [1] 3.534161
#>
#> $ic_based$case$effective_sample_per_group
#> [1] 8
#>
#>
#> $ic_based$phase
#> $ic_based$phase$variable
#> [1] "phase"
#>
#> $ic_based$phase$n_groups
#> [1] 2
#>
#> $ic_based$phase$ic_score
#> [1] 2.356108
#>
#> $ic_based$phase$effective_sample_per_group
#> [1] 12
#>
#>
#>
#> $crossed_factors
#> $crossed_factors[[1]]
#> [1] "time" "case"
#>
#> $crossed_factors[[2]]
#> [1] "case" "time"
#>
#> $crossed_factors[[3]]
#> [1] "case" "phase"
#>
#> $crossed_factors[[4]]
#> [1] "phase" "case"
#>
#>
#> $icc_values
#> $icc_values$time
#> [1] 0
#>
#> $icc_values$case
#> [1] 0
#>
#> $icc_values$phase
#> [1] 0
#>
#>
