# Analytical and simulation-based power analyses for mixed-design ANOVAs

In this post I show some R-examples on how to perform power analyses for mixed-design ANOVAs. The first example is analytical β adapted from formulas used in G*Power (Faul et al., 2007), and the second example is a Monte Carlo simulation. The source code is embedded at the end of this post.

Both functions require a dataframe, containing the parameters that will be used in the power calculations. Here is an example using three groups and three time-points.

Here is a plot of our hypothetical study design.

Now, we will use this design to perform a power analysis using
`anova.pwr.mixed`

and `anova.pwr.mixed.sim`

.

## Comparison of analytical and monte carlo power analysis

Now letβs compare the two functionsβ results on the time x group-interaction. Hopefully, the two methods will yield the same result.

Luckily, the analytical results are consistent with the Monte Carlo results.

## References

Faul, F., Erdfelder, E., Lang, A. G., & Buchner, A. (2007). G* Power 3:
A flexible statistical power analysis program for the social,
behavioral, and biomedical sciences.*Behavior research methods*, 39(2),
175-191.

## Source code

Written by **Kristoffer Magnusson**, a researcher in clinical psychology. You should follow him on Twitter and come hang out on the open science discord Git Gud Science.

Published May 22, 2013 (View on GitHub)

### Buy Me A Coffee

A huge thanks to the **152** supporters who've bought me a **361** coffees!

Jason Rinaldo bought ββββββββββ (10) coffees

I've been looking for applets that show this for YEARS, for demonstrations for classes. Thank you so much! Students do not need to tolarate my whiteboard scrawl now. I'm sure they'd appreciate you, too.l

JDMM bought βββββ (5) coffees

You finally helped me understand correlation! Many, many thanks... π

@VicCazares bought βββββ (5) coffees

Good stuff! It's been so helpful for teaching a Psych Stats class. Cheers!

Dustin M. Burt bought βββββ (5) coffees

Excellent and informative visualizations!

Someone bought βββββ (5) coffees

@metzpsych bought βββββ (5) coffees

Always the clearest, loveliest simulations for complex concepts. Amazing resource for teaching intro stats!

Ryo bought βββββ (5) coffees

For a couple years now I've been wanting to create visualizations like these as a way to commit these foundational concepts to memory. But after finding your website I'm both relieved that I don't have to do that now and pissed off that I couldn't create anything half as beautiful and informative as you have done here. Wonderful job.

Diarmuid Harvey bought βββββ (5) coffees

You have an extremely useful site with very accessible content that I have been using to introduce colleagues and students to some of the core concepts of statistics. Keep up the good work, and thanks!

Michael Hansen bought βββββ (5) coffees

Keep up the good work!

Michael Villanueva bought βββββ (5) coffees

I wish I could learn more from you about stats and math -- you use language in places that I do not understand. Cohen's D visualizations opened my understanding. Thank you

Someone bought βββββ (5) coffees

Thank you, Kristoffer

PΓ₯l from Norway bought βββββ (5) coffees

Great webpage, I use it to illustrate several issues when I have a lecture in research methods. Thanks, it is really helpful for the students:)

@MAgrochao bought βββββ (5) coffees

Joseph Bulbulia bought βββββ (5) coffees

Hard to overstate the importance of this work Kristoffer. Grateful for all you are doing.

@TDmyersMT bought βββββ (5) coffees

Some really useful simulations, great teaching resources.

@lakens bought βββββ (5) coffees

Thanks for fixing the bug yesterday!

@LinneaGandhi bought βββββ (5) coffees

This is awesome! Thank you for creating these. Definitely using for my students, and me! :-)

@ICH8412 bought βββββ (5) coffees

very useful for my students I guess

@KelvinEJones bought βββββ (5) coffees

Preparing my Master's student for final oral exam and stumbled on your site. We are discussing in lab meeting today. Coffee for everyone.

Someone bought βββββ (5) coffees

What a great site

@Daniel_Brad4d bought βββββ (5) coffees

Wonderful work!

David Loschelder bought βββββ (5) coffees

Terrific work. So very helpful. Thank you very much.

@neilmeigh bought βββββ (5) coffees

I am so grateful for your page and can't thank you enough!Β Β

@giladfeldman bought βββββ (5) coffees

Wonderful work, I use it every semester and it really helps the students (and me) understand things better. Keep going strong.

Dean Norris bought βββββ (5) coffees

Sal bought βββββ (5) coffees

Really super useful, especially for teaching. Thanks for this!

dde@paxis.org bought βββββ (5) coffees

