用R软件进行计算,说闲话出原始数据对自变量的散点图,代码实现如下:
data9.1<-read.csv("C:/Users/Administrator/Desktop/data9.1.csv",head=TRUE)
attach(data9.1)
plot(t,y)
输出结果为:
从散点图中看到,
y
y
y随时间
t
t
t的变化趋势大致为指数函数形式。另外,易知复合函数
y
=
b
0
b
1
t
y=b_{0}b{1}^{t}
y=b0b1t,增长曲线
y
=
e
x
p
(
b
0
+
b
1
t
)
y=exp(b_{0}+b_{1}t)
y=exp(b0+b1t),指数函数
y
=
b
0
e
x
p
(
b
1
t
)
y=b_{0}exp(b_{1}t)
y=b0exp(b1t)这三个曲线方程实际上是等价的。在本例中,我们取复合函数
y
=
b
0
b
1
t
y=b_{0}b{1}^{t}
y=b0b1t。
以时间
t
t
t为自变量,对数据进行拟合,我们考虑建立简单线性回归模型和复合函数回归模型,其中复合函数
y
=
b
0
b
1
t
y=b_{0}b{1}^{t}
y=b0b1t是可线性化的,只需要对式子两边同时取对数函数即可将其化为
l
n
y
lny
lny关于
t
t
t的线性函数。
代码实现如下:
data9.1<-read.csv("C:/Users/Administrator/Desktop/data9.1.csv",head=TRUE)
attach(data9.1)
lm9.1<-lm(y~t,data9.1)
summary(lm9.1)
anova(lm9.1)
ly<-log(y)
lm9.12<-lm(ly~t)
summary(lm9.12)
anova(lm9.12)
plot(data9.1)
lines(data9.1$t,exp(predict(lm9.12)),col='red')
abline(lm9.1)
detach(data9.1)
输出结果如下:
有输出结果可以知道,线性回归的决定系数
R
2
=
0.8612
R^{2}=0.8612
R2=0.8612,残差平方和
S
S
E
=
8.436
e
+
10
SSE=8.436e+10
SSE=8.436e+10;复合函数回归的决定系数
R
2
=
0.9844
R^{2}=0.9844
R2=0.9844,残差平方和
S
S
E
=
0.3046
SSE=0.3046
SSE=0.3046是按线性化后的回归模型计算的,两者的残差不能直接比较。如果需要进行比较,可以先存储符复合函数的预测值
y
^
=
e
x
p
(
y
^
′
)
\hat{y}=exp(\hat{y}')
y^=exp(y^′),计算残差序列,进而计算得到复合函数的回归残差平方和。
为了直观的说明两个回归的优劣,我们给出模型的拟合图:
可见复合函数的回归更加符合实际的情况,由此得到回归方程为:
y
^
=
24859.62
×
(
1.148
)
t
\hat{y}=24859.62\times(1.148)^{t}
y^=24859.62×(1.148)t