Update (02/04/2019): I’ve updated this in a new post. The updated result suggests a slightly lower climate sensitivity and a narrower range. The main difference is – I think – how I was handling the forcing uncertainty. In this post, I was simply using some fraction of the total forcing, while a more appropriate thing to do is to use the aerosol forcing, which is what I’ve done in the updated analysis.
I’ve been spending some time working on a Bayesian estimate for climate sensitivity. This is somewhat preliminary and a bit simplistic, but I thought I would post what I’ve done. Essentially, I’ve used the Markov Chain Monte Carlo method to fit a simple climate model to both the surface temperature data and to the ocean heat content data.
Specifically, I’m using a simple twobox model which can be written as
In the above, is the heat capacity of the upper box (ocean mixed layer and atmosphere), is the temperature of this box, is the heat capacity of the lower box (deep ocean), and is this box’s temperature. The term is essentially climate sensitivity, determines the exchange of energy between the two boxes, and is a noise term that I’ve added.
In the above equations, is the radiative forcing. Unfortunately, I can’t seem to work out where I got this data from, but I will update this when I remember. Any forcing dataset would work, though. The term in the top equation is the global surface temperature anomaly. I used the Cowtan and Way data, which you can access here. To complete this, I also needed a ocean heat content dataset. Laure Zanna very kindly sent the data from her recent paper, which can also be downloaded from here.
A couple of other things. I couldn’t find a forcing dataset that included uncertainties, so I assumed a 1 uncertainty of 25%. I also initially had trouble getting a decent fit between the model and the temperature and ocean heat content data, so have increased these uncertainties a little.
To actually carry out the fit, I used a python package called emcee. It’s well tested, quite commonly used in astronomy, and is what I used for the paper I discussed in this post. The model has 5 parameters: , , , , and . The priors for and were uniform in log space, while all the others were simply uniform.
The term is essentially an initial value for the deep ocean temperature, relative to the global surface temperature anomaly. I also adjust so that is the total heat capacity of the ocean down to 2000m and the fit is based the 02000m ocean heat content matching the combined heat content of the upper and lower boxes.
The figure on the top right shows the resulting fit to the global surface temperature anomaly. The orange line is the median result, while the lighter gray lines sample the range. The figure on the bottom right is the resulting fit to the 02000m ocean heat content data. The orange and gray lines are also the median result and a sampling of the range.
The figure below shows the resulting distributions for the 5 parameters. As will be discussed below, these can then be used to determine the equilibrium climate sensitivity (ECS) and the transient climate response (TCR).
The equilibrium climate sensitivity is simply given by the change in forcing due to a doubling of atmospheric CO_{2} divided by (i.e., ), while the transient climate response (TCR) can be determined using that the TCRtoECS ratio is
The resulting ECS distribution is shown in the top figure on the right, while the resulting TCR distribution is shown in the lower figure.
The table below shows the 15th percentile, median, and 84th percentile for the ECS, TCR, TCRtoECS ratio, and distributions. The results for the ECS and TCR are reasonably similar to what’s presented by the IPCC (although the lowerlimit for the TCR is a bit higher: ~1.5K, rather than ~1K). The only term that may not be clear is , the heat capacity of the upper box. A value of is equivalent to an ocean depth of 100m. The values I get seem a little high but may not be unreasonable (I was expecting this box to have a heat capacity equivalent to an ocean depth of about 75m).
Parameter 
15th percentile 
median 
84th percential 
ECS (K) 
1.99 
2.65 
3.63 
TCR (K) 
1.55 
1.94 
2.44 
TCRtoECS ratio 
0.65 
0.73 
0.80 

2.77 
3.57 
4.47 
Anyway, that’s what I’ve been working on. There may be more that I could do, but I’ve probably spent enough time on this, so will probably leave it at this. I did find it interesting that a relatively basic analysis using a very simple model produces results that seem entirely consistent with much more complex analyses and that is also consistent with various other lines of evidence.
I did try various ways to carry out this analysis. The results were all consistent with what I presented here. In some cases, however, the median climate sensitivity estimates were actually higher. However, in these cases, the fits between the model and the data seemed poorer. However, in none of my analyses did I recover climate sensitivities that were substantively lower than what I’ve presented here.