Ten years ago I wrote eulerr as part of my Bachelor’s thesis (Larsson 2018) in statistics—an R package for area-proportional Euler diagrams . At the time it was the first package to feature ellipses beyond three sets, EulerAPE (Micallef and Rodgers 2014) being the first to introduce ellipses at all. eulerr has been surprisingly popular, having been used in (at least) 600 academic papers. It was…
Basin is a new numerical optimization library that pairs a small generic core, a set of problem traits that you implement, a pluggable termination layer, and a driver loop called the Executor . On top of that sits a growing collection of solvers spanning first-order, derivative-free, nonlinear least-squares, and evolutionary methods. I built Basin entirely because of my project Eunoia —a Rust…
Introduction I have on-and-off been a user of the Pomodoro technique, which is based on splitting your work day into increments of, typically, 25-minute work sessions followed by 5-minute breaks, repeated say, four times, and then followed by a longer, 15-minute break. In Figure 1, you can see a simple illustration of how the Pomodoro technique works. graph TD A[25 min work] -->|Sessions 1-4| B[5…
Tip Moloch has now been published in TUGboat ( Larsson and samcarter 2026) ! The article will be available for free on the TUGboat website when the next issue is published. Moloch 2.0.0 is Released! I’m excited to announce a major update to Moloch, a minimalist Beamer presentation theme. Version 2.0.0 brings a complete overhaul of the color system, new themes, improved documentation, and several…
Qualpal(r) It is now nine years since I first blogged about my pet project Qualpal (at that point called qualpalr ), which is an R package for generating qualitative color palettes for data visualization in R. It was motivated by the fact that almost all color palettes were designed for a fixed number of categories and therefore must be suboptimal for other numbers of categories. At the time,…
It seems that I am on a lucky streak! I was also just 1 awarded Lund School of Economics’s award for best thesis in 2024. 1 Used to be correct when I started drafting this post, but now it’s been a little more than a month actually. You can read the news post here , in which I answer some questions regarding the thesis. Here is the nomination: In his dissertation, Johan Larsson develops new…
I am very happy to have just heard that my thesis was selected for the 2025 Cramér Prize for best thesis in statistics defended in 2024! The thesis is about optimization and algorithms for sparse regression and I have previously written about it in a blog post here so I will not delve into details. But I am tremendously happy to have received this prize and want to thank my supervisors and…
The Lasso, Elastic Net, and Ridge Regression Tip The paper has now been published in Transactions on Machine Learning Research (TMLR) ! (Larsson and Wallin 2025) You can find the final version on the TMLR website . The content of this blog post is mostly unchanged from the arXiv version, but please refer to the published version for the final and authoritative account of our work. I’ve also…
Tip Moloch has now been published in TUGboat ( Larsson and samcarter 2026) ! The article will be available for free on the TUGboat website when the next issue is published. My beamer configuration for presentations has been in a state of flux for as long as I can remember. I have tried many different themes and configurations, and have typically tried to keep the theme minimalisic but at the same…
Spoiler alert: I passed my defense! 🎉 My PhD thesis is now published and available for download (Larsson 2024) ! It is the culmination of five years of research on optimization other related numerical algoritms for sparse regression, in particular the lasso and sorted l-one penalized estimation (SLOPE). Figure 1: The cover of my thesis. The image features a subset of the elastic net path for the…
I have created my first Julia package! It is called ProjectRoot and is a small utility package that helps with file referencing withing a project-oriented workflow. I’ve stolen the idea of the package from the R and Python packages here and pyprojroot , which are package that I have used frequently in the past to simplify file referencing for research projects, particularly when referencing data…
Introduction to SLOPE SLOPE (Bogdan et al. 2015) stands for sorted L1 penalized estimation and is a generalization of OSCAR (Bondell and Reich 2008) . As the name suggests, SLOPE is a type of -regularization. More specifically, SLOPE fits generalized linear models regularized with the sorted norm. The objective in SLOPE is where is typically the log-likelihood of some model in the family of…
Labeling Euler diagram overlaps The purpose of my R package eulerr is to fit and visualize Euler diagrams. Besides the various intricacies involved in fitting the diagrams, there are many interesting problems involved in their visualization. One of these is the labeling of the overlaps. Naturally, simply positioning the labels at the shapes’ centers fails more often than not. Nevertheless, this…
My R package qualpalr selects qualitative colors by projecting a bunch of colors (as points) to the three-dimensional DIN99d color space wherein the distance between any pair colors approximate their differences in appearance. The package then tries to choose the n colors so that the minimal pairwise distance among them is maximized, that is, we want the most similar pair of colors to be as…
eulerr is an R package that generates area-proportional euler diagrams to display set relationships (intersections, unions, and disjoints) with circles. Euler diagrams are Venn diagrams without the requirement that all set interactions be present (whether they are empty or not). That is, depending on input, eulerr will sometimes produce Venn diagrams but sometimes not. Background R features a…
Introduction With the advent of colorbrewer there now exists good options to generate color palettes for sequential, diverging, and qualitative data. In R, these palettes can be accessed via the popular RColorBrewer package. Those palettes, however, are limited to a fixed number of colors. This isn’t much of a problem for sequential of diverging data since we can interpolate colors to any range we…