Skip to content

Instantly share code, notes, and snippets.

View NickCH-K's full-sized avatar

NickCH-K

View GitHub Profile
library(data.table); library(ggplot2)
dat = as.data.table(readxl::read_excel("Polls-per-user-CEU_R_Python_Stata_2022.xlsx"))
dat = dat[2:nrow(dat), 7:8]
setnames(dat, c('After','Before'))
dat = dat[!is.na(Before) & !(Before == 'Other') & !(After == 'Other')]
results = data.table(Language = c('Python','R','Stata'), Change = sapply(c('Python','R','Stata'), \(x) dat[, sum(After == x) - sum(Before == x)]))
ggplot(results, aes(x = Change, y = 0, label = Language)) +
geom_hline(yintercept = 0, size = 1) + geom_point(size = 3, color = 'darkblue') + geom_text(vjust = -1) +
scale_x_continuous(breaks = c(-5, 0, 5, 10), limits = c(-7, 12)) +
ggthemes::theme_economist() +
library(tidyverse)
library(purrr)
predfunc = function(x, xdat) x[1] + x[2]*xdat
residsum = function(x, xdat, ydat, pwr) sum(abs((predfunc(x, xdat)-ydat))^pwr)
set.seed(1000)
exdat = bind_rows(
tibble(label = 'Outlier X',
@NickCH-K
NickCH-K / collider_sim.R
Created April 19, 2024 07:15
Not-a-collider demonstration
library(tidyverse)
library(broom)
library(purrr)
create_data = function(n, trt) {
tibble(donut = rnorm(n),
sleep = rnorm(n)) %>%
mutate(lifting = rnorm(n) + .1*sleep + .3*donut,
coffee = rnorm(n) + .2*sleep,