Chapter 14. Functional Forms: Logs, Quadratics, and Elasticities

Chapter Purpose

A regression model may be statistically correct but economically inappropriate if the wrong functional form is chosen. This chapter compares linear, quadratic, and log-log specifications using the actual Milk Data dataset.

Applied Question

Is a linear model the best way to describe the relationship between volume and price?

Linear Model

The simple linear model is:

\[ Price = 516.6 + 417.0 Volume1000 \]

with:

\[ R^2 = 0.274 \]

It assumes a constant marginal effect of volume.

Quadratic Model

A quadratic model allows the marginal effect to change:

\[ Price = \beta_0 + \beta_1 Volume1000 + \beta_2 Volume1000^2 + u \]

milk_data["Volume1000_sq"] = milk_data["Volume1000"] ** 2
Xq = sm.add_constant(milk_data[["Volume1000", "Volume1000_sq"]])
model_quad = sm.OLS(milk_data["Price"], Xq).fit()
print(model_quad.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  Price   R-squared:                       0.312
Model:                            OLS   Adj. R-squared:                  0.307
Method:                 Least Squares   F-statistic:                     57.89
Date:                Thu, 11 Jun 2026   Prob (F-statistic):           1.87e-21
Time:                        06:53:43   Log-Likelihood:                -2074.5
No. Observations:                 258   AIC:                             4155.
Df Residuals:                     255   BIC:                             4166.
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
=================================================================================
                    coef    std err          t      P>|t|      [0.025      0.975]
---------------------------------------------------------------------------------
const           135.4330    114.343      1.184      0.237     -89.744     360.611
Volume1000      978.0156    154.381      6.335      0.000     673.992    1282.039
Volume1000_sq  -135.9566     36.045     -3.772      0.000    -206.941     -64.973
==============================================================================
Omnibus:                      219.467   Durbin-Watson:                   1.727
Prob(Omnibus):                  0.000   Jarque-Bera (JB):             2731.136
Skew:                           3.552   Prob(JB):                         0.00
Kurtosis:                      17.268   Cond. No.                         24.3
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

Actual quadratic results:

Variable Coefficient
Volume1000 978.02
Volume1000² -135.96

The negative squared term indicates diminishing marginal effects. Price rises with volume, but the rate of increase becomes smaller as volume increases.

Log-Log Model

The log-log model is:

\[ \ln(Price) = \beta_0 + \beta_1 \ln(Volume) + u \]

milk_data["log_price"] = np.log(milk_data["Price"])
milk_data["log_volume"] = np.log(milk_data["Volume"])
Xlog = sm.add_constant(milk_data["log_volume"])
model_log = sm.OLS(milk_data["log_price"], Xlog).fit()
print(model_log.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:              log_price   R-squared:                       0.655
Model:                            OLS   Adj. R-squared:                  0.654
Method:                 Least Squares   F-statistic:                     486.7
Date:                Thu, 11 Jun 2026   Prob (F-statistic):           3.78e-61
Time:                        06:53:43   Log-Likelihood:                -196.99
No. Observations:                 258   AIC:                             398.0
Df Residuals:                     256   BIC:                             405.1
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const          1.4065      0.237      5.941      0.000       0.940       1.873
log_volume     0.7588      0.034     22.062      0.000       0.691       0.827
==============================================================================
Omnibus:                       92.697   Durbin-Watson:                   1.598
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              229.105
Skew:                           1.702   Prob(JB):                     1.78e-50
Kurtosis:                       6.119   Cond. No.                         51.3
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

Actual log-log result:

\[ \hat{\beta}_1 = 0.759 \]

with:

\[ R^2 = 0.655 \]

Elasticity Interpretation

In a log-log model, the coefficient is an elasticity.

A 1% increase in package volume is associated with an average increase of approximately 0.759% in price.

If volume increases by 10%, price is expected to increase by about 7.6%.

Comparing Models

Model
Linear 0.274
Multiple Linear 0.302
Log-Log 0.655

The log-log specification explains substantially more price variation than the level model.

Why the Elasticity Is Less Than One

Because 0.759 is less than one, price increases proportionally less than volume. This suggests quantity discounts or scale economies in package pricing.

Choosing Functional Forms

Functional form selection should be based on economic theory, visual inspection, statistical performance, and interpretability. A higher R² alone is not enough.

Common Mistakes

WarningCommon Mistake 1

Using logarithms when variables contain zeros or negative values.

WarningCommon Mistake 2

Interpreting elasticity coefficients as ordinary level coefficients.

WarningCommon Mistake 3

Choosing a model solely because it has a higher R².

Key Takeaways

  • Functional form matters.
  • The simple linear model explains 27.4% of variation.
  • The log-log model explains 65.5% of variation.
  • The estimated elasticity is 0.759.
  • The quadratic specification reveals diminishing marginal effects.
  • The Milk Data strongly support a nonlinear relationship.