Very helpful to helping teach teachers about the effects of the Good Behavior Game

@akreutzer82 bought βββββ (5) coffees

Amazing visualizations! Thank you!

@rdh_CLE bought βββββ (5) coffees

So good!

Amanda Sharples bought βββ (3) coffees

Soyol bought βββ (3) coffees

Someone bought βββ (3) coffees

Kenneth Nilsson bought βββ (3) coffees

Keep up the splendid work!

@jeremywilmer bought βββ (3) coffees

Love this website; use it all the time in my teaching and research.

Someone bought βββ (3) coffees

Powerlmm was really helpful, and I appreciate your time in putting such an amazing resource together!

DR AMANDA C DE C WILLIAMS bought βββ (3) coffees

This is very helpful, for my work and for teaching and supervising

Georgios Halkias bought βββ (3) coffees

Regina bought βββ (3) coffees

Love your visualizations!

Susan Evans bought βββ (3) coffees

Thanks. I really love the simplicity of your sliders. Thanks!!

@MichaMarie8 bought βββ (3) coffees

Thanks for making this Interpreting Correlations: Interactive Visualizations site - it's definitely a great help for this psych student! π

Zakaria Giunashvili, from Georgia bought βββ (3) coffees

brilliant simulations that can be effectively used in training

Someone bought βββ (3) coffees

@PhysioSven bought βββ (3) coffees

Amazing illustrations, there is not enough coffee in the world for enthusiasts like you! Thanks!

Cheryl@CurtinUniAus bought βββ (3) coffees

πWhat a great contribution - thanks Kristoffer!

vanessa moran bought βββ (3) coffees

Wow - your website is fantastic, thank you for making it.

Someone bought βββ (3) coffees

mikhail.saltychev@gmail.com bought βββ (3) coffees

Thank you Kristoffer This is a nice site, which I have been used for a while. Best Prof. Mikhail Saltychev (Turku University, Finland)

Someone bought βββ (3) coffees

Ruslan Klymentiev bought βββ (3) coffees

@lkizbok bought βββ (3) coffees

Keep up the nice work, thank you!

@TELLlab bought βββ (3) coffees

Thanks - this will help me to teach tomorrow!

SCCT/Psychology bought βββ (3) coffees

Keep the visualizations coming!

@elena_bolt bought βββ (3) coffees

Thank you so much for your work, Kristoffer. I use your visualizations to explain concepts to my tutoring students and they are a huge help.

A random user bought βββ (3) coffees

Thank you for making such useful and pretty tools. It not only helped me understand more about power, effect size, etc, but also made my quanti-method class more engaging and interesting. Thank you and wish you a great 2021!

@hertzpodcast bought βββ (3) coffees

We've mentioned your work a few times on our podcast and we recently sent a poster to a listener as prize so we wanted to buy you a few coffees.Β Thanks for the great work that you do!Dan Quintana and James Heathers - Co-hosts of Everything HertzΒ

Cameron Proctor bought βββ (3) coffees

Used your vizualization in class today. Thanks!

eshulman@brocku.ca bought βββ (3) coffees

My students love these visualizations and so do I! Thanks for helping me make stats more intuitive.

Someone bought βββ (3) coffees

Adrian HelgΓ₯ VestΓΈl bought βββ (3) coffees

@misteryosupjoo bought βββ (3) coffees

For a high school teacher of psychology, I would be lost without your visualizations. The ability to interact and manipulate allows students to get it in a very sticky manner. Thank you!!!

Chi bought βββ (3) coffees

You Cohen's d post really helped me explaining the interpretation to people who don't know stats! Thank you!

Someone bought βββ (3) coffees

You doing useful work !! thanks !!

@ArtisanalANN bought βββ (3) coffees

Enjoy.

@jsholtes bought βββ (3) coffees

Teaching stats to civil engineer undergrads (first time teaching for me, first time for most of them too) and grasping for some good explanations of hypothesis testing, power, and CI's. Love these interactive graphics!

@notawful bought βββ (3) coffees

Thank you for using your stats and programming gifts in such a useful, generous manner. -Jess

Mateu Servera bought βββ (3) coffees

A job that must have cost far more coffees than we can afford you ;-). Thank you.

@cdrawn bought βββ (3) coffees

Thank you! Such a great resource for teaching these concepts, especially CI, Power, correlation.

Julia bought βββ (3) coffees

Fantastic work with the visualizations!

@felixthoemmes bought βββ (3) coffees

@dalejbarr bought βββ (3) coffees

Your work is amazing! I use your visualizations often in my teaching. Thank you.Β

@PsychoMouse bought βββ (3) coffees

Excellent!Β Well done!Β SOOOO Useful!πΒ πΒ

Dan Sanes bought ββ (2) coffees

this is a superb, intuitive teaching tool!

@whlevine bought ββ (2) coffees

Thank you so much for these amazing visualizations. They're a great teaching tool and the allow me to show students things that it would take me weeks or months to program myself.

Someone bought ββ (2) coffees

@notawful bought ββ (2) coffees

Thank you for sharing your visualization skills with the rest of us! I use them frequently when teaching intro stats.Β

Andrew J O'Neill bought β (1) coffee

Thanks for helping understand stuff!

Someone bought β (1) coffee

Someone bought β (1) coffee

Shawn Hemelstrand bought β (1) coffee

Thank you for this great visual. I use it all the time to demonstrate Cohen's d and why mean differences affect it's approximation.

Adele Fowler-Davis bought β (1) coffee

Thank you so much for your excellent post on longitudinal models. Keep up the good work!

Stewart bought β (1) coffee

This tool is awesome!

Someone bought β (1) coffee

Aidan Nelson bought β (1) coffee

Such an awesome page, Thank you

Someone bought β (1) coffee

Ellen Kearns bought β (1) coffee

Dr Nazam Hussain bought β (1) coffee

Someone bought β (1) coffee

Eva bought β (1) coffee

I've been learning about power analysis and effect sizes (trying to decide on effect sizes for my planned study to calculate sample size) and your Cohen's d interactive tool is incredibly useful for understanding the implications of different effect sizes!

Someone bought β (1) coffee

Someone bought β (1) coffee

Thanks a lot!

Someone bought β (1) coffee

Reena Murmu Nielsen bought β (1) coffee

Tony Andrea bought β (1) coffee

Thanks mate

Tzao bought β (1) coffee

Thank you, this really helps as I am a stats idiot :)

Melanie Pflaum bought β (1) coffee

Sacha Elms bought β (1) coffee

Yihan Xu bought β (1) coffee

Really appreciate your good work!

@stevenleung bought β (1) coffee

Your visualizations really help me understand the math.

Junhan Chen bought β (1) coffee

Someone bought β (1) coffee

Someone bought β (1) coffee

Michael Hansen bought β (1) coffee

ALEXANDER VIETHEER bought β (1) coffee

mather bought β (1) coffee

Someone bought β (1) coffee

Bastian Jaeger bought β (1) coffee

Thanks for making the poster designs OA, I just hung two in my office and they look great!

@ValerioVillani bought β (1) coffee

Thanks for your work.

Someone bought β (1) coffee

Great work!

@YashvinSeetahul bought β (1) coffee

Someone bought β (1) coffee

Angela bought β (1) coffee

Thank you for building such excellent ways to convey difficult topics to students!

@inthelabagain bought β (1) coffee

Really wonderful visuals, and such a fantastic and effective teaching tool. So many thanks!

Someone bought β (1) coffee

Someone bought β (1) coffee

Yashashree Panda bought β (1) coffee

I really like your work.

Ben bought β (1) coffee

You're awesome. I have students in my intro stats class say, "I get it now," after using your tool. Thanks for making my job easier.

Gabriel Recchia bought β (1) coffee

Incredibly useful tool!

Shiseida Sade Kelly Aponte bought β (1) coffee

Thanks for the assistance for RSCH 8210.

@Benedikt_Hell bought β (1) coffee

Great tools! Thank you very much!

Amalia Alvarez bought β (1) coffee

@noelnguyen16 bought β (1) coffee

Hi Kristoffer, many thanks for making all this great stuff available to the community!

Eran Barzilai bought β (1) coffee

These visualizations are awesome! thank you for creating it

Someone bought β (1) coffee

Chris SG bought β (1) coffee

Very nice.

Gray Church bought β (1) coffee

Thank you for the visualizations. They are fun and informative.

Qamar bought β (1) coffee

Tanya McGhee bought β (1) coffee

@schultemi bought β (1) coffee

Neilo bought β (1) coffee

Really helpful visualisations, thanks!

Someone bought β (1) coffee

This is amazing stuff. Very slick.Β

Someone bought β (1) coffee

Sarko bought β (1) coffee

Thanks so much for creating this! Really helpful for being able to explain effect size to a clinician I'm doing an analysis for.Β

@DominikaSlus bought β (1) coffee

Thank you! This page is super useful. I'll spread the word.Β

