easystats's Avatar

easystats

@easystats.github.io

Official channel of {easystats}, a collection of #rstats ๐Ÿ“ฆs with a unifying and consistent framework for statistical modeling, visualization, and reporting. โ€œStatistics are like sausages. Itโ€™s better not to see them being made, unless you use easystats.โ€

910 Followers  |  115 Following  |  76 Posts  |  Joined: 17.10.2024  |  2.0493

Latest posts by easystats.github.io on Bluesky

Case Study: Measuring and comparing absolute and relative inequalities in R

How to summarize the total effect of a categorical variable like education? A new vignette shows how to compute absolute and relative inequality with the #easystats {modelbased}๐Ÿ“ฆin #rstats. Get a single, interpretable number to quantify overall group disparities!
easystats.github.io/modelbased/a...

28.07.2025 07:13 โ€” ๐Ÿ‘ 19    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1
Modelbased for Quick and Beautiful Model Visualization ยท I'm a Chordata! Urochordata!

Modelbased for Quick and Beautiful Model Visualization in #rstats imachordata.com/2025/07/25/m... Thanks, @easystats.github.io!

25.07.2025 20:38 โ€” ๐Ÿ‘ 8    ๐Ÿ” 6    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Just dodging is not yet implemented in {tinyplot}, but hopefully coming soon!

22.07.2025 15:27 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image Post image Post image Post image

As you can see, many plot types already work, just some fine-tuning left to do...

22.07.2025 15:27 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image Post image Post image Post image

๐ŸŽ‰ Great news, R users! ๐ŸŽ‰ We're thrilled to announce that {tinyplot} support is coming to the #rstats #easystats project! Get ready for even more amazing stuff to make your data analysis a breeze! ๐Ÿ“Šโœจ
@gmcd.bsky.social @vincentab.bsky.social @zeileis.org

22.07.2025 15:27 โ€” ๐Ÿ‘ 21    ๐Ÿ” 4    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
Post image Post image

Since `display(format = "tt")` returns a `tinytable` object, you can easily modify the table to meet your needs.

22.07.2025 07:46 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image Post image Post image

Here's the default HTML rendering.

22.07.2025 07:45 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image Post image Post image Post image

Improved support for the great {tinytable}๐Ÿ“ฆ from @vincentab.bsky.social coming to the easystats packages! Use the `display()` method for different output formats of your tables - HTML, markdown, or - when `format = "tt"` a `tinytable` object that renders context-dependent.
#easystats #rstats

22.07.2025 07:42 โ€” ๐Ÿ‘ 21    ๐Ÿ” 4    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

#statstab #386 {bayestestR} Evaluating Evidence and Making Decisions using Bayesian Statistics by @mattansb.msbstats.info

Thoughts: Want to start using Bayesian stats? Here is a quick but comprehensive guide in #R

#bayesian #bayes #mcmc #easystats #guide

mattansb.github.io/bayesian-evi...

14.07.2025 22:14 โ€” ๐Ÿ‘ 8    ๐Ÿ” 5    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
screenshot showing the row dataframe with a column of rvars and the markdown-formatted-table output of describe_posterior() + print_md()

screenshot showing the row dataframe with a column of rvars and the markdown-formatted-table output of describe_posterior() + print_md()

bayestestR::describe_posterior() works on rvar columns

14.07.2025 20:52 โ€” ๐Ÿ‘ 5    ๐Ÿ” 3    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

But I think the rvar-support is more recent ;-)

14.07.2025 20:58 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Learning resources

You may find some of the resources useful, e.g. there are two sets of slides for the {modelbased} package: easystats.github.io/easystats/ar...
(and of course the website, which gets regular updates: easystats.github.io/modelbased/)

14.07.2025 07:21 โ€” ๐Ÿ‘ 3    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

