# Using Natural Logs to calculate percentage change

**URL:** <https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175>\
**Category:** Factual Questions\
**Created:** [August 8, 2005, 8:40pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175 "2005-08-08T20:40:54Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![js\_africanus](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@js\_africanus](https://boards.straightdope.com/u/js_africanus)\
**Post date:** [August 8, 2005, 8:40pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/1 "2005-08-08T20:40:54Z")

</div>

Howdy—

I used to have a prof who insisted that the best way to get percentage change was to take the natural log of the ratio of the beginning & ending value. This was because it ensured that the percentage change was consistent from both directions. For example, if you have 7 people to begin with and 8 to end with, then

ln(7/8)=-1.34 and ln(8/7)=1.34.

The problem is when I begin to doubt some fact that I had heretofore known to be true with absolute certaintity, because I’ve been wrong about such facts often enough to know that my confidence is a poor gauge of accuracy.

So: Help! How does one calculate percentage change with natural logs? I’ve googled for the last hour & a half and haven’t had luck. (Which is going to be really embarrassing if somebody searches and finds in in ten seconds :smack: )

Thanks much!

---

<div class="post-metadata">

**Author:** ![Giles](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/giles/32/60_2.png) [@Giles](https://boards.straightdope.com/u/Giles)\
**Post date:** [August 8, 2005, 8:46pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/2 "2005-08-08T20:46:53Z")

</div>

In fact, ln(8/7) = 0.133531393 and ln(7/8) = -0.133531393. So the percent change from 7 to 8 is about 13.3% (closer to 14.3% actually), and from 8 to 7 is about -13.3% (-12.5%) in fact. So it’s an approximation, which works to one significant figure here, and gets better as the percentage change gets closer to zero.

---

<div class="post-metadata">

**Author:** ![nivlac](https://avatars.discourse-cdn.com/v4/letter/n/3bc359/32.png) [@nivlac](https://boards.straightdope.com/u/nivlac)\
**Post date:** [August 8, 2005, 9:02pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/3 "2005-08-08T21:02:45Z")

</div>

Let’s say the change goes from x[sub]1[/sub] to x[sub]2[/sub]. The reason why the approximation works is because ln(x[sub]2[/sub]/x[sub]1[/sub]) is pretty close to (x[sub]2[/sub]/x[sub]1[/sub])-1, as long as x[sub]2[/sub]/x[sub]1[/sub] is near 1.

---

<div class="post-metadata">

**Author:** ![Bytegeist](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@Bytegeist](https://boards.straightdope.com/u/Bytegeist)\
**Post date:** [August 8, 2005, 9:04pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/4 "2005-08-08T21:04:54Z")

</div>

You had a strange professor.

Percentage change is equal to **100% x (v[sub]2[/sub] - v[sub]1[/sub]) / v[sub]1[/sub]**. The natural logarithm of v[sub]2[/sub] / v[sub]1[/sub] will give you the _approximate_ relative change when the two values are nearly equal — and the closer the values are to each other, the better the approximation. But you need to be cautious otherwise.

Seems just as easy to me to use the correct formula, remembering that you divide by the older of the two values.

---

<div class="post-metadata">

**Author:** ![Bytegeist](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@Bytegeist](https://boards.straightdope.com/u/Bytegeist)\
**Post date:** [August 8, 2005, 9:16pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/5 "2005-08-08T21:16:25Z")

</div>

> [@js\_africanus](#):
>
> How does one calculate percentage change with natural logs?

… but to go ahead and answer this question anyway — though the answer be ridiculous:

**Percentage change = 100% x (e[sup]ln (v2 / v1)[/sup] - 1)**

---

<div class="post-metadata">

**Author:** ![Hyperelastic](https://avatars.discourse-cdn.com/v4/letter/h/a3d4f5/32.png) [@Hyperelastic](https://boards.straightdope.com/u/Hyperelastic)\
**Post date:** [August 8, 2005, 10:40pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/6 "2005-08-08T22:40:54Z")

</div>

Is it possible that your professor was talking specifically about mechanical strain? If the original length is L1 and the stretched length is L2, then the “engineering strain” is (L2-L1)/L1, which is the percent difference (in fractional form, of course). But there is another definition of strain, called the “log strain” or “true strain”, which is ln(L2/L1). Both definitions are widely used, although for large strains you have to be careful to specify which definition you’re using.

N.B: “True strain” isn’t inherently better than any other definition of strain.

---

<div class="post-metadata">

**Author:** ![Punoqllads](https://avatars.discourse-cdn.com/v4/letter/p/d2c977/32.png) [@Punoqllads](https://boards.straightdope.com/u/Punoqllads)\
**Post date:** [August 8, 2005, 11:55pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/7 "2005-08-08T23:55:24Z")

</div>

I don’t think that helps, **Bytegeist** , you still wind up with wildly varying percentages depending upon whether v[sub]1[/sub] is larger than v[sub]2[/sub] or vice-versa. You still wind up with the fact that the change from 5 to 10 is an increase by 100%, but the change from 10 to 5 is a reduction by 50%.

I think that what your professor was saying was to just use ln(v[sub]1[/sub]/v[sub]2[/sub]) as if it were the percentage change, even though it’s not. Presumably there is some proof that ln(v[sub]1[/sub]/v[sub]2[/sub]) is between (v[sub]1[/sub]-v[sub]2[/sub])/v[sub]2[/sub] and (v[sub]1[/sub]-v[sub]2[/sub])/v[sub]1[/sub] for v[sub]1[/sub] \> v[sub]2[/sub]

---

<div class="post-metadata">

**Author:** ![Punoqllads](https://avatars.discourse-cdn.com/v4/letter/p/d2c977/32.png) [@Punoqllads](https://boards.straightdope.com/u/Punoqllads)\
**Post date:** [August 9, 2005, 12:21am UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/8 "2005-08-09T00:21:36Z")

</div>

And here it is:

e[sup]x[/sup] = 1 + x + x[sup]2[/sup]/2! + x[sup]3[/sup]/3! + …

e[sup]x[/sup] \> 1 + x, x \> 0  
x \> ln(1 + x), x \> 0

set (v[sub]1[/sub] - v[sub]2[/sub])/v[sub]2[/sub] = x, v[sub]1[/sub] \> v[sub]2[/sub]

so (v[sub]1[/sub] - v[sub]2[/sub])/v[sub]2[/sub] \> ln(1 + (v[sub]1[/sub] - v[sub]2[/sub])/v[sub]2[/sub])

(v[sub]1[/sub] - v[sub]2[/sub])/v[sub]2[/sub] \> ln(1 + v[sub]1[/sub]/v[sub]2[/sub] - v[sub]2[/sub]/v[sub]2[/sub])

(v[sub]1[/sub] - v[sub]2[/sub])/v[sub]2[/sub] \> ln(1 + v[sub]1[/sub]/v[sub]2[/sub] - 1)

so (v[sub]1[/sub] - v[sub]2[/sub])/v[sub]2[/sub] \> ln(v[sub]1[/sub]/v[sub]2[/sub])

You can do a similar thing to show that ln(v[sub]1[/sub]/v[sub]2[/sub]) \> (v[sub]1[/sub] - v[sub]2[/sub])/v[sub]1[/sub]

---

<div class="post-metadata">

**Author:** ![Bytegeist](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@Bytegeist](https://boards.straightdope.com/u/Bytegeist)\
**Post date:** [August 9, 2005, 12:40am UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/9 "2005-08-09T00:40:01Z")

</div>

> [@Punoqllads](#):
>
> I don’t think that helps, **Bytegeist** , …

Oh, **I agree**. That’s why I described that formula as “ridiculous”: it evaulates the logarithm only to immediately undo it. _But_, if you’re trying to compute “percent change” in terms of the logarithm of the ratio of the two numbers, then the formula I supplied is about the most straightforward way to shoehorn it in. It’s a silly approach, but it technically answers the OP — which is all I was doing there.

---

<div class="post-metadata">

**Author:** ![js\_africanus](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@js\_africanus](https://boards.straightdope.com/u/js_africanus)\
**Post date:** [August 9, 2005, 2:25pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/10 "2005-08-09T14:25:05Z")

</div>

I’ve continued googling and found a site called Big Lies about Percentage Change. Would you guys please share your thoughts on it and, if your thoughts are favorable, please explain how to apply the method. I will offer a preview, however:

> [@](#):
>
> The standard method of percent change gives inconsistent answers for upward and downward changes because the change in a quantity can be divided by either of two values. The severity of this problem is less when the two possible divisors are nearly the same, (i.e., when the percent change is very small). But for large percent changes we need to correct our method of calculation. A good way to do this is to divide by a single value that is between the initial value and the final value. This would give the same percent changes whether a quantity was increasing or decreasing, and would remove a lot of our objections to the standard method. However, there are a lot of possible numbers between any two numbers, and we need an objective way to choose the correct one.

So suggested divisors are offered:

> [@](#):
>
> Consider the arithmetic mean, for example.  
> …Another possible divisor is the geometric mean.

But these are flawed, but in an interesting way

> [@](#):
>
> An interesting thought is that if we have one value to high, and another value too low, we might take the average of the two values to get a newer and better value. (This idea leads directly to the Newton-Rapson method for square roots.) This in fact is the case.

And so

> [@](#):
>
> By the sandwich theorem in calculus, there must be a limit to the sequence of arithmetic means and to the sequence of geometric means. Further, because the difference between the a’s and the g’s is cut at least in half or less each step, the difference must have a limit of zero. Thus both the a’s and the g’s approach the same limit. We call this limit the arithmetic-geometric mean (AGM).

[homer simpson]Mmmmm…sandwich theorem…[/homer]

And thus:

> [@](#):
>
> Continuing with the previous example, AGM(100,200)= 144.2, so that the percent change is 69.3%. Similarly, the second percent change is 69.3%. So the sum of the two partial changes is 138.6%. Calculating the total percent change requires AGM(100,400)=216.4, yielding a total percent change of 138.6%. We have discovered a divisor that satisfies our goal of having percent changes be additive.

And there’s a handy-dandy formula:

> [@](#):
>
> You do not need to do an iterative procedure to calculate AGM. Karl Gauss discovered that AGM(x1,x2)=(x2-x1)/(ln(x2)-ln(x1)). If you have a calculator with a ln button, this will save you a lot of work when calculating the AGM.

I can do that!

So two key questions about this:

1. Is it true, valid, or whatever term one wishes to use?

2. Just exactly how is it applied? A key problem for me with math was going from the formulas & stuff to actually applying it to a problem. I don’t know why. Maybe there’s a typo, but I cannot get his example to work for me.

Thanks much!!

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [August 9, 2005, 3:07pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/11 "2005-08-09T15:07:08Z")

</div>

Percentage change is defined as (final value - initial value)/initial value. Where’s the choice in divisors?

---

<div class="post-metadata">

**Author:** ![js\_africanus](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@js\_africanus](https://boards.straightdope.com/u/js_africanus)\
**Post date:** [August 9, 2005, 3:46pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/12 "2005-08-09T15:46:36Z")

</div>

I guess I wasn’t aware it was that simple; I’ve probably misspoke in trying to state the question. Here is a better example, analogous to the problem that prompted the question. The numbers are wholly fabricated.

In the U.S., we spend $134 per capita on eye glasses. Michigan spends $198 per capita. Texas spends $377 per capita.

Suppose I wanted to relate the relative sizes in percentages because it’s easy for people to grasp. So I could say that MI spends 64/134\*100=47.7% more per capita than the U.S., and TX spends 90.4% more than MI. But that’s not so hot because there is no first or second number: we could also say that the U.S. spends 32.3% of what MI spends, and MI spends 47.4% of what TX spends. These can be confusing.

Mathcentral also has similar issues when percentage change is considered.

---

<div class="post-metadata">

**Author:** ![nivlac](https://avatars.discourse-cdn.com/v4/letter/n/3bc359/32.png) [@nivlac](https://boards.straightdope.com/u/nivlac)\
**Post date:** [August 9, 2005, 3:48pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/13 "2005-08-09T15:48:05Z")

</div>

**The standard method of percent change gives inconsistent answers for upward and downward changes because the change in a quantity can be divided by either of two values.**

The percentage change is always relative to the initial value. Indeed, you will get different answers if you measure the change relative to the ending value, but no one (except for maybe the author of the aforementioned website) who knows standard practice will do so. Contrary to the above statement, it is \*\*not \*\* the standard method to choose whichever denominator you like. Also, for this reason, the percentage change is undefined when the initial value is zero, and that makes perfect sense.

---

<div class="post-metadata">

**Author:** ![js\_africanus](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@js\_africanus](https://boards.straightdope.com/u/js_africanus)\
**Post date:** [August 9, 2005, 4:21pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/14 "2005-08-09T16:21:24Z")

</div>

Okay. What about my example, though? (And retail markups?)

---

<div class="post-metadata">

**Author:** ![Punoqllads](https://avatars.discourse-cdn.com/v4/letter/p/d2c977/32.png) [@Punoqllads](https://boards.straightdope.com/u/Punoqllads)\
**Post date:** [August 9, 2005, 8:29pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/15 "2005-08-09T20:29:58Z")

</div>

Could you explicitly restate your question, please? Your original question was:

> [@](#):
>
> How does one calculate percentage change with natural logs?

with the answer being, basically, you don’t.

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [August 9, 2005, 8:34pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/16 "2005-08-09T20:34:09Z")

</div>

> [@js\_africanus](#):
>
> I guess I wasn’t aware it was that simple; I’ve probably misspoke in trying to state the question. Here is a better example, analogous to the problem that prompted the question. The numbers are wholly fabricated.
> 
> In the U.S., we spend $134 per capita on eye glasses. Michigan spends $198 per capita. Texas spends $377 per capita.
> 
> Suppose I wanted to relate the relative sizes in percentages because it’s easy for people to grasp. So I could say that MI spends 64/134\*100=47.7% more per capita than the U.S., and TX spends 90.4% more than MI. But that’s not so hot because there is no first or second number: we could also say that the U.S. spends 32.3% of what MI spends, and MI spends 47.4% of what TX spends. These can be confusing.

That’s not a percentage change, though–that’s a ratio, and of course ratios depend on what you’re using as your basis. I’m not aware of any trick that’ll let you divide by any of three numbers and get the same answer.

---

<div class="post-metadata">

**Author:** ![js\_africanus](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@js\_africanus](https://boards.straightdope.com/u/js_africanus)\
**Post date:** [August 9, 2005, 8:55pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/17 "2005-08-09T20:55:24Z")

</div>

> [@ultrafilter](#):
>
> That’s not a percentage change, though–that’s a ratio, and of course ratios depend on what you’re using as your basis. I’m not aware of any trick that’ll let you divide by any of three numbers and get the same answer.

Hmmm…so my options are to overstate or understate, so to speak, without really having a defensible reason to those who prefer the option I don’t choose? Bummer.

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [August 9, 2005, 8:58pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/18 "2005-08-09T20:58:01Z")

</div>

> [@js\_africanus](#):
>
> Hmmm…so my options are to overstate or understate, so to speak, without really having a defensible reason to those who prefer the option I don’t choose? Bummer.

Just state the baseline, and express everything else in terms of percentages higher or lower. There’s no overstating or understating unless you’re using the wrong numbers.

---

<div class="post-metadata">

**Author:** ![js\_africanus](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@js\_africanus](https://boards.straightdope.com/u/js_africanus)\
**Post date:** [August 9, 2005, 9:02pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/19 "2005-08-09T21:02:40Z")

</div>

> [@ultrafilter](#):
>
> Just state the baseline, and express everything else in terms of percentages higher or lower. There’s no overstating or understating unless you’re using the wrong numbers.

In my world lying with statistics really _does_ work. Stating the baseline isn’t going to do much good when someone else just keeps shouting a different percentage figure. That’s why the concept of a comparison that works from both directions is so seductive: it’s a reasonable midpoint and it’s defensible…if it existed.

---

<div class="post-metadata">

**Author:** ![Punoqllads](https://avatars.discourse-cdn.com/v4/letter/p/d2c977/32.png) [@Punoqllads](https://boards.straightdope.com/u/Punoqllads)\
**Post date:** [August 9, 2005, 9:24pm UTC](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175/20 "2005-08-09T21:24:19Z")

</div>

> [@js\_africanus](#):
>
> Hmmm…so my options are to overstate or understate, so to speak, without really having a defensible reason to those who prefer the option I don’t choose? Bummer.

Well, no. Your other option is to not express the difference between the two numbers as a percentage. Take, for instance, your professor’s preference for specifying the difference by using the difference in the orders of magnatude. The trick with orders of magnatude is that you need a scale to go by, and everybody seems to like different scales. Mathematicians like _e_, computer scientists like 2, engineers like 10, etc.

Consider the scale for measuring earthquakes’ power (which uses a base of 10). If one earthquake is of magnatude 10.2, and the other one is of magnatude 10.4, then they’re off by 0.2 orders of magnatude. Now take your example of eyeglasses’ costs. Log[sub]10/sub = 0.17 orders of magnatude difference between MI and US spending. Compare that to log[sub]10/sub = 0.45 orders of magnatude off.

[Next page](https://boards.straightdope.com/t/using-natural-logs-to-calculate-percentage-change/316175.md?page=2)
