My sjPlot-package was just updated on CRAN, introducing a new function called
sjp.emm.int to plot estimated marginal means (least-squares means) of linear models with interaction terms. Or: plotting adjusted means of an ANCOVA.
The idea to this function came up when we wanted to analyze the effect of an intervention (an educational programme on knowledge about mental disorders and associated stigma) between two groups: a “treatmeant” group (city) where a campaign on mental disorders was conducted and another city without this campaign. People from both cities were asked about their attitudes and knowledge about specific mental disorders at t0 before the campaign started in the one city. Some month later (t1), again people from both cities were asked the same questions. The intention was to see a) whether there were differences in knowledge and pro-social attidutes of people towards mental disorders and b) if the compaign successfully reduces stigma and increases knowledge.
To analyse these questions, we used an ANCOVA with knowledge and stigma score as dependent variables, “city” and “time” (t0 versus t1) as predictors and adjusted for covariates like age, sex, education etc. The estimated marginal means (or least-squares means) show you the differences of the dependent variable.
Here’s an example plot, quickly done with the
Since the data is not publicly available, I’ve set an an documentation with reproducable examples (though those example do not fit very well…).
The latest development snapshot of my package is available on GitHub.
BTW: You may have noticed that this function is quite similar to the
sjp.lm.int function for visually interpreting interaction terms in linear models…
A new update of my sjPlot package was just released on CRAN. This release focused on improving existing functions and bug fixes again. Especially the table output functions (see my previous blog posts on table output functions here and here) improved a lot. Tables now have more and better possibilities for style customization and knitr integration. A basic introduction into the new features is given in this document.
To make it easier to understand all features, I started to setup comprehensive documentations for all sjPlot functions on strengejacke.de.
First of all, I’d like to thank my readers for the lots of feedback on my last post on beautiful outputs in R. I tried to consider all suggestions, updated the existing table-output-functions and added some new ones, which will be described in this post. The updated package is already available on CRAN.
This posting is divided in two major parts:
- the new functions are described, and
- the new features of all table-output-functions are introduced (including knitr-integration and office-import)
Read on …
Note: There’s a second part of this series here.
About one year ago, I seriously started migrating from SPSS to R. Though I’m still using SPSS (because I have to in some situations), I’m quite comfortable and happy with R now and learnt a lot in the past months. But since SPSS is still very wide spread in social sciences, I get asked every now and then, whether I really needed to learn R, because SPSS meets all my needs…
Well, learning R had at least two major benefits for me: 1.) I could improve my statistical knowledge a lot, simply by using formulas, asking why certain R commands do not automatically give the same results like SPSS, reading R resources and papers etc. and 2.) the possibilities of data visualization are way better in R than in SPSS (though SPSS can do well as well…). Of course, there are even many more reasons to use R.
Still, one thing I often miss in R is a beautiful output of simple statistics or maybe even advanced statistics. Not always as plot or graph, but neither as “cryptic” console output. I’d like to have a simple table view, just like the SPSS output window (though the SPSS output is not “beautiful”). That’s why I started writing functions that put the results of certain statistics in HTML tables. These tables can be saved to disk or, even better for quick inspection, shown in a web browser or viewer pane (like in RStudio viewer pane).
All of the following functions are available in my sjPlot-package on CRAN.
Read on …
Since version 0.8, my package for data visualization using ggplot has been released on the Comprehensive R Archive Network (CRAN), which means you can simply install the package with
Last week, version 0.9 was released. Binaries are already available for OS X and Windows, and source code for Linux. Further updates will no longer be announced on this blog (except for new functions which may be described in dedicated blog postings), so please use the update function in order make sure you are using the latest package version.
I’d like to announce the release of version 0.7 of my R package for data visualization and give a small overview of this package (download and installation instructions can be found on the package page, detailed examples on RPubs).
What does this package do?
In short, the functions in this package mostly do two things:
- compute basic or advanced statistical analyses
- either plot the results as ggplot-diagram or print them as html-table
However, meanwhile the amount of functions has increased, hence you’ll also find some utility functions beside the plotting functions.
How does this package help me?
Basically, this package either helps those users…
- who have difficulties using and/or understanding all possibilities that ggplot offers to create plots, simply by providing intuitive function parameters, which allow for manipulating the appearance of plots; or
- who don’t want to set up complex ggplot-object each time from the scratch; or
- like quick inspections of (basic) statistics via (html-)tables that are shown in the GUI viewer pane or default browser; or
- want easily create beautiful table outputs that can be imported in office applications.
Furthermore, for advanced users, each functions returns either the prepared ggplot-object (in case of
sjp-plotting functions) or the HTML-tables (in case of
sjt-table-output functions), which than can be manipulated even further (for instance, for ggplot-objects, you can specify certain parameters that cannot be modified via the sjPlot package or html-tables could be integrated into knitr-documents).
What are all these functions about?
There’s a certain naming convention for the functions:
- sjc – collection of functions useful for carrying out cluster analyses
- sji – collection of functions for data import and manipulation
- sjp – collection plotting functions, the “core” of this package
- sjt – collection of function that create (HTML) table outputs (instead of ggplot-graphics
- sju – collection of statistical utility functions
- You can plot results of Anova, correlations, histograms, box plots, bar plots, (generalized) linear models, likert scales, PCA, proportional tables as bar chart etc.
- You can create plots to analyse model assumptions (lm, glm), predictor interactions, multiple contigency tables etc.
- You can create table outputs instead of graphs for most plotting functions
- With the import and utility functions, you can, for instance, extract beta coefficients of linear models, convert numeric scales into grouped factors, perform statistical tests, import SPSS data sets (and retrieve variable and value labels from the importet data), convert factors to numeric variables (and vice versa)…
At the bottom of my package page you’ll find some examples of selected functions that have been published on this blog before I created the package. Furthermore, the package includes a sample dataset from one of my research projects. Once the package is installed, you can test each function by running the examples. All news and recent changes can be found in the NEWS section of the package help (type
?sjPlot to access the help file inside R).
I tried to write a very comprehensive documentation for each function and their parameters, hopefully this will help you using my package…
Any comments, suggestions etc. are very welcome!
Sometimes people ask me how the examples of my plotting functions I show here can be reproduced without having a SPSS data set (or at least, without having the data set I use because it’s not public yet). So I started to write some examples that run “out of the box” and which I want to present you here. Furthermore, two new plotting functions are introduced: plotting correlations and plotting proportional tables on a percentage scale.
As always, you can find the latest version of my R scripts on my download page.
Following plotting functions will be described in this posting:
- Plotting proportional tables: sjPlotPropTable.R
- Plotting correlations: sjPlotCorr.R
- Plotting frequencies: sjPlotFrequencies.R
- Plotting grouped frequencies: sjPlotGroupFrequencies.R
- Plotting linear model: sjPlotLinreg.R
- Plotting generalized linear models: sjPlotOdds.R
Please note that I have changed function and parameter names in order to have consistent, logical names across all functions!
At the end of this posting you will find some explanation on the different parameters that allow you to fit the plotting results to your needs…
Continue reading this post…