Milan Wiedemann

Experimental Psychology, Data Science, Healthcare

Open Source Software

Writing code has helped me to understand the methods I’m using and made it easier for me and others to find and correct mistakes in my analyses. These projects started as short chunks of code that helped me be more efficient and reproducible in a specific research project. I enjoyed developing and sharing my code on GitHub so that it’s easier for other people to use and evaluate my work.


I designed this R package together with my colleagues Graham Thew and Richard Stott and supervisor Anke Ehlers to make the research of sudden gains in longitudinal data (see Tang & DeRubeis, 1999) as easy and reproducible as possible. No more spreadsheets and no more guessing 🔮 to figure out what was done. Find out more about this project in our PLOS ONE paper or check out the code on GitHub.


This Shiny App demonstrates some functions of the suddengains R package. You can explore how changing commonly used sudden gains criteria (see Tang & DeRubeis, 1999) influence identifying sudden gains in an example data set. It’s also possible to check a sequence of repeated measures for the presence of a sudden gain or loss using an interactice calculator. The code for is available on GitHub.


I started working on this project to better understand how latent change score modeling works. This R package combines the strengths of other packages like lavaan, broom, and semPlot by generating lavaan syntax that helps these packages work together efficiently. The code and some more details about the functionality are available on GitHub.


The main aim of this interactive Shiny tutorial is to show how different univariate and bivariate latent change score models can be implemented in R using lavaan syntax (Rosseel, 2012). The underlying functions of this shiny application come from the lcsm R package. At the moment it is possible to Generate lavaan Syntax for different model specifications and varying time points, Simulate Data to explore the effect of different parameters, Fit Models using example datasets, and create Longitudinal Plots and simplified Path Diagrams to visualise data and model specifications.