Skip to content

Instantly share code, notes, and snippets.

@johnjosephhorton
johnjosephhorton / Makefile
Last active August 8, 2018 15:12
Real world Makefile for a paper
project_name = hot_towel
ts := $(shell /bin/date "+%Y-%m-%d---%H-%M-%S")
params =
# DONE
params += params_exp_details.tex
params_exp_details.tex: ../analysis/params_exp_details.R
cd ../analysis && ./params_exp_details.R
@johnjosephhorton
johnjosephhorton / uc_salaries_by_dept_and_rank.R
Created May 31, 2018 21:16
UC salaries by rank & dept
library(XML)
library(ggplot2)
df <- readHTMLTable("http://projects.dailycal.org/paychecker/departments/")[[1]]
DeMoney <- function(x) as.numeric(gsub(",", "", gsub("\\$", "", as.character(x))))
money.columns <- c("All", "Professor", "Associate professor", "Assistant professor",
"Lecturer")
library(geofacet) # my forked version
library(ggplot2)
library(jsonlite)
library(ggrepel)
# grab top cities
cities <- fromJSON("https://gist.githubusercontent.com/Miserlou/c5cd8364bf9b2420bb29/raw/2bf258763cdddd704f8ffd3ea9a3e81d25e2c6f6/cities.json")
n <- 50
x <- cities$longitude[1:n]
library(lfe)
library(stargazer)
set.seed(6152011)
# Number of cities
L <- 1000
# Number of industries
K <- 3
SimExperiment <- function(num.groups, sample.size, beta, randomize.by.group = FALSE){
"Simulate running an analysis of the experiment with linear regression"
df <- CreateClusteredData(num.groups, sample.size, beta, randomize.by.group = randomize.by.group)
m <- lm(y ~ trt, data = df)
c(as.numeric(coef(m)[2]), as.numeric(sqrt(diag(vcov(m))[2])))
}
CreateClusteredData <- function(num.groups, sample.size, beta, randomize.by.group = FALSE){
individual <- 1:sample.size # index for individuals
group <- sample(1:num.groups, size = sample.size, replace = TRUE) # randomly assign everyone to a group
group.effect <- rnorm(num.groups) # create a group-specific effect
eta <- group.effect[group] # give each individual their group-specific effect
epsilon <- rnorm(sample.size) # given each individual an individual-specific effect
if (randomize.by.group){
group.trt.assignment <- rbinom(num.groups, 1, 0.5)
trt <- group.trt.assignment[group]
} else {
ts := $(shell /bin/date "+%Y-%m-%d---%H-%M-%S")
project.pdf: project.bib project.tex
pdflatex -interaction=nonstopmode project
bibtex project
pdflatex -interaction=nonstopmode project
pdflatex -interaction=nonstopmode project
backup:
tar --exclude='../backups' -zcvf ../backups/project_$(ts).tar.gz ../
@johnjosephhorton
johnjosephhorton / strat.R
Created February 8, 2015 12:44
showing_stratification_advantage
library(ggplot2)
# simulate experiments using stratification and randomization and report
# absolute difference in estimates from true treatment effect, tau.
simExp <- function(n, tau, beta = 3){
x <- sort(runif(n))
W.rand <- rbinom(n,1,0.5)
W.strat <- rep(c(0,1), n/2)
epsilon <- rnorm(n, 0, 0.5)
<html lang="en">
<title>Obot</title>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">