For a long time, I’ve been curious about something. It is a truth I’ve
seen casually dropped in textbooks, package documentation, and tweets:
random effects and penalized smoothing splines are the same thing.
It sounds so profound and enlightened. Wha...
I am going to describe my favorite knitr trick: Using lists to simplify inline reporting. Trick might not do it justice. I consider this a best practice for working with knitr.
Plug it in
Inline reporting lets you insert R expressions inside of
markd... [Read more...]
One of the things I have come to appreciate is how programming is a great way to
learn statistics. My eyes will glaze over at a series of equations in a
derivation, but ask me to program the procedure and I’ll never forget how it works.
This post will ...
In my last post, I walked through
an intuition-building visualization I created to describe mixed-effects models
for a nonspecialist audience. For that presentation, I also created an analogous
visualization to introduce Bayes’ Theorem, so here I will walk through that
As in the earlier post, let’s start by ...
Last week, I presented an analysis on the longitudinal development of
intelligibility in children with cerebral palsy—that is, how well do strangers
understand these children’s speech from 2 to 8 years old. My analysis used a
Bayesian nonlinear mixed effects Beta regression model. If some models are livestock and some ...
I am happy to announce the release of ICC Bot, an app for computing
interrater reliability scores using the intraclass correlation coefficient
A screenshot of ICC Bot, an interactive app for computing intraclass correlation coefficients.
The ICC statistic appears in repeated measures or multilevel modeling
literature as a way ...
In this post, I walk through the code I used to make a nice diagram illustrating
the parameters in a logistic growth curve. I made this figure for a conference
submission. I had a tight word limit (600 words) and a complicated
statistical method (Bayesian nonlinear mixed effects beta regression), so ...
Here’s the problem: I have some data with nested time series. Lots of them. It’s
like there’s many, many little datasets inside my data. There are too many
groups to plot all of the time series at once, so I just want to preview a
handful of ...
There is a celebrated Commodore 64 program that randomly prints outs / and \
characters and fills the screen with neat-looking maze designs. It is just one
line of code, but there is a whole book written about
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Screenshots of the 10 PRINT program in action. Images taken from the 10 PRINT book.
At the end of March, Jonah Gabry and I released
bayesplot 1.5.0. The major additions
to the package were visualizations using ridgelines and a new plot for PIT
diagnostics from LOO validation. I don’t know what that LOO PIT thing is yet, so
I recently completed all 25 days of Advent of Code 2017, an annual
series of recreational programming puzzles. Each day describes a programming
puzzle and illustrates a handful of simple examples of the problem. The puzzle
then requires the participant to solve a much, much larger form of the problem.
For five ... [Read more...]
Last week at Thanksgiving, my family drew names from a hat for our annual game
of Secret Santa. Actually, it wasn’t a hat but you know what I mean. (Now that I
think about it, I don’t think I’ve ever seen names drawn from a literal hat
... [Read more...]
Recently, I joined the development team for
bayesplot, an R package by the Stan team for
plotting Bayesian models. Because visualizing Bayesian models in ggplot2 is a
here, it was a natural fit. So from time to
time, I’ll post about some programming techniques and new features ...
In this post, I describe a recent case where I used rlang’s
system to do some data-cleaning. This example is not particularly involved, but
it demonstrates is a basic but powerful idea: That we can capture the
expressions that a user...
Dataframes are used in R to hold tabular data. Think of the prototypical
spreadsheet or database table: a grid of data arranged into rows and columns.
That’s a dataframe. The tibble R package
provides a fresh take on dataframes to fix some longstan... [Read more...]
In this post, I demonstrate a few techniques for plotting information from a
relatively simple mixed-effects model fit in R. These plots can help us develop
intuitions about what these models are doing and what “partial pooling” means.
Last week, I released a new package called polypoly to CRAN. It wraps up
some common tasks for dealing with orthogonal polynomials into a single package.
The README shows off the main
functionality, as well as the neat “logo” I made for the packag...
A few days ago, I watched a terrific lecture by Bob Carpenter on
Bayesian models. He started with a Bayesian approach to Fisher’s exact test. I
had never heard of this classical procedure, so I was curious to play with the
example. In this post, I use the same ...
Pokémon Go is an augmented reality game where people with
smartphones walk around and catch Pokémon. As in the classic games, players are
Pokémon “trainers” who have to travel around and collect creatures. Some types
are rarer than others, som...