Author Archives: david

Relaxing some assumptions from the “high variance strategies” post

Advance warning: This is a very boring post.

In my last post I outlined a ludicrously over-simplified model for why you might want to consider high variance strategies.

I’ve been thinking over some of the modelling assumptions and wondering whether it could be made a bit less over-simplified. The only ones that are obviously easy to weaken are the assumptions on the distribution shape.

Here’s an example that shows you need some assumptions on the distribution shape. Consider a standard distribution \(Z\) with \(P(Z = 1) = P(Z = -1) = \frac{1}{2}\) and suppose we can choose strategies of the form \(\mu + \sigma Z\). Note that \(E(Z) = 0\) and \(\mathrm{Var}(Z) = 1\) so these really are the mean and standard deviation of our distributions.

But \(E(\max\limits_{1 \leq k \leq n} Z_i) = 1 (1 – 2^{-n}) – 2^{-n} = 1 – 2^{1 – n}\) (because the maximum takes the value \(-1\) only if all of the individual values are \(-1\), which happens with probability \(2^{-n}\)). So \(E(\max\limits_{1 \leq k \leq n} \mu + \sigma Z_i) = \mu + (1 – 2^{1 – n} \sigma\). \(1 – 2^{1 – n} < 1\), so you’re always better off raising \(\mu\) rather than \(\sigma\).

The interesting feature of this example is that \(P(X_k \leq \mu + \sigma) = 1\). If this happens then it will always be the case that \(E(\mathrm{max}(X_k) ) \leq \mu + \sigma\) so there’s no real benefit to raising \(\sigma\) instead of \(\mu\) (note: It’s conceivable that there’s some complicated dependency on \(\mu\) as a parameter, but I’m just going to assume that \(\mu\) is purely positional and not worry about that).

You only need to go slightly beyond that to show that for some sufficiently large group you’ll always eventually be better off raising \(\sigma\) rather than \(\mu\).

Suppose all our strategies are drawn from some distribution \(X = \mu + Z^\sigma\) with \(E(Z^\sigma) = 0\). The only dependency on \(\sigma\) that we care about is that \(P(Z^\sigma \geq (1 + \epsilon)\sigma \geq p\). for fixed \(\epsilon > 0, 0 < p < 1\) and all \(\sigma > 0\) (this is trivially satisfied by the normal distribution for example).

Then we have \(E(\max\limits_{1 \leq k \leq n} X_n) = \mu +E(\max\limits_{1 \leq k \leq n} Z^\sigma_n)\).

So we now just want to find some lower bounds on \(T_n = E(\max\limits_{1 \leq k \leq n} Z^\sigma_n)\). We’ll split this up as three variables. Let \(T_n = U_n + V_n + W_n\) where \(U_n = T_n \mathbb{1}_{T_n \leq 0}\), \(V_n = T_n \mathbb{1}_{0 < T_n < (1 + \epsilon) \sigma }\) and \(W_n = T_n \mathbb{1}_{(1 + \epsilon) \sigma \leq T_n }\).

Because \(U_n \geq 0\) and \(W_n \leq (1 + \epsilon) \sigma\) this gives us the lower bound  \(E(T_n) \geq E(U_n) + (1 + \epsilon)\sigma P(W_n \geq (1 + \epsilon) \sigma) \geq E(U_n) + (1 + \epsilon)\sigma (1 – p)^n\).

We now just need to bound \(U_n\) below. But \(U_n \geq U_1 \mathbb{1}_{T_k \leq 0, k \geq 2}\). But these two random variables are independent  so \(E(U_n) \geq E(U_1) P(Z \leq 0)^{n – 1}\). Therefore \(E(T_n) \geq + (1 + \epsilon)\sigma (1 – p)^n\)

This lower bound lets us show a much less pretty version of our last result:

Given a strategy \(\mu, \sigma\) being employed by \(n\) people, and given some increase \(a\) which could go to either \(\mu\) or \(\sigma\) there exists some sufficiently large \(m\) such that for \(m\) people, changing the strategy to \(\mu, \sigma + a\) would beat changing the strategy to \(\mu + a, \sigma\).

Yeah, that phrasing is kinda gross to me too.

Note though that if we go back to the previous case where \(\sigma\) is just a scaling parameter and are just dropping the normality strategy, we can use our lower bound on \(E(T_n)\) to find some \(n\) for which \(E(T_n|\sigma = 1) > 1\) and for all \(m \geq n\) it will be beneficial to increase \(\sigma_n\).

Note by the way the crucial role of \(\epsilon\). I think if you consider a distribution that takes with equal probability the values \(\sigma, -\sigma, \sigma + 2^{-\sigma}, -\sigma – 2^{-\sigma}\) (note that \(\sigma\) is not the standard deviation here) then it’s not actually helpful to raise \(\sigma\) instead of \(\mu\), even though \(P(Z^\sigma > \sigma) = \frac{1}{4}\). I have not bothered to work out the details.

This entry was posted in Uncategorized on by .

The virtue of high variance approaches

Suppose you’re trying to do something. You can adopt a variety of strategies – some of them are likely to produce better results on average, some of them are more variable and could either produce great or terrible results, etc.

Lets adopt an overly simplistic mathematical model and say that how “good” the result of the strategy is is determined by a normal distribution \(N(\mu, \sigma^2)\).

Lets further simplify and say that all we’re actually interested in to determine whether a strategy is good or not is the expected value of this goodness.

So how should we choose the best strategy?

Well we pick the one with the highest value of \(\mu\). The \(\mu\) parameter is exactly the expected value.

Now, suppose there are multiple people all working independently at the same task. What strategy should they adopt? Should they just all adopt the individually best strategy?

Well… it depends.

Specifically it depends on how these values combine.

If they just add together (e.g. say you’re doing something whose output is measured in quality adjusted life years and there are more than enough people you should be helping that you’re not meaningfully going to start interfering with eachother) then yes, you should adopt the same strategy. The sum of independent normal random variables is another normal random variable with expectation equal to the sum of the expectations of its components.

But not everything is additive. For example, suppose you’re all trying to come up with a new type of invention, or to write the best essay, or anything where you can simply take the best result and replicate it as many times as you want.

What strategy should you adopt then?

Suppose that each of \(N\) people adopt a normally distributed strategy as above. Say the results of person \(n\) are \(X_n\). Then the overall result is \(R = \mathrm{max} X_n\).

By scaling, the expected value of this is \(\mathbb{E}(R) = \mu + \sigma \mathbb{E}(\mathrm{max}  Z_n)\) where the \(Z_n\) are standard normal random variables.

And it turns out that for \(N \geq 4\), \(\mathbb{E}(\mathrm{max}  Z_n) > 1\). So for groups of at least 4 people, increasing the standard deviation actually improves the best result more than increasing the mean by the same amount does. This shouldn’t be terribly surprising – at 4 people there’s just over a 50% chance that someone will get at least one standard deviation above the mean.

So for groups of more than a couple people who are working independently and whose results can simply be replicated, the optimal strategy is not in fact to optimise your local strategy but to pursue higher variance ones. You should still try to produce good strategies of course, but by pursuing higher variance at some cost of optimality you may significantly improve the results.

Obviously this model is overly simplistic – quality isn’t scalar, it’s probably not normally distributed, and independence can be hard to achieve in practice, but I hope it is at least suggestive.

This entry was posted in Uncategorized on by .

What I’m doing to improve my sleep

Yesterday Irene tweeted:

I can relate to this sentiment a lot. Her sleep patterns are way worse than mine (which I am hugely sympathetic about), but mine are also pretty bad.

They are however a lot better than they used to be, mostly because I’ve spent a bunch of time working on coping strategies for making them better. I shared some of these with Irene and they probably weren’t very helpful because we’re operating on different scales of problems, but I thought I’d share these here too in case they’re more useful for some other people who have had similar problems to me.

Up front note: I am not a doctor, nor any sort of expert on the subject of sleep. I’m just a man. A man who sleeps really quite badly and would like not to. I have also not done proper science to myself. So these are just things I’ve tried that seem to help based on anecdotal evidence. I might be wrong, and even if I’m not wrong your mileage may vary.

So this would be my first advice: Consult someone who is a professional. Based on past experience your doctor will probably be patronizing and not terribly sympathetic (your doctor is probably incredibly overworked and thus will also be very tired, which I suspect inclines them to be less than sympathetic).

The reason you should see a doctor about this is because there are common nutritional deficiencies whose side effects include sleeping badly and being tired all the time. I’ve had this in the past from both B12 and D deficiencies. Other things can cause this too – this is not an exhaustive list and I don’t have the knowledge required to write one. This may not be your problem but it’s worth ruling out.

(It seems likely that some of my current problems are in fact being aggravated by B12 deficiency. I got a B12 shot recently and that seems to have helped, but I changed like 5 other variables at the same time so it’s a bit early to say.)

That covered, here are the things I try to do to improve sleep:

Lifestyle design

There are basically three major things I do to my lifestyle to try to improve my sleep.


Specifically, have a coffee addiction. I know this sounds weird, but it really does help me. I consistently sleep better when I have a coffee habit than when I don’t (exception: The first week or so of cold turkey I sleep great because I’m exhausted all the time).

I think the reason this works is that I have a hard cut-off of not drinking coffee after about 1, a soft cutoff (i.e. afterwards I go “I probably shouldn’t” but sometimes do anyway) of about 12, and rarely drink it after about 11 or so. This means that by the time I’m supposed to be in bed my body has processed a lot of the caffeine and as a result I have less energy. It basically accentuates natural feelings of sleepiness and acts as an extra bed time trigger.

If you already drink coffee or other caffeinated substances I strongly recommend a similar cut-off. Also, I would recommend you drink caffeine either extremely rarely or extremely regularly – I find that when I don’t have a caffeine addiction and I drink coffee my sleep that day is terrible no matter how early I drink it.

Outside time

As mentioned, vitamin D is delicious and nutritious and helps you sleep. As someone who is prone to being deficient in it it’s important for me to get lots of sun.

Also, light exposure is a large part of what regulates your sleep patterns, so getting light during the day is good for feeling awake and keeping your body calibrated.

I’ve done a few things to tinker with this after reading Internal Time which is basically all about this sort of thing (more on the other one later), but essentially what I try to do is get lots of sunlight during the daytime and reduce lighting at night (I only somewhat recommend this book. It’s got some really interesting content in it but it’s also got a lot of filler).

It’s also worth noting that you get a lot more sunlight from being outside during a cloudy day than you do from a sun lamp. It turns out the sun is quite bright.


I hate being one of Those People.

You know, those irritating people who have been telling you your entire life how great exercise is and how it makes everything better.

Unfortunately it seems that that they’ve got a point.

Exercise seems to help me in two ways: Being physically tired makes going to sleep a bit easier, and regular exercise makes me feel mentally better. One of the big things that can stop me from getting to sleep is my brain racing through a great deal of unproductive thoughts and regular exercise seems to help calm that. I don’t know why, but a lot of people seem to experience mental health benefits from exercise and for me that translates to better sleep.


Lifestyle stuff out of the way, what do I do about actual bed? There’s a whole bunch of stuff out there about good sleep hygiene, which is mostly where this comes from, only tempered with a whole bunch of “Yeah but lets be realistic here”.


In particular a lot of people will tell you to avoid electronic devices before bed, but lets be realistic here. Also this isn’t actually very useful advice because the artificial lighting you have in your home is nearly as bad for you.

This is the other important half of what I got from Internal Time: Blue light is the trigger that tells your body that it’s daytime and you shouldn’t be sleeping yet (I think all light does this to a degree, but blue light is the most significant).

So I put on blue blocking sunglasses a couple hours before bed. I use these ones because they’re ridiculously cheap and seem to work perfectly well. You can get fancier ones if you like. Let me know if you do and if you see any difference.

Seriously, this helps a lot. I broke my only set about a month or two ago and my bedtime started going all over the place. I got some replacement recently and… well I’ve changed too many variables at once, but it seems to have cancelled out the “but I’m not tired yet” problem that I was having. If you change only one thing on the basis of this post you should try this one.


I am not very good at this one.

The recommended advice is that you should have rigidly consistent times of going to sleep and waking up. For a while I was doing a pretty good job of sticking to a consistent 22:00 bedtime and 07:00 wake up time. This has slipped a lot recently, but I think it’s worth getting back to – the more regular I can make this the better my sleep tends to work.

Regardless of how consistent you manage to be, it’s worth having these times set because it makes it harder to make excuses. If you’re out socialising then yeah you’re going to miss your bedtime, but if you’re home playing on the computer and it’s past your set bedtime then you know you should be going to bed and it makes you more likely to do so.

Story telling

The major thing that stops me from falling asleep other than not being tired (which the glasses and the exercise seem to be sufficient to help with) is my brain. The accursed thing won’t shut up. Sometimes it’s interesting things it wants to talk to me about, but more often it’s an unhelpful litany of “Hello David, don’t you think now would be a good time for me to enumerate all your flaws in exhaustive detail? I sure do”.

This is unproductive.

Fortunately, I hit on a solution for this a while ago: I tell myself stories.

They’re not good stories. They’re typically the sort of trashy self-indulgent things which are frankly a bit embarrassing to read because of how obviously the protagonist is an author self-insertion and the whole thing is basically a fantasy of agency (and this is how David used the magic ring he found to save the world. Yay David, you’re the best).

That’s rather the point though. They’re basically things which are mildly pleasant fantasies which are not interesting enough to keep me awake but are capable of holding my attention well enough

When I’m lying in bed and my brain won’t shut up I tell myself really bad first person fiction. This tends to be incredibly banal sci-fi/fantasy plots in which I get to play an unrealistically perfect hero. They’re inevitably totally boring and that’s not only fine but beneficial – the point is to create a narrative that is interesting enough to keep my brain distracted but not interesting enough to keep me awake. It just gives me a train of thought that I can focus on to keep out the other less productive trains of thought.

I have heard versions of this from other people to the tune of imagining a nice walk on the beach or something, but my imagination is so non-visual that this doesn’t work at all for me. Might be worth a try for others though.

Hugging a pillow

I’m honestly a little embarrassed to admit to this one, but it works pretty well so it feels mean to withhold it as advice if you haven’t cottoned onto it already.

I sleep alone. This isn’t always the case, but it’s the case the overwhelming majority of the time.

This is absolutely fine for the most part (indeed a lot of some peoples’ sleep problems in fact come from the partners they sleep with), but sometimes you just need a hug, you know?  So if I’m struggling to sleep I will often take a large pillow and hug it while I try to sleep. It works surprisingly well. There’s a definite psychological comfort from it which seems to help relax into sleep a bit better.

A large stuffed animal may also work well here. I can recommend Squishables. I’ve never tried them for sleeping but hugging the Squishable rabbit was the only thing that got me through the Aframe public launch.

Yes, I’m a grown-ass man recommending you bring a stuffed bunny to bed. Deal with it.

Fluid intake

There are two competing problems here. The first is getting dehydrated during the night and the second is waking up early because your bladder is insisting now is bathroom time.

Basically what I do here is that I try to drink lots of water during the day and then stop drinking anything (or at least drink a lot less) an hour or two before bedtime. This seems to help.

Things that I don’t currently do

Here are some things that I’ve either not got around to trying or have tried and didn’t find terribly helpful.

Meditation before bed

This has been suggested to me as a solution for stress causing you sleep problems. My story telling technique mostly seems to work for me for this and I’m really rubbish at meditation, so I haven’t tried it.

Peanut butter before bed

I have tried this one. I think it helped a bit, but not enough that I stuck with it. Basically the idea is that if you wake up feeling awful that might be due to low blood sugar. A spoon full of peanut butter or a similar amount of peanuts before bed gives you a slow release into the blood stream which helps cushion that, or at least that’s the theory.

Note: I got this advice from a Tim Ferris book (four-hour body) so it’s intrinsically suspect.

Playing the didgeridoo

Yeah, uh, apparently this helps. Throat exercises also help.

The idea is that if you’re waking up tired this might be due to snoring and/or sleep apnea causing you sleep quality issues. Things that strengthen your throat muscles reduce the amount that you snore and this improves your quality of sleep.

Looking at these sources though this seems to only really apply to people with sleep apnea. I’ve heard it claimed that it works for snoring in general, but I suspect this may be a distortion of the research. It’s also unclear to me how much snoring is a problem for me – I definitely snore a bit, and it’s been suggested that this may be hurting my sleep, but I don’t know if I really buy it.

Still, I’m amused enough by the idea that I’ve impulse bought myself a travel didgeridoo and a book on how on earth to use one. I’ll report back if this seems to help and/or I just feel too utterly ridiculous to try it.

I got this information from Night School. It’s an OK book, but this was the most interesting information in it for me. It’s got some neat stuff about sleep in it but I didn’t find it had much else in the way of actionable advice for improving my sleep beyond what I already knew.


I use a Jawbone UP to track my sleep. The numbers are interesting, if only for validation.

It’s useful in several ways. Firstly it just gives me a good measure of an upper bound on how much sleep I’m getting (I don’t find it distinguishes well between awake and light sleep, so I tend to think it overestimates how much I’m sleeping, but if it says I’ve averaged 7 hours of sleep a night for the last week I’m pretty confident I haven’t regularly got more than that).

The second interesting aspect of it is that it tracks deep sleep – sleep in which you’re not moving very much – and apparently on this metric I am significantly worse than average (which given that the average jawbone up user appears to get 4-5 hours of sleep per night is frankly depressing). Right now I’m essentially treating raising this as my goal.

Right now I’m definitely classing this under “interesting” rather than necessarily useful. The step tracking is more useful for raising my general exercise level, but I’m hoping that once I’ve been using this for a bit longer the sound sleep metric will be a helpful tool for improving my sleep quality.

Everything else…

I’m still not very good at this, and still figuring it out. Right now I’m making it a major goal to try to sort this out, because not being tired all the time would be really quite lovely. We’ll see how that goes. In the mean time, I would be utterly delighted for you to share any advice with me that you think I’ve missed.

This entry was posted in Uncategorized on by .

Reading code without running it

A while back I wrote about reading code by asking questions. I still think it’s pretty good advice.

What’s unfortunate is that I am currently finding it very hard to apply at my new job, so I think I have to revise that: It’s good advice if you can apply it, but you might not be able to.

There are two main issues that are making it difficult for me:

  1. We’re writing in C++
  2. We’re dealing with a lot more data than I historically have, and correspondingly bigger models

Why do these matter?

Well C++ doesn’t matter because it’s an intrinsically complicated language. I mean, it is, but the subset of it we’re using is generally pretty clean and usable. It’s not a problem. I picked up our version of C++ about as fast as I’ve picked up any other language in recent memory – it honestly didn’t take me longer to pick up than it did e.g. python (Having written a fair bit of C and some Clay and C# helped a lot here – there was very little in the way of new semantics for me to learn, just new syntax. So much new syntax).

No, C++ has an effect for an entirely different reason.

What reason?

Well, I never really believed this comic before.


C++ builds are slow, especially when you have a large code base. There are things you can do to improve this (and we have an entire team working on improving this. I’m very much looking forward to their work), but at the moment building a single file can take up to a minute (this parallelises of course when you have multiple files, but for single files it’s hard to improve without semantic changes to the language and it’ll never speed up much faster than the number of cores you have), and then once you have a build you have to link it and that can take even longer.

And then you have to start the application. The resulting binaries are large enough that even that is non-trivial, but then you have to do things like loading data models, launching services, reticulating splines, herding game theory, etc.

Between these two the cycle of making a change and seeing what happens can be anywhere for a couple minutes to half an hour.

When I blog about my internal thoughts and process I’m always a little concerned that I’m telling just so stories. I’m telling you less about how my brain actually works and more how I think my brain works. These are often surprisingly different.

In this case though I’m getting pretty strong evidence that I was bang on about how I read code. The major difference between what I’m doing now and what I’ve done previously is this cycle time – it’s a new language, but I’ve done that. It’s a large codebase, but I’m focused on a small enough section of it that I’ve dealt with larger. It’s a new build process, but I don’t think I’ve ever started a job that didn’t have an unfamiliar build process. The thing that is different is the cycle time.

And it completely destroys my previous code reading technique, which is probably a pretty good indicator that I was right, it’s just  a shame that I had to discover that by testing to destruction.

The problem is that that the compile and run step is basically the inner loop of the process. This means that how long everything takes basically scales linearly with how long it takes to compile and run, so if you’ve gone from 10 seconds to 10 minutes then it will take you 60 times as long to read things (longer, really, because you’ve almost certainly lost your focus during those 10 minutes).

And of course this is probably happening because there’s a lot more to read.

Obviously this is unsustainable.

Part of the solution is to try to speed this up, but it’s hard. You can get a factor of two or three out with some careful management of things, but when what you really want is a factor of 10 that is merely a band-aid on a much more serious injury.

The real solution is to figure out how to read code without running it. I’m having some success relying more heavily on compiler integration with my editor (YouCompleteMe is lovely) – so I’m still adopting the “making changes and seeing what happens” approach, but instead of running them and seeing what they’re doing I’m relying more on the type system to catch a lot of the things I would previously have caught at runtime.

This is very much the poorer cousin of the previous approach. It’s faster than a full compile because you don’t have to link or generate object files, and also because it’s happening in parallel with my editing it’s much easier to tolerate the still not inconsiderable slowness.

More importantly it still doesn’t tell me if it works, but it at least significantly reduces the number of iterations I spend figuring out that it doesn’t (yes, I know you can do a lot more to prove correctness in a static type system. When the language you’re writing in is C++ that’s not necessarily an improvement, and anyway the codebase I’m working on doesn’t do that).

So this feels… inadequate. It’s a bit like what I describe as the fake meat problem. There’s a thing you miss and can’t have, so you substitute something strictly inferior that pretends to be it, when instead you could be exploring new possibilities that your new limitation forces you to consider.

(The fake meat analogy breaks down because I think this will continue to be a useful feature of any solution whileas I can’t stand fake meat and couldn’t even when I was a committed vegetarian, but the principle is still applicable – it’s a bad idea to just substitute and carry on pretending nothing has changed).

What are those possibilities? Wish I knew. Hopefully I’ll figure out some great new technique. For now the best anyone seems to be able to tell me is “you just sorta figure it out”, which as a solution is somewhat short of actionable. Any suggestions?

This entry was posted in Uncategorized on by .

The role of certainty in behaviour change

Disclaimer: This is a “Here are some things” post in which I try to figure out how a bunch of different facts fit together. It’s not terribly coherent.

I wasn’t thinking about this when I wrote it, but it recently occurred to me that, in a certain sense, the solution I proposed to trolley problems is exactly the same as Beeminder.

The sense in which they are exactly the same is that they are both a system for increasing the cost of an action you want to take because you don’t trust your reasoning in the circumstances that you’d want to take it. They’re systems for distorting incentives in order to get you to behave in a certain way.

You can frame a lot of things like this. In a sense the entire justice system can be framed as this (note: I was not explicitly doing so in the trolley problems post because it was expressed in terms of turning yourself in – it’s about what the right moral choice is, not how to get people to choose the right thing to do): You are changing people’s incentives by creating penalties when they behave in ways you don’t want.

My admittedly imperfect understanding of the evidence is that this isn’t a very good model of how a justice system works in practice. Under this theory, increasing the severity of a punishment should significantly increase the incentive to not commit a crime, and thus should decrease the rate of commission of that crime. In practice, rates of committing crimes appear to be relatively unresponsive to this. In particular, the introduction of capital punishment appears to do little to nothing to reduce the homicide rate.

Circling back to Beeminder, how do you square this with the fact that fairly demonstrably if you increase the pledge on a goal you’re less likely to derail on it (at least on an anecdotal basis, but I think this holds true in general from what other people have said and it would make the entire premise of the site fairly questionable if it weren’t true). Increasing the punishment for behaving “wrongly” acts as a good way to make you much more likely to behave correctly.

The difference seems to be certainty. Fundamentally, it appears that at least in the heat of the moment, criminals don’t think they’re going to get caught. If you believe you’re not going to get caught, how much you’re punished when you get caught is basically irrelevant to you and doesn’t force you to consider your behaviour. With Beeminder or a precommitment to always submit yourself to justice, this goes away because you remove the uncertainty.

In general, and this is where my knowledge about the evidence gets super shaky and really needs further research, this seems to hold as a model of criminal behaviour: Increasing the certainty of conviction seems to work much better than increasing the severity of punishment. Essentially you want to cause people’s suspension of disbelief required to think they’ll get away with it until even in the heat of the moment they can’t really believe it. Presumably, once you have managed to consider people that punishment for a crime is certain the severity of that punishment starts to have more of an effect (However, this is entirely theorising and I do not have evidence to back up this claim’s plausibility with regards to the design of actual justice systems, so it should not be trusted too strongly).

(On a social justice note, my understanding is that there’s a lot of things that black people will stringently avoid doing because given the racism inherent in the criminal justice system they are much less likely to get away with it than white people. I don’t have any statistics, only anecdata I have heard, so I don’t want to comment on this further, but people have certainly reported this influencing their behaviour and it is eminently plausible).

The connection between certainty and effectiveness of incentives seems entirely plausible. People who want to do a thing are going to engage in motivated reasoning to allow themselves to do it, which is going to cause them to convince themselves they’ll get away with it if it’s humanly possible for them to believe that (and humans are really good at believing things).

A thing that’s interesting about this is how it’s completely opposite to how rewards work. Rewards are best at changing behaviour if they’re not predictable. It seems that what you want to do is basically only reward people for a behaviour some of the time (I have no idea what the best probability is for this, but that would be really interesting to find out).

I don’t know precisely why this is, but it seems to mesh with my anecdotal experiences of how to create addictions. The most addicting games aren’t the ones that consistently reward you with steady progress but those where you try and fail a lot. Especially when that failure is sometimes because you weren’t good enough and sometimes the game is just like “ha ha. No”.

So there’s a weird sort of duality here: When trying to get you to do less of something you want to do, you want certain costs. When trying to get you do more of something that you don’t want to do, you want uncertain rewards.

Obviously, I’m interested in all of this in the context of behaviour change.

The major source of uncertainty in my attempts at behaviour change is my use of tagtime. It randomly samples me throughout the day and asks me what I’m doing, I reply with various things that I want to track, and these are fed into beeminder goals (I don’t use any tagtime tags that are not hooked up to goals). These are a mix of “Do more” goals (be outside, be in the gym, be doing Anki cards) and do less goals (be on twitter, be sitting down).

The randomness is purely because this is the most efficient way to track things which are fine grained. For example as a result of tagtime I will often squeeze in a couple minutes of anki between things, such as while resting between sets in the gym. It would be inconceivably heavy weight to try to time those in a fine grained way, but tag time just doesn’t care: It works equally well regardless of how my time is sliced up.

The degree of actual uncertainty in tag time behaviour is pretty low in the long run – I have on average more than 300 pings a week, which is enough that the margin of error on most goals is actually pretty low). However, it has the side effect of greatly increasing the amount of perceived uncertainty, which for the purposes of behaviour change seems likely to be what matters.

And my reaction to the pings is correspondingly very different between these behaviours that I’m rewarding and punishing as a result.

With the do more goals each ping is that little surge of pleasure at the reward “Yay, I got points for doing a thing”. It’s not 100% effective for creating behaviour change (in particular recently has been suffering a bit from lack of motivation. In fact this post is only being written because I let my writing time goal suffer so much that I need to write this while on a team offsite in Ibiza to not derail), but it’s been pretty good.

The do less goals my reaction is “Argh, you caught me”.

Fundamentally, tagtime will catch you. There’s no way to beat the system. Yet I still think I can get away with it.

I’m not sure what to do about this. Tagtime is still the best way to track what I’m doing with my time. It’s possible that even just having spelled this out is sufficient, but I’m not convinced it will be.

Still, it’s not like I can’t change my behaviour without the perfect magic set of incentives, but it sure would be nice to have a system that works with the quirks of my brain rather than forcing me to overcome them with sheer stubbornness.

On the plus side, by writing this blog post about motivation I have managed to satisfy my immediate motivation of getting my writing time goal back up to outside of the backpressure zone. So I’ve got that going for me.

This entry was posted in Uncategorized on by .