- ๐Ÿ“ฆparameters, performance: improvement to all functions related to factor or principal component analysis, as well as psychometric testing (Cronbach's alpha, omega...)
- ๐Ÿ“ฆmodelbased: better support for brms-mixture models

More updates in other packages are in the pipeline...

10.07.2025 17:49 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Framework for Easy Statistical Modeling, Visualization, and Reporting A meta-package that installs and loads a set of packages from easystats ecosystem in a single step. This collection of packages provide a unifying and consistent framework for statistical modeling, vi...

Several easystats๐Ÿ“ฆwere updated the past weeks, make sure to install them to get the latest features!

Here's what's new:
- ๐Ÿ“ฆinsight, bayestestR: performance improvements for Bayesian models, better support for brms-mixture models

1/2

#easystats #rstats
easystats.github.io/easystats/

10.07.2025 17:49 โ€” ๐Ÿ‘ 15    ๐Ÿ” 6    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

Yay, we have reached the 30 million downloads mark (and > 10k citations of our packages)! #easystats #rstats
(nice metrics, despite not 100% accurate, but still...)

05.07.2025 13:46 โ€” ๐Ÿ‘ 21    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 2

Since we got questions regarding if model predictors also predict class membership or only the mean outcome for each class, we added a short paragraph including a summary table and some example code at the end of the vignette, clarifying the different GMM options:
easystats.github.io/modelbased/a...

25.06.2025 10:24 โ€” ๐Ÿ‘ 7    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Note that these new features require the current GitHub versions of our packages, which you can install via `easystats::install_latest()`.

24.06.2025 17:35 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
An Introduction to Growth Mixture Models with brms and easystats

Unlock hidden patterns in longitudinal data! ๐Ÿš€ Our new vignette shows how to use brms & easystats to perform Growth Mixture Models, identify unique developmental trajectories, and visualize & interpret your findings with ease. #rstats #brms #easystats
easystats.github.io/modelbased/a...

24.06.2025 17:33 โ€” ๐Ÿ‘ 21    ๐Ÿ” 5    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

We do use the same approach as car::vif() (we actually report gvif).

If you have an example where our output deviates from car::vif() please do share!

24.06.2025 17:05 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Personally I prefer using datawizard::standardize(), and specifically using it *in the formula*.

So
mtcars$hp_z <- scale(mtcars$hp)
mpg ~ hp_z

Becomes
mpg ~ standardize(hp)

This solves both issues you raise in your post.

#rstats @easystats.bsky.social

04.06.2025 19:33 โ€” ๐Ÿ‘ 11    ๐Ÿ” 3    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

And there's a non-documented option "specific", which is equivalent to `estimate_relation()`.

31.05.2025 13:13 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Page 3 in the paper (or the docs: easystats.github.io/modelbased/r...)

31.05.2025 13:09 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yes, see argument `estimate`. Using this argument, you should be able to easily reproduce results from emmeans and marginaleffects::avg_predictions. It's more a matter of naming things/wording, where the modelbased approach differs from emmeans or marginaleffects.

31.05.2025 11:46 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

We're happy to have an accompanying publication for another #rstats #easystats package published! Thanks to @vincentab.bsky.social and @tjmahr.com for reviewing the manuscript!

30.05.2025 16:36 โ€” ๐Ÿ‘ 26    ๐Ÿ” 10    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Messy data is our bread and butter!

27.05.2025 13:58 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yes, exactly ๐Ÿ’ฏ

27.05.2025 13:57 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image performance::check_group_variation(iris, select = "Sepal.Width", by = "Species")
#> Check Species variation
#> 
#> Variable    | Variation | Design
#> --------------------------------
#> Sepal.Width |      both |       

datawizard::demean(iris, select = "Sepal.Width", by = "Species") |> 
  dplyr::glimpse()
#> Rows: 150
#> Columns: 7
#> $ Sepal.Length        <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.โ€ฆ
#> $ Sepal.Width         <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.โ€ฆ
#> $ Petal.Length        <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.โ€ฆ
#> $ Petal.Width         <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.โ€ฆ
#> $ Species             <fct> setosa, setosa, setosa, setosa, setosa, setosa, setosa, sโ€ฆ
#> $ Sepal.Width_between <dbl> 3.428, 3.428, 3.428, 3.428, 3.428, 3.428, 3.428, 3.428, 3โ€ฆ
#> $ Sepal.Width_within  <dbl> 0.072, -0.428, -0.228, -0.328, 0.172, 0.472, -0.028, -0.0โ€ฆ

performance::check_group_variation(iris, select = "Sepal.Width", by = "Species") #> Check Species variation #> #> Variable | Variation | Design #> -------------------------------- #> Sepal.Width | both | datawizard::demean(iris, select = "Sepal.Width", by = "Species") |> dplyr::glimpse() #> Rows: 150 #> Columns: 7 #> $ Sepal.Length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.โ€ฆ #> $ Sepal.Width <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.โ€ฆ #> $ Petal.Length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.โ€ฆ #> $ Petal.Width <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.โ€ฆ #> $ Species <fct> setosa, setosa, setosa, setosa, setosa, setosa, setosa, sโ€ฆ #> $ Sepal.Width_between <dbl> 3.428, 3.428, 3.428, 3.428, 3.428, 3.428, 3.428, 3.428, 3โ€ฆ #> $ Sepal.Width_within <dbl> 0.072, -0.428, -0.228, -0.328, 0.172, 0.472, -0.028, -0.0โ€ฆ

This function can also be used to detect any predictors that might cause heterogeneity bias - variable that vary both within and between groups, that can be treated with datawizard::demean()

easystats.github.io/datawizard/r...

27.05.2025 06:48 โ€” ๐Ÿ‘ 10    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
mlmRev::egsingle |>
  performance::check_group_variation(
    select = c("female", "grade", "math"),
    by = c("schoolid", "childid"),
    include_by = TRUE
  )
#> Check schoolid variation
#>
#> Variable | Variation |  Design
#> ------------------------------
#> childid  |      both |  nested
#> female   |    within | crossed
#> grade    |      both |
#> math     |      both |
#>
#> Check childid variation
#>
#> Variable | Variation | Design
#> -----------------------------
#> schoolid |   between |
#> female   |   between |
#> grade    |      both |
#> math     |      both |

mlmRev::egsingle |> performance::check_group_variation( select = c("female", "grade", "math"), by = c("schoolid", "childid"), include_by = TRUE ) #> Check schoolid variation #> #> Variable | Variation | Design #> ------------------------------ #> childid | both | nested #> female | within | crossed #> grade | both | #> math | both | #> #> Check childid variation #> #> Variable | Variation | Design #> ----------------------------- #> schoolid | between | #> female | between | #> grade | both | #> math | both |

๐Ÿ†• Introducing check_group_variation() in the {performance} #Rstats package! ๐ŸŽ‰

This function makes it easy to checks if variables vary within or between levels of grouping variables.

Perfect for understanding and designing mixed models ๐Ÿš€

easystats.github.io/performance/...

#stats #easystats

27.05.2025 06:48 โ€” ๐Ÿ‘ 44    ๐Ÿ” 14    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 0

It's slightly different, it adjusts for trial count.

22.05.2025 21:36 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

One function per week, this time we look closer at random effects variances in mixed models: `performance_reliability()` & `performance_dvour()`. Is the variability in your data due to noise within groups, or actual differences between groups? #easystats #rstats easystats.github.io/performance/...

22.05.2025 20:50 โ€” ๐Ÿ‘ 11    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

@easystats.github.io is following 20 prominent accounts