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
where:
- 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) plt.show()
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 print(fit) [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