This vignette is a supplement to “Power analysis for the random
intercept cross-lagged panel model using the `powRICLPM`

R-package” by Mulder (2022). It contains the R-code used for performing
the power analysis that serves as the illustrative example. In total,
there are 171 experimental conditions (19 sample sizes \(\times\) 3 numbers of repeated measures
\(\times\) 3 proportions of between
person variance). The analysis is partitioned into two parts to reduce
total computation time: A preliminary analysis part, and a validation
part.

First, a Monte Carlo power analysis is performed over all 171
experimental conditions using a limited number of replications
(`reps = 100`

). These preliminary results serve as a basis
for selecting those experimental conditions that show promising results
(i.e., that meet the desired power- and accuracy levels). These
conditions are then validated using a large number of replications
(`reps = 2000`

) in the next step.

The R-code for the preliminary analysis can be found below:

```
# Matrix of standardized lagged effects
<- matrix(c(0.20, 0.10, 0.15, 0.30), byrow = FALSE, ncol = 2)
Phi # powRICLPM automatically computes Psi based on Phi and within_cor
# Setup parallel processing to speed up computations
plan(multisession, workers = 6)
# Perform preliminary power analysis (with progress bar)
with_progress({
<- powRICLPM(
out_preliminary target_power = 0.8,
search_lower = 200,
search_upper = 2000,
search_step = 100,
time_points = c(3, 4, 5),
ICC = c(0.3, 0.5, 0.7),
RI_cor = 0.35,
Phi = Phi,
within_cor = 0.26,
reps = 100,
seed = 123456
)
})
# Tabular summary of results
summary(out_preliminary)
summary(out_preliminary, sample_size = 200, time_points = 3, ICC = 0.3)
<- give(out_preliminary, what = "results", parameter = "wB2~wA1")
res_wB2wA1
# Visualize power
<- plot(x = out_preliminary, parameter = "wB2~wA1")
p
# Tailor visualization for Mulder (under review)
<- p +
p labs(color = "Number of time points") +
scale_x_continuous(
name = "Sample size",
breaks = seq(200, 2000, 200),
guide = guide_axis(n.dodge = 2)
+
) theme(legend.position = "bottom", text = element_text(size = 8))
pggsave("Mulder2022_preliminary_power.png", height = 5, width = 7)
```

The preliminary results suggest that at least 4 time-points and a sample size upwards of a 1000 are required in the condition with the most advantageous proportion of between-unit variance (where proportion of between-unit variance is 0.3). For conditions with a 0.7 proportion of between-unit variance, sample sizes of approximately 1500 are needed with 5 repeated measures, whereas sample sizes upwards of 1700 are needed for 4 repeated measures. Based on these results, the following experimental conditions for validation are selected: The range of sample sizes is reduced to 900 to 1800, and experimental conditions with 3 repeated measures are omitted. This results in a total of 10 sample sizes \(\times\) 2 numbers of repeated measures \(\times\) 3 proportions of between-unit variance, totaling 60 experimental conditions for validation.

```
# Setup parallel processing to speed up computations
plan(multisession, workers = 6)
# Perform preliminary power analysis (with progress bar)
with_progress({
<- powRICLPM(
out_validation target_power = 0.8,
search_lower = 900,
search_upper = 1800,
search_step = 100,
time_points = c(4, 5),
ICC = c(0.3, 0.5, 0.7),
RI_cor = 0.35,
Phi = Phi,
within_cor = 0.26,
reps = 2000,
seed = 123456
)
})
# Tabular summary of results
summary(out_validation, parameter = "wB2~wA1")
<- give(out_validation, what = "results", parameter = "wB2~wA1")
res_wB2wA1
# Visualize power
<- plot(out_validation, parameter = "wB2~wA1")
p2
# Tailor visualization of power for Mulder (2022)
<- p2 +
p2 labs(color = "Number of time points") +
scale_x_continuous(
name = "Sample size",
breaks = seq(900, 1800, 100),
guide = guide_axis(n.dodge = 2)) +
scale_color_manual(values = c("#00BA38", "#619CFF")) +
theme(legend.position = "bottom", text = element_text(size = 8))
p2ggsave("Mulder2022_validation_power.png", height = 5, width = 7)
```