• Example Wordle result for #196. Final word is REBUS.

    Tracking *ordles

    Wordle, the online word-guessing game recently purchased by the New York Times, has produced a lot of spin-off games. For instance, Duordle asks users to guess two words a time. Sedecordle gives you 16 at a time! With all the games, it can be hard to keep track of them all. It can even be difficult to know whether played a game today or not. To help track your progress, I built this simple webpage. Each name links directly to the relevant page. When you finish, just click the checkbox to mark that you are done. When you come back the next day, use the "UNCHECK ALL" button at the…

  • The logo for TidyTuesday

    TidyTuesday: season vignette formats

    For the 2022-03-15 #tidytuesday, we're working with data compiled by Robert Flight. The data reflects vignette uploads to the CRAN and Bioconductor. I wanted to focus on the seasonal nature of uploads, so I used a spiral plot. This was a great opportunity to use the spiralize and ComplexHeatmap packages by Zuguang Gu. I had to rely a lot on the grid functionality to add the title, subtitles, and caption. I found these posts by particularly helpful. Note: I used the zoo package to calculate the 7-day rolling averages. All code is available at github

  • The logo for TidyTuesday

    2 TidyTuesdays

    The last two weeks of #tidytuesday have both involved data that can be spatially mapped. They were a good opportunity to get more familiar with showing information on states in the US or countries in Europe. Alternative fuel sources in the US The data for 2022-03-01 are fueling stations throughout the US that offer alternatives to gasoline or diesel. I used the usmap package to help plot this one: Code for this graphic is here Erasmus exchange program The data for 2022-03-08 come from the Erasmus+ exchange program. It allows students to travel to other countries. I decided to look at which countries received more students than they sent away.…

  • Classifier accuracy over time. Self decoding occured first (around 200 ms), then Other decoding.

    Decoding Fairness

    Part of a my dissertation looked at how people balance self-interest with fairness for others. It may seem obvious that people pay attention to their own interests first, but there is some good evidence that people are actually intuitive cooperators and default to considering how their choices affect other people. I tested these two views using a modified verison of the Ultimatum Game while I recorded electroencephalography (EEG). On each trial participants saw $12 split between three people and were asked to accept or reject the offer. I used this setup to independently manipulate fairness for the self or another person, then trained two families of support vector machines to…

  • Picture of small brains with arms and legs in random colors.

    Introducing MobNet

    I have been running a homebrew (i.e., designed from scratch) Dungeons & Dragons game for the last five years. This past New Year\'s Eve, my five players were victorious, saving their multiverse from certain annihilation. I\'m excited about starting a second campaign, but was struggling to come up with new creatures to challenge and surprise them. Then I realized I could use artificial intelligence to help (special thanks to Jacqueline Nolis at SaturnCloud a demonstration using a neural net to generate pet names). More specifically, I trained a neural network on a list of 1,368 names from existing creatures. MobNet produces names like Orze, Garez, or Wartus. (Header image is…

  • The logo for TidyTuesday

    My first #TidyTuesday

    I've enjoyed lurking the #tidytuesday hastag on Twitter. For those unfamiliar - every Tuesday a new dataset is provided, and folks are encouraged to practice their data visualization skills, especially within the tidyverse. For Black History Month, the goal is to recreate some of the iconic images that W.E.B. Du Bois created for the 1900 Paris Exposition. For this week, the goal is to recreate “Valuation of Town and City Property Owned by Georgia Negroes” (plate 21) Overall, I'm pretty happy with how this turned out. Here's a sneak peak at the final product. You can find all of the code for these plots

  • Photograph of an axe stuck in a tree stump

    Thinking before typing

    A woodsman was once asked, “What would you do if you had just five minutes to chop down a tree?” He answered, “I would spend the first two and a half minutes sharpening my axe.” Let us take a few minutes to sharpen our perspective. probably not Abraham Lincoln I'm pilot-testing a simple choice task - participants indicate two different attitudes on a set of issues, then see pairs of photographs from protests about those issues. Participant task is to choose which group of protestors they support more. The goal of the study is to see how the different kinds of attitudes influence the decision-making. (Specifically, I'm modeling the data using a drift diffusion…

  • Advent Of Code 2021

    This was my first year trying Advent of Code. I originally intended to do all the solutions in both R and python. However, as they got more complicated, I decided to prioritize R, sticking with the tidyverse as much as possible. I put all of the RMarkdown and Jupyter notebooks in a public git repo. Overall, it was a great learning experience. I didn't finish all of the days, both because of travel and because of difficulties working with 3D matrices in tidyverse. I think the best part was finally have an excuse to work with classes in R. Obviously, R's approach is very different from python, but you can…

  • Cluster mean centering in tidyverse

    I'm re-analyzing some old datasets (e.g. from pilots for my dissertation I ran in 2015) and find myself wanting to re-run some multilevel models. However, the first time I did this, I used grand mean centering. That means I combine the within-cluster effects and between-cluster effects into a single parameter estimate (Curran and Bauer have for a great summary). Instead, I want to cluster mean center. That means calculating the mean of the variable within each cluster, then subtracting the mean of each cluster from the individuals scores in each cluster. Then you include both the cluster means and the cluster mean centered scores in the regression. The coefficient on…

  • Visualize an interaction with ggplot

    I've had to do this enough times (and have to look it up each time) that I decided to memorialize it here. The issue: I have a two-way repeated measures design and I want to visualize all four cells. I'd like one plot to contain the individuals responses as well as the cell means. But I also want to link individuals together. The solution: Plot the individual differences within each level of one of the factors using separate lines for each subject, plus an additional line for the cell means. Here's a simple demo (with a bonus example of how to simulate such a dataset).