0.995527
1.001187
2.721511
0.999997
0.999996
404.495762
0.995527
1.001187
2.721511
0.999997
0.999996
404.495762
The Exponential Regression Calculator fits an exponential model y = a·ebx to your data, where a is the initial value and b is the growth (or decay) rate constant. Exponential regression is essential for modeling phenomena that grow or decay at a rate proportional to their current value, including population growth, radioactive decay, compound interest, bacterial reproduction, viral spread, and chemical reaction kinetics.
The calculator linearizes the exponential model by taking the natural logarithm of Y values, then performs linear regression on (X, ln Y) to determine the parameters. Enter up to 5 data pairs where all Y values must be positive (since the logarithm of zero or negative numbers is undefined).
The exponential regression model is:
$$y = a \cdot e^{bx}$$
Taking the natural logarithm of both sides linearizes the equation:
$$\ln(y) = \ln(a) + bx$$
This is a linear equation in the form \(Y' = A + Bx\), where \(Y' = \ln(y)\), \(A = \ln(a)\), and \(B = b\). Standard linear regression is then applied to the transformed data points \((x_i, \ln(y_i))\) to find the slope B and intercept A using the ordinary least squares formulas:
$$b = B = \frac{n\sum x_i \ln(y_i) - \sum x_i \sum \ln(y_i)}{n\sum x_i^2 - (\sum x_i)^2}$$
$$\ln(a) = A = \overline{\ln(y)} - b\bar{x} \quad \Rightarrow \quad a = e^A$$
The parameter b determines the nature of the curve: when b > 0, the function represents exponential growth (Y increases as X increases); when b < 0, it represents exponential decay (Y decreases toward zero). The parameter a is the Y-value when X = 0 (the initial condition). The doubling time for growth is \(t_d = \ln(2)/b\), and the half-life for decay is \(t_{1/2} = \ln(2)/|b|\).
The R² value is calculated on the original (untransformed) scale by comparing the sum of squared residuals from the exponential predictions to the total sum of squares, providing a direct measure of how well the exponential curve fits the actual data.
Understanding your exponential regression results:
Important considerations: (1) All Y values must be positive for the logarithmic transformation. (2) The linearization gives equal weight to all transformed residuals, which may not minimize residuals on the original scale optimally — for precise work, nonlinear least squares is preferred. (3) Exponential models grow without bound, so extrapolation should be done cautiously. Real-world growth eventually encounters limiting factors (logistics, resources, saturation).
Inputs
Results
A bacterial colony is measured hourly. The fit y = 100.31·e^(0.7013x) shows a doubling time of ln(2)/0.7013 ≈ 0.99 hours. The colony approximately doubles every hour, consistent with binary fission. R² = 0.9999 confirms excellent exponential fit.
Inputs
Results
Radioactive substance measured every 5 years. The negative b = -0.0693 yields a half-life of ln(2)/0.0693 ≈ 10.0 years. Starting from ~1000 units, the substance halves every decade. R² ≈ 1.0 confirms pure exponential decay.
The exponential model y = a·e^(bx) is always positive (since e^(bx) > 0 for all x and a > 0). The fitting method takes the natural logarithm of Y, which is only defined for positive numbers. If any Y value is zero or negative, ln(Y) is undefined. If your data contains zeros, you might add a small constant before fitting, but this is a workaround that can bias results. Consider a different model (linear, polynomial) if Y values can be non-positive.
Exponential regression fits y = a·e^(bx), where the variable is in the exponent. Power regression fits y = a·x^b, where the variable is the base. Exponential growth is faster than any power function for large x. Use exponential when the rate of change is proportional to the current value (compound growth). Use power when the relationship follows a scaling law (doubling input multiplies output by a fixed factor).
For exponential growth (b > 0), the doubling time is: \(t_d = \ln(2) / b \approx 0.693 / b\). For exponential decay (b < 0), the half-life is: \(t_{1/2} = \ln(2) / |b| \approx 0.693 / |b|\). These formulas follow directly from setting e^(bt) = 2 (doubling) or e^(bt) = 0.5 (halving) and solving for t.
The standard model y = a·e^(bx) decays toward zero. If your data decays toward a non-zero baseline c, you need the model y = a·e^(bx) + c, which has three parameters and cannot be linearized by simple log transformation. This requires nonlinear regression methods (iterative optimization). As a workaround, if you know the baseline c, you can subtract it from all Y values and then fit the standard exponential model to (y - c).
This calculator reports R² on the original scale. The regression is performed on the log-transformed data, but R² is calculated by comparing actual Y values to the predicted exponential values. This is more intuitive and directly meaningful. Note that R² on the log scale (from the linear fit of ln(y)) may differ from R² on the original scale, especially when the data has high variability.
Exponential regression fails when: (1) the data does not follow an exponential pattern (e.g., linear, logistic, or polynomial); (2) Y values span both positive and negative ranges; (3) the data has a saturation effect (growth slows and levels off) — use logistic regression instead; (4) there are outliers in Y that become amplified or suppressed by the log transformation. Always plot your data first and verify the exponential assumption visually before fitting.
Roboculator Team
The Roboculator Team explains calculations, planning tools, and practical formulas in clear language for real-life situations.
How helpful was this calculator?
Be the first to rate!
Linear Regression Calculator
Regression & Correlation Analysis
Simple Linear Regression Calculator
Regression & Correlation Analysis
Multiple Regression Calculator
Regression & Correlation Analysis
Polynomial Regression Calculator
Regression & Correlation Analysis
Logarithmic Regression Calculator
Regression & Correlation Analysis
Power Regression Calculator
Regression & Correlation Analysis