Happy birthday easystats! A retrospective

Happy birthday easystats!

Two years ago, which feels like yesterday, we celebrated the easystats project’s first anniversary.

Wow, those were simpler times! One could travel for pleasure, party with dozens of people and have a face-to-face conversation, and the thing that spread like a wildfire around the globe was everyone’s obsession with The Weeknd’s Blinding Lights!

At any rate, since the pandemic did not affect GitHub in any way, our free and open-source fanatic souls have made sure that this project keeps progressing, sometimes in leaps and bounds, while other times slow as grey clouds in the sky.

What has happened since? A lot!

“Go Forth and Multiply”

The easystats project has evolved a lot, and currently comprises a whopping 10 packages! These modular packages, each with its own unique purview, connect with each other to form a unifying, consistent, and most importantly, easy-to-use framework for statistical modeling, visualization, and reporting in the R programming language! 🕸️

Let’s take a closer look at this structure.

First, at the bottom, we have the foundation packages upon which this whole edifice rests:

  • insight: 🔮 This dependency-free low-level helper package provides a unified portal to extract information about a wide range of statistical models. If you (as a user or a developer) have ever felt frustrated by the diversity of objects in R and the APIs they provide and how one can create (S3) methods out of this madness, this is just the package for you!

  • datawizard: 🧙 The most recent addition to the ecosystem! This package forms the data wrangling backend for the entire ecosystem and can be just what you are looking for if you want to do tidyverse-like data wrangling but wish to avoid adding dependencies to your project.

We then have specialized packages to extract additional information from statistical models.

  • bayestestR: 👻 A package that provides utility tools for manipulating and visualizing Bayesian statistical models.

  • effectsize: 🐉 A one-stop solution for computing pretty much every effect size known to mankind, well, almost every. 😅

  • correlation: 🔗 A package dedicated to computing and visualizing probably the most comprehensive suite of correlations.

  • modelbased: 📈 A utility package to work with predictions from statistical models, and can be used to compute and visualize marginal means or contrast analyses.

The information about statistical models are extracted and aggregated by the following two packages:

  • performance: 💪 Computes, analyzes, and tests the performance of statistical model(s).

  • parameters: 📊 Extracts a comprehensive dataframe of almost any statistical model’s parameters and provides helpers to present them in elegant tables and plots.

Finally, the two high-level packages utilize all the other packages to communicate results from statistical analyses, either graphically or textually.

  • see: 🎨 This package forms the visualization backend for the entire ecosystem and interfaces with ggplot2 to support plotting methods for various easystats objects.

  • report: 📜 🎉 This package provides an automated way to create text reports detailing results from statistical analyses.

Except for datawizard, report, and modelbased packages, which are still in their teenage years, the rest of the packages are legally permitted to drive your statistical analysis as they have been published in peer-reviewed journals1 and enjoy a regular health checkup with a large suite of unit tests.

Soaring Like an Eagle!

To our utmost delight, these packages have already been downloaded in total over 6 million times! 🤯

It has been an overwhelming experience to see the warm welcome this project has received in the #rstats community on Twitter and LinkedIn.

Brotherly love: easystats is now used in many packages

Not only have the packages gained popularity among users, but also fellow R developers have started to rely on easystats packages for their own project (e.g., marginaleffects, dotwhisker, ggstatsplot, sjPlot, cvms, jsmodule, neatStats, etc.).

We think that other developers may wish to rely on this project for the following (primary) reasons:

  • 0 external, non-base-R hard dependencies.

  • Rapid response from our developer team in fixing bugs or supporting feature requests, sometimes even in a matter of hours (it helps that the team covers a span of 11 time zones!).

  • Great documentation with plenty of examples and richly detailed tutorials.

  • A diverse developer team of statisticians, researchers, and software engineers that pay attention to the holistic development of the packages.

So in case you have been in two minds thus far about whether you want to use these packages in your own package development, we would highly recommend that you get in touch and communicate your concerns with us. We will do our best to assuage them. 🤗

Things we learned

  • We choose to believe that easystats is a rags-to-riches story. An open-science project, conceived by early career researchers, born and nursed in the academic environment with neither funding nor part of anyone’s research program, and with no direct obligation or pressure to work on it, now has a global community of many thousands of users. They say necessity is the mother of invention, and boy we have tried to be inventive in terms of managing our resources to push out high-quality software in a quick period with $0 in funding. Even if we get any funding someday, we will carry these hard-earned lessons with us. 💪

  • All of us contribute to this project in our free time and have surprisingly never met each other (yet 🤞). This has also taught us the value, fruitfulness, and the sheer joy of online global collaboration, although we are well aware that all of us live in developed countries and enjoy the privilege of good internet connectivity.

  • Another thing we learned is that our laptops look prettier with easystats package stickers. 😊

If you also want to make your laptops prettier, get in touch!

Future plans

This project is now approaching a stage where we can start thinking about finally publishing the meta-package easystats on CRAN, which will give users a single entry point to access the entire ecosystem’s functionality. This also means you won’t have to update several packages every morning to get the ecosystem working, woohoo!

Afterwards, we will be ready to release the first stable version (1.0) of most - if not all - of our packages. This means that there will be less focus on actively adding new features (or making breaking changes) and concentrating more on the dissemination - and training - of the existing functionality (If your institution or local group of R users are interested in hearing more about these packages, please let us know. We will be happy to organize workshops and give talks!).

We are also considering the possibility of writing a book to give a more comprehensive and cohesive account of the project. As detailed as our package websites are and as succinct as the individual journal publications for packages are, none of them yet clearly illustrate end-to-end use of easystats project in a statistical analysis project. That’s a longer-term goal, which requires time and support. Again, we welcome all good souls to contact us if they’re interested in contributing.

Acknowledgments

Last but not the least, we want to finish this post by thanking you, the easystats user, for encouraging us to continue to pursue our passion project. We couldn’t have done this without your constant feedback and love. Cheers!

And if you’re not yet a user or a contributor, what are you waiting for?!

Get Involved

Note that easystats is a project under active development, and is always on the lookout for new contributors. Thus, do not hesitate to contact us if you want to get involved :)

  • Check out our other blog posts here!

Stay updated

To keep yourself apprised of the upcoming features and cool R or data science stuff, you can follow the packages on GitHub (click on one of the easystats package) and then on the Watch button on the top right corner) as well as the easystats team on Twitter:


  1. You can use citation() function to see reference for each package.↩︎