Skip to content

Instantly share code, notes, and snippets.

@eggplantbren
Last active March 1, 2017 02:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eggplantbren/e70216e5bee27878fb2284bafd2801ef to your computer and use it in GitHub Desktop.
Save eggplantbren/e70216e5bee27878fb2284bafd2801ef to your computer and use it in GitHub Desktop.
student-resources.html
<!DOCTYPE html>
<html>
<head>
<!-- CSS classes -->
<style type="text/css">
.small { font-size: 0.9em }
/* To keep the page narrowish */
div.content { width: 600px }
</style>
<title>Resources for research students</title>
</head>
<body>
<div class="content">
<!-- Welcome paragraph -->
<h1>Welcome</h1>
<p>
Here, I'll collect links to resources for learning various tools
and methods, some of which will be useful for research students working
with me. I'll generally only recommend things I've used or read myself.
Some of these are online resources, others are books that may or may
not be available at the Auckland uni library or at Auckland libraries
in general.
You are encouraged to search for other ones as well!
</p>
<p>
<a href="#bayes">Bayesian Inference</a><br>
<a href="#nestedsampling">Nested Sampling</a><br>
<a href="#dns">Diffusive Nested Sampling</a><br>
<a href="#computing">Computing</a>
</p>
<!-- Resources for Bayesian inference -->
<a name="bayes"></a><h2>Bayesian inference</h2>
<p class="small">
<b>Data Analysis: A Bayesian Tutorial</b> by Sivia and Skilling.
Good for beginners with a physics background. Has Nested Sampling in it
too, but those sections are more challenging.<br>
</p>
<p class="small">
<b>Bayesian Logical Data Analysis for the Physical Sciences</b>
by Phil Gregory. A bit more comprehensive than Sivia, and includes more
detail on the Metropolis algorithm. Again, good for people with some
physics background.
</p>
<p class="small">
<b>Kendall's Advanced Theory of Statistics: Volume 2B: Bayesian Inference</b>
by O'Hagan and Forster. A nice and fairly comprehensive textbook. The
style and notation, and the examples given, are more like what
statisticians use, so this is good for people from a statistics
background.
</p>
<p class="small">
<b>STATS 331 Lecture notes</b> by me!
A very gentle introduction, with some R and JAGS. Aimed mostly at
statistics students but should work for anyone.
<a href="https://www.stat.auckland.ac.nz/~brewer/stats331.pdf"
target="new">Available here</a>.
</p>
<p class="small">
<b>Doing Bayesian Data Analysis</b> by John Kruschke.
Probably the best full textbook for beginners with a statistics
background.
</p>
<p class="small">
<b>Information Theory, Inference, and Learning Algorithms</b>
by David MacKay (RIP). A very readable and engaging textbook.
Covers a wide range of topics apart from Bayes.
And there's a free, legal online PDF file of it!
<a href="http://www.inference.phy.cam.ac.uk/itprnn/book.html"
target="new">Available here</a>.
</p>
<a name="nestedsampling"></a><h2>Nested Sampling</h2>
<p class="small">
Nested Sampling is my favourite Bayesian computation algorithm. I like
to use it in combination with the Metropolis algorithm.
My book chapter
<a href="https://www.stat.auckland.ac.nz/~brewer/wsbook.pdf"
target="new">Bayesian inference and computation: A beginner's
guide</a>
has a fairly gentle introduction. The corresponding Python code
is available <a href="https://github.com/eggplantbren/NSwMCMC"
target="new">here</a>.
</p>
<p class="small">
The original Nested Sampling paper, by John Skilling, is very
useful, but isn't easy to read. There are a few different versions
floating around, but I usually use the one published in the
Bayesian Analysis journal.
<a href="http://projecteuclid.org/download/pdf_1/euclid.ba/1340370944"
target="new">Here it is</a>.
</p>
<p class="small">
I have an implementation of Nested Sampling
<a href="https://github.com/eggplantbren/NestedSampling.jl"
target="new">written in Julia</a>.
With <a href="http://jtobin.io/" target="new">Jared Tobin</a>, I also
wrote an implementation
<a href="https://github.com/eggplantbren/NestedSampling.hs"
target="new">in Haskell</a>.
</p>
<a name="dns"></a><h2>Diffusive Nested Sampling</h2>
<p class="small">
Diffusive Nested Sampling is an alternative to standard NS, that still
uses the Metropolis algorithm to move around. Here is the
<a href="https://arxiv.org/abs/1606.03757"
target="new">original paper describing the algorithm</a>,
the <a href="https://github.com/eggplantbren/DNest4"
target="new">software</a>, and the
<a href="https://github.com/eggplantbren/DNest4/raw/master/paper/static_pdf.pdf" target="new">paper describing the software</a>.
</p>
<a name="computing"></a><h2>Computing</h2>
<p class="small">
It's worth getting good at using the command line of a Unix-like
operating system such as Mac OS X or Linux (e.g., Ubuntu).
If you only use Windows, that's okay, but it might be a bit more
annoying figuring out how to use certain things.
</p>
<p class="small">
I recommend learning and using a version control system such as
git. There probably isn't much point for a 30-point project student,
but beyond that, it's pretty indispensible.
<a href="http://rogerdudler.github.io/git-guide/" target="new">This
tutorial</a> seems like a promising starting point.
</p>
<p class="small">
My favourite book on C++ is
<a href="https://www.goodreads.com/book/show/11277418-professional-c"
target="new">Professional C++ by Marc Gregoire</a>.
It assumes you have a reasonable amount of programming experience.
</p>
<p class="small">
My favourite book on Haskell is
<a href="https://www.goodreads.com/book/show/25587599-haskell-programming"
target="new">Haskell Programming from First Principles</a>
by Chris Allen and Julie Moronuki.
</p>
<p class="small">
I haven't read any books on Python, but I followed Allen Downey
on Twitter for a while so maybe <a href="https://www.goodreads.com/book/show/14514306-think-python?from_search=true" target="new">try his one</a>.
Use Python 3, and make sure anything you find is teaching it. Forget
about Python 2. A good Python distribution with useful packages for
scientific stuff is
<a href="https://www.continuum.io/downloads" target="new">Anaconda</a>.
</p>
<p class="small">
Many of you will have learned one or two programming languages
before, but will have to learn another one in order to work well
with me. When I have had to do this in the past, especially
for numerical work, I've found various "cheat sheets" useful,
which show how to do the same thing in several different
languages, side by side. Here are a couple of links which
might help:<br><br>
<a href="http://mathesaurus.sourceforge.net/r-numpy.html"
target="new">NumPy for R programmers</a><br>
<a href="http://hyperpolyglot.org/" target="new">Hyperpolyglot</a>
</p>
</div> <!-- The div around everything -->
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment