Skip to content

Instantly share code, notes, and snippets.

View JimGrange's full-sized avatar

Jim Grange JimGrange

View GitHub Profile
library(tidyverse)
library(rstan)
rstan_options(auto_write = TRUE)
#--- declare the data
# n_c = total number of people who drink caffeine
# n_nc = total number of people who do not drink caffeine
# p_c = observed proportion of people who drink caffeine that have a favourite mug
# p_nc = observed proportion of people who drink caffeine that DO NOT have a favourite mug
stan_data <- list(
# sample size
n <- 500
# simulate data for each predictor
# (note predictor b is categorical)
predictor_a <- rnorm(n, 0, 1)
predictor_b <- rbinom(n, 1, .5)
# population-level beta values
b_predictor_a <- -0.20
# iterate over starting parameters and assess density-----------------
do_fit <- function(current_data){
# mu <- seq(from = 0.2, to = 1.8, by = 0.2)
# sigma <- seq(from = 0.05, to = 0.65, by = 0.2)
# tau <- seq(from = 0.05, to = 0.85, by = 0.2)
mu <- 0.5
sigma <- 0.05
@JimGrange
JimGrange / gist:9ba16e2aa515b8e9913cc55c07f57c63
Last active December 16, 2020 11:23
Power analysis when true effect larger than planned effect
library(pwr)
library(effsize)
library(ggplot2)
# set "true" effect size and the effect size entered into power analysis
true_effect <- 0.2
power_effect <- 1.0
# How many participants required?
power_analysis <- pwr.t.test(d = power_effect,
#------------------------------------------------------------------------------
### Packages & functions
library(dplyr)
library(afex)
library(here)
# generate data from a multivariate normal distribution with known
# correlations between values
mvrnorm <- function(n, nValues, meanValues, sdValues, corMatrix) {
@JimGrange
JimGrange / mazes.csv
Created March 3, 2020 20:59
Blindfold Chess Piece Mazes
Piece Start End
Bishop a4 e8
Rook e6 d5
Bishop b3 a4
Knight h4 c4
Knight b1 d5
Bishop d6 b4
Knight e5 a1
Queen g3 e7
Bishop b8 a1
@JimGrange
JimGrange / correlation_power_calculations.R
Last active October 22, 2019 08:09
generate table of required sample sizes for various correlation effect sizes and various levels of desired power in a study
# generate table of required sample sizes for various correlation effect sizes
# and various levels of desired power in a study
# you need the pwr package
library(pwr)
# vector of effect sizes to explore
effect_sizes <- seq(from = 0.05, to = 0.95, by = 0.05)
# vector of desired power
# step 1 (before)
tmp <- installed.packages()
installedpackages <- as.vector(tmp[is.na(tmp[,"Priority"]), 1])
save(installedpackages, file="installed_packages.rda")
# now install new version of R
# step 2 (after)
load("installed_packages.rda")
for(i in 1:length(installedpackages)){
@JimGrange
JimGrange / parallel_examples.R
Created July 20, 2019 07:50
Examples of different parallelisations in R
# https://nceas.github.io/oss-lessons/parallel-computing-in-r/parallel-computing-in-r.html
library(parallel)
library(foreach)
library(doParallel)
library(snow)
set.seed(42)
n_subs <- 100000
n_trials <- 5000
library(rtdists)
set.seed(42)
# declare correct & error drift rate
correct_drift <- 2.4
error_drift <- 1 - correct_drift
# generate RTs with the diffusion model
rt1 <- rLBA(500, A = 0.5, b = 1, t0 = 0.5,