Last year, I wrote a blog post about my process for generating Netlify redirects. It was a similar process to that used by many others, adapted slightly to work with my slightly different setup. It involved housing a couple chunks of code in the homepage ( index.qmd in the root directory) that would generate redirects every time the homepage is rendered. This worked fine. It got the job done.…
Many data scientists will have been kids who excelled at math throughout school. Some would have viewed writing with the fear that the rest of the world views their beloved numbers. I’m not like most data scientists, though. I’m much dumber. My instinct is to express myself using words instead of fancy letters, and as someone who struggled with math in school, I am a little more familiar with the…
The microblogging church has fractured. The dominant domain faces challenges from all corners as new groups offer salvation and prosperity to new followers. A familiar, smug order rises from the rubble amid the chaos. Fuelled by technological advances like the printing press Quarto, a Calvinist commitment to the content mines, and the rebellious act of drinking delicious, hopped-up beers 1 , a new…
Note An earlier version of this post included a couple errors and insufficient detail in the section translating the model’s outputs into real-world findings. While I’ve fixed these issues, I won’t be as bold as to claim there are now zero errors in this post. There are fewer than before, though. Setup Code (Click to Expand) # import packages suppressPackageStartupMessages ({ library (dplyr)…
Note This is the second post in the Missing Data Matters series. The first post, about missing data mechanisms, can be found here . Setup Code (Click to Expand) # import packages suppressPackageStartupMessages ({ library (dplyr) library (ggplot2) }) # helper function for transforming factor variables to title case str_titlecase_fct <- function (x, ...) { levels (x) <- stringr :: str_to_title…
Note This is the first post in the Missing Data Matters series. The second post, about missing data solutions, can be found here . Setup Code (Click to Expand) # import packages suppressPackageStartupMessages ({ library (dplyr) library (ggplot2) }) # helper function for transforming factor variables to title case str_titlecase_fct <- function (x, ...) { levels (x) <- stringr :: str_to_title…
Note I have updated my process for generating Netlify redirects. If you are interested in an automated process, check out the blog post discussing my updated approach. If you are using Netlify to host your Quarto website there is a ton of helpful functionality that can smooth out the process. They even give you a fancy deployment status badge, and who among us can really claim they’re better than…
Note Some minor changes have been made to this blog post, cleaning up some unclear and confusing language/phrasing, and adding additional resources for learning about multilevel regression. Multilevel models (MLMs) are hard. Some part of the difficulty is due to the fact that multilevel data structures add an extra layer of complexity conceptually and mathematically, and therefore the appropriate…
Note Having ported my site over to Quarto in entirety, this blog post no longer applies to the site as is. There are some inconsistencies with some of the issues it talks about and how the site looks now (for example, there is no longer an option to toggle a dark theme), but the advice in this post should hopefully still work for anyone that is using Quarto with Hugo! I find a lot of the methods…
Note Having ported my site over to Quarto in entirety, this blog post no longer applies to the site as is. This post should hopefully still work for anyone that is using Quarto with Hugo! Like every other nerd that likes R and has used RMarkdown more than one time in their entire life, I am now in the process of transitioning to using Quarto, and I want to let the world know! I wanted to make good…
As a social scientist turned data scientist, my graduate school training taught me a lot of frequentist statistics that has served me well in my career since. However, there’s one thing that frequentist statistics can’t solve, and that’s my lack of a personality. For that, we’ve got Bayesian statistics, the perfect substitute. I’ve spent the last year or so gradually trying to become more Bayesian…
The two main approaches to building machine learning models in R are caret and tidymodels . Having tried both, I found that I struggled to pick my favorite. There’s elements of both that made more intuitive sense to me than the other. I think it’s a product of having become very familiar with the tidyverse , particularly dplyr , for data wrangling, but still using a lot of Base R functions for…
Having learned R in an academic context, I wasn’t exposed to programming in a linear path that taught me the basics of programming theory and application. I learned how to carry out statistical analysis using R, and my interaction with packages was that they would help me get the job done without having to do everything manually. As a result, package development has always intimidated me a little…
One of my goals when setting up this site was to use the blog section reasonably frequently to share some of my work and share anything particularly interesting that I’ve learned in my development as a data scientist. There hasn’t been much sharing going on. I’d like to think that isn’t because I haven’t done or learned anything interesting (…), I just haven’t found the time to share it. I’m the…