Skip to content

Instantly share code, notes, and snippets.

Avatar

Daniel Harasim dharasim

View GitHub Profile
View GenericCategoricals.jl
using Distributions
using Random: AbstractRNG
using StatsBase: proportionmap
using Test
# Generic categoricals are also known as empirical measures.
struct GenericCategorical{T}
mapping :: Dict{T, Float64}
values :: Vector{T}
probs :: Vector{Float64}
View permutation_test.py
def permutation_simulation(higher, lower, n=100_000):
xs = higher
ys = lower
m = np.mean(xs) - np.mean(ys)
zs = np.concatenate((xs, ys))
z_perms = np.random.choice(ys, size=(n, len(zs)))
x_perms = z_perms[:, 0:len(xs)]
y_perms = z_perms[:, len(xs)+1:]
x_perm_means = np.mean(x_perms, 1)
y_perm_means = np.mean(y_perms, 1)
View parsetree.jl
module TreeFromString
using PEG
import Base: show
struct Tree{T}
val ::T
children ::Vector{Tree{T}}
end
@dharasim
dharasim / bootstrap.py
Created Apr 11, 2019
2-sample bootstrap test in python
View bootstrap.py
def bootstrap_test(higher, lower, n=100000):
xs = higher
ys = lower
m = np.mean(xs) - np.mean(ys)
zs = np.concatenate((xs,ys))
boots = np.random.choice(ys, size=(n,len(zs)))
return np.sum(np.mean(boots[:,0:len(xs)], 1) - np.mean(boots[:,len(xs)+1:], 1) > m)
# test whether the mean of the array `higher` is higher than the mean of the array `lower`
def bootstrap_pvalue(higher, lower, n=100000):
@dharasim
dharasim / index.html
Last active Feb 19, 2019
Pitch Class Barplot
View index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Vega Lite Barplot</title>
<!-- Import Vega 4 & Vega-Lite 3 (does not have to be from CDN) -->
<script src="https://cdn.jsdelivr.net/npm/vega@4"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-lite@3.0.0-rc12"></script>
@dharasim
dharasim / CompoundDistributions.jl
Created Feb 7, 2019
Compound Distributions in Julia
View CompoundDistributions.jl
module CompoundDistributions
using StatsFuns.RFunctions: betarand, gammarand
using SpecialFunctions: lbeta
using LogProbs
# distribution types
export BetaBern, DirMul, DirCat, UniCat, CatDist, ChineseRest
# conditional distribution type
@dharasim
dharasim / example_plot.jl
Last active Dec 12, 2018
VegaLite plots in Julia
View example_plot.jl
df = DataFrame(x=randn(500), y= randn(500))
df |> vlplot(
mark = :point,
encoding = (
x = (field=:x, typ=:quantitative),
y = (field=:y, typ=:quantitative)
)
)
View julia_tools.jl
partial(f, args...) = let args = args; (more...) -> f(args..., more...) end
@dharasim
dharasim / fibs.jl
Created Aug 13, 2018
Fibs iterator in Julia v1.0
View fibs.jl
using Base.Iterators: take
import Base: iterate, IteratorSize, eltype
struct Fibs end
iterate(::Fibs, (i, j) = (1, 1)) = i, (j, i+j)
IteratorSize(::Type{Fibs}) = Base.IsInfinite()
eltype(::Type{Fibs}) = Int
# collect the first ten fibs in an array
View using_seaborn_in_julia.jl
import Seaborn
import Pandas
# convert julia dataframe into a pandas dataframe
panda(df) = Pandas.DataFrame(Dict(n => df[n] for n in names(df)))