Graham StullEverything I do is about the reader’s experience. My ethos is simple: when readers pick up one of my books, they are investing more than just hard-earned money in my creative product. They are investing their leisure time and – what’s even more important in the Silicon Age – their downtime. So I set myself the unrealistic goal of writing so well that every single reader will appreciate the experience. This will never happen. But at a very minimum, every reader should put one of my books down after having read the last page and think, “not to my taste, but at least it was well crafted, professional, and the characters were credibly rendered”.

This means, concretely, I have a zero-tolerance policy for any and all of the following:

1) Typos
2) Plot holes
3) Loose ends
4) Verbiage

I want to hear every bit of feedback from you, the reader, to make sure that is the case. Because let’s face it, in the age of self-publishing, there is a lot of crap out there.

So if you buy one of my books and can find in it honest instances of any of the above, contact me, showing the Amazon receipt for the purchase, and I will give you your money back. I promise.

Graham Stull

Graham at

Graham at

As with birth rates, we use data for 4 categories of countries from 1990 to 2015 (100 observations total). We have two explanatory variables, AGE and Y, where AGE is defined as the percentage of the population aged over 65 and Y is per capita GDP.

After eyeballing the scattergrams, we test the following functional form:

d = (minY^a)/Y^a * (1/AGE^g)

Where minY is the constant equal to the smallest value of Y in the series.

Logarithmic transformation gives:

ln(d) = ln(minY^a) – a*ln(Y) – g*ln(AGE)

which we test on the data using OLS. Here are the results:

Adjusted R square: 75.191

Intercept coefficient: 7.37384
t-Stat: 20.4011

Y coefficient: -1.01444
t-Stat: -13.1059

AGE coefficient: 2.0097
t-Stat: 11.5208

The estimated intercept is a good, but not perfect, approximation of ln(minY^a)

Here are the fitted against actual values of the scattergram for death rate against per capita GDP:


While the results are not as good as with the birth rates calculations, it is nevertheless a good enough fit and the explanatory variables have a strong enough confidence factor to be usable in our estimations.


We begin by examining the scatter of data for 100 observations of per capita GDP and per capita emissions for 4 categories of countries, over 25 years (1990 – 2015).

The scatter suggests a cubic functional form, so we test:

GHG = a + b*Y + c*Y^2 + d*Y^3

where GHG are per capita emissions of GHG, and Y is per capita GDP.

The results from OLS regression are:

Adjusted R square: 0.980438073

coefficient a: 1090
t-stat a: 3.06

coefficient b: 0.709310153
t-Stat b: 8.241453

coefficient c: -0.0000047025
t-Stat c: -1.01233

coefficient d: -0.000000000105314
t-Stat d: -1.47005

While the t-scores on the squared and cubed terms are low, the number of observations are also limited.

Here is the plot of the fitted against actual values: