Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Psychological science is still massively using analysis of variance (ANOVA). Despite its relative simplicity, I am very often confronted to errors in its reporting, for instance in student’s theses or manuscripts, or even published papers (See the excellent statcheck to quickly check the stats of a paper). Beyond the incomplete or just wrong reporting, one can find a tremendous amount of genuine errors (that could influence the results and their interpretation). This error proneness can be at least partly explained by the fact that copy/pasting the (appropriate) values of any statistical software and formatting them textually is a very annoying and tedious process.

How to end it?

We believe that this could be solved (at least, partially) by the default implementation of current best practices of statistical reporting. A tool that automatically transforms a statistical result into a copy/pastable text. Of course, this automation cannot be suitable for each and every advanced usage, but could be satisfying for a substantial proportion of use cases. Implementing this unified, end-user oriented pipeline is the goal of the report package.

# Install report

report is part of the new easystats suite of packages. However, as it is not (yet) on CRAN, you’ll need to install it directly from github.

devtools::install_github("easystats/report")  # Install the latest psycho version

library(report)  # Load the package

# Fit an anova

Let’s start by doing a traditional ANOVA with Sepal.Length (the length of the sepals of some flowers) as dependent variable, and the Species as categorical predictor.

aov_results <- aov(Sepal.Length ~ Species, data=iris)  # Fit the ANOVA

# Formatted output

The report package include a single function, namely report(), that can be applied to an ANOVA object to format its content.

report(aov_results)
The ANOVA suggests that:

- The effect of Species is significant (F(2, 147) = 119.26, p < .001) and can
be considered as large (Omega squared = 0.61).

It formats the results, computes the partial omega-squared as an index of effect size (better than the eta2, see Levine et al. 2002, Pierce et al. 2004) as well as its interpretation and presents the results in an APA-compatible way.

Note that a table-output is also available:

aov_results %>%
report() %>%
to_table()
Parameter Sum_Squares DoF Mean_Square F p Omega_Squared_partial
Species 63.21 2 31.61 119.26 0 0.61
Residuals 38.96 147 0.27

# Evolution

Of course, these reporting standards should change, depending on new expert recommendations or official guidelines. The goal of this package is to flexibly adaptive to new changes and good practices evolution. Therefore, if you have any advices, opinions or such, we encourage you to either let us know by opening an issue, or even better, try to implement them yourself by contributing to the code.