My name is Ben and I’m a self-taught programmer with no formal computer science training. A few years ago I gained the painful self-awareness that my scientific programming was shitty. I’m not saying it was wrong (I hope not) but it was just bad. I confused familiarity with my language of choice with proficiency. I had […]

Continue readingMore Tag# Tag: code

## A grammar of multi-panel scientific plots: initial thoughts

In common with many scientists, I have no formal training in computer science and my coding skills have been entirely self-taught. I’ve been coding for over a decade and a half, and I thought I was a relatively good programmer, but I had mistaken familiarity with expertise. And so recently I have been on a […]

Continue readingMore Tag## Bayesian analysis toolbox for delay discounting, version 1.3

Posterior predictive checks The toolbox now calculates 2 measures of “goodness of fit” of the models. This is a useful quantitative reassurance that the models describe the participant discounting behaviour better than chance. In turn, this is important when we come to deciding which (if any) data files we should exclude. You can go and […]

Continue readingMore Tag## Bayesian analysis toolbox for delay discounting, version 1.2

I’ve just released Version 1.2 of the toolbox ‘Bayesian analysis toolbox for delay discounting.’ The main feature of this release was the addition of new models. For example, you can now estimate discount rates (ignoring the magnitude effect). So you can obtain estimates of the discount rate k, which is very useful if your primary […]

Continue readingMore Tag## Probabilistic programming: a tentative first encounter

While I have some experience with probabilistic programming in the flavour of Bayesian Networks, and have published papers using them, I am interested in the super-class of generic probabilistic programs. That is, right now I am happy with conducting inference on Bayesian Networks, but I want to learn how to conduct inference on generic programs. As […]

Continue readingMore Tag## Slice sampling Matlab demo

So far we’ve had a look at rejection sampling and importance sampling. Here we take a quick look at slice sampling, although rather than implementing it ourselves, we will use the built in Matlab slicesample function. Using our parameter estimation example, we will use slice sampling to estimate the mean and sigma of some samples from […]

Continue readingMore Tag## useful tree command on mac

I found a simple way to produce tree-like listings of files/folders on the mac. This is a very useful tool to get an overview of some project code. You can install it simply (following instructions I found here). First, open a terminal and install Homebrew if you do not have it already. It’s a package […]

Continue readingMore Tag## Importance sampling Matlab demo

Importance sampling is related to rejection sampling, which I looked at in the last post. Here is a short demo. A problem of rejection sampling is that many samples could be evaluated in regions of low probability mass. This then lead to a high rate of attrition, with many samples being rejected. In importance sampling, this seems […]

Continue readingMore Tag## Rejection sampling Matlab demo

I’ve been using MCMC, but I’ve wanted to flesh out my knowledge and explore the space of sampling approaches a little more. One very simple, yet inefficient method, is rejection sampling. Here is a little Matlab example I put together after seeing how easy it was. Which results in this output. So we have a good […]

Continue readingMore Tag