指数回归是一种回归模型,主要用于下列场景:
- 指数增长:开始增长缓慢,然后无限制快速加速;
- 指数衰减:开始快速衰减,然后衰减缓慢直至趋近0.
指数回归模型的方程形式如下:
y = a b x {y = ab^x} y=abx
- y : 响应变量
- x : 预测变量
a,b : 描述x和y关系的回归系数
下面通过R示例展示其实现过程。
指数回归R示例
准备数据
首先创建有x,y组成的模拟数据:
x=1:20
y=c(1, 3, 5, 7, 9, 12, 15, 19, 23, 28, 33, 38, 44, 50, 56, 64, 73, 84, 97, 113)
数据可视化
这里利用散点图展示x, y 直接的关系:
plot(x, y)
从上图中可以看到,两个变量存在清晰的指数增长模型。似乎使用指数回归方程拟合变量关系是不错的选择。
拟合指数回归模型
我们使用lm()函数拟合指数回归模型,取y的自然对数作为响应变量,x作为预测变量:
# 拟合模型
model <- lm(log(y)~ x)
# 查看模型信息
summary(model)
# Call:
# lm(formula = log(y) ~ x)
#
# Residuals:
# Min 1Q Median 3Q Max
# -1.1858 -0.1768 0.1104 0.2720 0.3300
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.98166 0.17118 5.735 1.95e-05 ***
# x 0.20410 0.01429 14.283 2.92e-11 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.3685 on 18 degrees of freedom
# Multiple R-squared: 0.9189, Adjusted R-squared: 0.9144
# F-statistic: 204 on 1 and 18 DF, p-value: 2.917e-11
模型的总体F值为204,对应P值非常小(2.917e-11),表明模型可用。从输出表中可以相应系数,最终指数方程为:
ln(y) = 0.9817 + 0.2041(x)
两边同时应用e,我们可以重写方程为:
y = 2.6689 * 1.2264 x {^x} x
现在我们可以使用该方程预测响应变量.举例x=12, 对应计算出来y值为30.897:
y = 2.6689 * 1.226412 = 30.897
本文参考链接:https://blog.csdn.net/neweastsun/article/details/124916951