Skip to content

Functional Form: Logs and Elasticities

Taking the natural log of a variable changes how a coefficient is read. With a log-level model log(y)=β0+β1x+u\log(y)=\beta_0+\beta_1 x+u, a one-unit rise in xx gives roughly a β1×100\beta_1 \times 100 percent change in yy (a semi-elasticity). With a log-log model, β1\beta_1 is an elasticity, the percent change in yy per percent change in xx. Logs are common for variables with skewed, positive distributions such as wages, prices, and firm size, because they pull in long right tails and make constant-percentage effects linear in parameters.

Try it yourself

Model specification sandbox

One model, many specifications. See how functional form, a squared term, and a dummy variable each change what a coefficient means and how the fitted line bends. The same seeded data sit under all three views.

Estimated slope β̂β̂ = 0.630
414253545481216xy
intercept β̂₀ 1.647slope β̂₁ 0.630
Functional form
ln(y) = β₀ + β₁·ln(x)
slope β̂₁ = 0.630
Elasticity. Both sides logged, so β̂₁ = 0.630 is the % change in y per % change in x, directly and unit-free. A 1% rise in x moves y by about 0.63%.
Try this

Discussion. The fitted curve barely moves, yet the slope's units change with every form. When would you report an elasticity rather than a dollar effect, and why is 100·β̂ only an approximation to the exact 100·(e^β̂ − 1)?

OLS is re-fit by least squares in the chosen form's transformed space, then mapped back to the raw axes. For log–level, a one-unit rise in x gives %Δy = 100·(e^β̂ − 1) exactly, with 100·β̂ as the first-order approximation. For log–log, β̂ is the elasticity directly (the % change in y per % change in x), exact at the margin.

Why it matters

Logs turn multiplicative stories into additive ones. Saying a year of schooling raises wages by about 8 percent is more natural than saying it adds a fixed dollar amount that is the same for a CEO and an intern. When a variable is strictly positive and spans several orders of magnitude, its log is usually closer to symmetric, the error term behaves better, and one slope describes a proportional effect that holds across the whole range.

Formulas

Four functional forms
log(y)=β0+β1log(x)+uvs.log(y)=β0+β1x+u\log(y)=\beta_0+\beta_1 \log(x)+u \quad\text{vs.}\quad \log(y)=\beta_0+\beta_1 x+u
Log-log: β1\beta_1 is the elasticity. Log-level: β1×100\beta_1 \times 100 is the percent change in yy per one-unit rise in xx.
Exact percent change (semi-elasticity)
%Δy=100(eβ1Δx1)\%\Delta y = 100\,\bigl(e^{\beta_1 \Delta x}-1\bigr)
The product β1×100\beta_1 \times 100 is a first-order approximation. For larger β^1\hat{\beta}_1 use the exact exponential form, since the approximation overstates the true percent change.

Worked examples

Scenario

Estimate the return to education on a wage equation in Stata.

Solution

Run `regress lwage educ exper`, where `lwage = ln(wage)`. A coefficient of about 0.083 on `educ` means another year of schooling is associated with about an 8.3 percent higher wage, holding experience fixed. The exact effect is (e0.0831)×1008.7(e^{0.083}-1)\times 100\approx 8.7 percent.

NoteGenerate the dependent variable first with `gen lwage = ln(wage)`.
Scenario

A constant-elasticity demand or cost relationship between firm sales and R&D spending.

Solution

Run `regress lsales lrd`. A slope of about 1.08 says a 1 percent rise in R&D is associated with a 1.08 percent rise in sales. Because both sides are logged, the coefficient is a unit-free elasticity that does not depend on the currency or scale of either variable.

Common mistakes

  • Treating the log-level coefficient as a level effect. A value of 0.083 does not mean wages rise by 0.083 dollars or by 8.3 units. It means roughly 8.3 percent.
  • Thinking β1×100\beta_1 \times 100 is exact for any size of change. It is a linear approximation that drifts as β^1\hat{\beta}_1 grows. Beyond about 0.1, prefer (eβ^11)×100(e^{\hat{\beta}_1}-1)\times 100.
  • Logging a variable that takes zero or negative values. log(0)\log(0) is undefined, so dummies, net income, and returns that can be negative usually stay in levels rather than getting an ad hoc log(1+x)\log(1+x) patch.
  • Believing you can compare R2R^2 across a level-yy model and a log(y)\log(y) model. The dependent variable differs, so the two R2R^2 values are not comparable.

Revision bullets

  • Log-log slope is an elasticity (percent per percent).
  • Log-level slope times 100 is a semi-elasticity (percent per unit).
  • Level-log slope divided by 100 is the unit change in yy per 1 percent rise in xx.
  • Use logs for skewed, strictly positive variables (wages, prices, size).
  • Exact percent change uses (eβ^11)×100(e^{\hat{\beta}_1}-1)\times 100, not just the linear approximation.

Quick check

In `regress lwage educ`, the coefficient on `educ` is 0.06. The best reading is:

A log-log regression of quantity on price gives a slope of -0.8. This means:

Connected topics

Sources

  1. Wooldridge (2019), Ch. 2 & 6
    Wooldridge, Jeffrey M. Introductory Econometrics: A Modern Approach. 7th ed. Cengage, 2019.
    Section 2.4 and Chapter 6 develop the level-level, log-level, level-log, and log-log forms and the semi-elasticity versus elasticity reading.
  2. Wooldridge (2019), §6.2
    Wooldridge, Jeffrey M. Introductory Econometrics: A Modern Approach. 7th ed. Cengage, 2019.
    Discusses why logs are used for skewed positive variables and the approximation error in the linear semi-elasticity.
How to cite this page
Dr. Phil's Quant Lab. (2026). Functional Form: Logs and Elasticities. Derivatives Atlas. https://phucnguyenvan.com/concept/efm-logs-elasticity