Home » Exponential Regression in Python (Step-by-Step)

Exponential Regression in Python (Step-by-Step)

by Tutor Aspire

Exponential regression is a type of regression that can be used to model the following situations:

1. Exponential growth: Growth begins slowly and then accelerates rapidly without bound.

2. Exponential decay: Decay begins rapidly and then slows down to get closer and closer to zero.

The equation of an exponential regression model takes the following form:

y = abx


  • y: The response variable
  • x: The predictor variable
  • a, b: The regression coefficients that describe the relationship between x and y

The following step-by-step example shows how to perform exponential regression in Python.

Step 1: Create the Data

First, let’s create some fake data for two variables: x and y:

import numpy as np

x = np.arange(1, 21, 1)
y = np.array([1, 3, 5, 7, 9, 12, 15, 19, 23, 28,
              33, 38, 44, 50, 56, 64, 73, 84, 97, 113])

Step 2: Visualize the Data

Next, let’s create a quick scatterplot to visualize the relationship between x and y:

import matplotlib.pyplot as plt

plt.scatter(x, y)

From the plot we can see that there exists a clear exponential growth pattern between the two variables.

Thus, it seems like a good idea to fit an exponential regression equation to describe the relationship between the variables as opposed to a linear regression model.

Step 3: Fit the Exponential Regression Model

Next, we’ll use the polyfit() function to fit an exponential regression model, using the natural log of y as the response variable and x as the predictor variable:

#fit the model
fit = np.polyfit(x, np.log(y), 1)

#view the output of the model

[0.2041002  0.98165772]

Based on the output, the fitted exponential regression equation can be written as:

ln(y) = 0.9817 + 0.2041(x)

Applying e to both sides, we can rewrite the equation as:

y = 2.6689 * 1.2264x

We can use this equation to predict the response variable, y, based on the value of the predictor variable, x. For example, if x = 12, then we would predict that y would be 30.897:

y = 2.6689 * 1.226412 = 30.897

Bonus: Feel free to use this online Exponential Regression Calculator to automatically compute the exponential regression equation for a given predictor and response variable.

Additional Resources

How to Perform Simple Linear Regression in Python
How to Perform Polynomial Regression in Python
How to Perform Quantile Regression in Python

You may also like