Someone bought β (1) coffee

Melinda Rice bought β (1) coffee

Thank you so much for creating these tools! As we face the challenge of teaching statistical concepts online, this is an invaluable resource.

@tmoldwin bought β (1) coffee

Fantastic resource. I think you would be well served to have one page indexing all your visualizations, that would make it more accessible for sharing as a common resource.

Someone bought β (1) coffee

Fantastic Visualizations! Amazing way to to demonstrate how n/power/beta/alpha/effect size are all interrelated - especially for visual learners! Thank you for creating this?

@jackferd bought β (1) coffee

Incredible visualizations and the best power analysis software on R.

Cameron Proctor bought β (1) coffee

Great website!

Someone bought β (1) coffee

Hanah Chapman bought β (1) coffee

Thank you for this work!!

Someone bought β (1) coffee

Jayme bought β (1) coffee

Nice explanation and visual guide of Cohen's d

Bart Comly Boyce bought β (1) coffee

thank you

Dr. Mitchell Earleywine bought β (1) coffee

This site is superb!

Florent bought β (1) coffee

Zampeta bought β (1) coffee

thank you for sharing your work.Β

Mila bought β (1) coffee

Thank you for the website, made me smile AND smarter :O enjoy your coffee! :)

Deb bought β (1) coffee

Struggling with statistics and your interactive diagram made me smile to see that someone cares enough about us strugglers to make a visual to help us out!πΒ

Someone bought β (1) coffee

@exerpsysing bought β (1) coffee

Much thanks! Visualizations are key to my learning style!Β

Someone bought β (1) coffee

## Sponsors

You can sponsor my open source work using GitHub Sponsors and have your name shown here.

Backers β¨β€οΈ

#### Questions & Comments

Please use GitHub Discussions for any questions related to this post, or open an issue on GitHub if you've found a bug or wan't to make a feature request.

## Archived Comments (2)

Hi, Nice post. Could you please provide a bit more detail (and/or a reference) for the computation on the second line below? Thank you.

B <- matrix(stdevs, ncol=4, nrow=4)

sigma <- t(B) * B * rho

That computation is used to construct the covariance matrix based on the given standard deviations and correlation coefficient between each time point (rho). Here's an expanded calculation, hope it helps

First, we have that

$latex \rho_{X,Y}=\mathrm{corr}(X,Y)={\mathrm{cov}(X,Y) \over \sigma_X \sigma_Y} $

and thus we can easily solve for Cov(X,Y).

$latex \mathrm{cov}(X,Y) = \sigma_X \sigma_Y \mathrm{corr}(X,Y)$

And we want our covariance matrix have compound symmetry but allow heterogeneous variances, so that we can explicitly violate the sphericity assumption if we want to. This is usefull if want want to simulate the effects of violating this assumption. However, sphericity can still hold even without compound symmetry. So our covariance matrix will look like this

$latex \Sigma = \begin{pmatrix}

\sigma_1^2 & \sigma_2\sigma_1\rho & \sigma_3\sigma_1\rho \\

\sigma_2\sigma_1\rho & \sigma_2^2 & \sigma_3\sigma_2\rho \\

\sigma_3\sigma_1\rho & \sigma_3\sigma_2\rho & \sigma_3^2

\end{pmatrix}

$

So t(B)*B*rho is just an vectorized implementation of this, i.e:

$latex B = \begin{pmatrix}

\sigma_1 & \sigma_1 & \sigma_1 \\

\sigma_2 & \sigma_2 & \sigma_2 \\

\sigma_3 & \sigma_3 & \sigma_3 \\

\end{pmatrix}

$

and t(B) is

$latex \mathbf{B}^\top = \begin{pmatrix}

\sigma_1 & \sigma_2 & \sigma_3 \\

\sigma_1 & \sigma_2 & \sigma_3 \\

\sigma_1 & \sigma_2 & \sigma_3 \\

\end{pmatrix}

$

and thus t(B) * B is

$latex \mathbf{B}^\top*\mathbf{B} = \begin{pmatrix}

\sigma_1^2 & \sigma_2\sigma_1 & \sigma_3\sigma_1 \\

\sigma_2\sigma_1 & \sigma_2^2 & \sigma_3\sigma_2 \\

\sigma_3\sigma_1 & \sigma_3\sigma_2 & \sigma_3^2

\end{pmatrix}

$

And if we multiply this by the correlation coefficient of the repeated measures, and replace the diagonal since it has also been multiplied with rho, then we have the covariance matrix as described above.