1 目的
利用普通最小二乘法构建某乐队 CD 盘销售量及其影响变量的回归模型,发 在存在序列相关,故分别采取迭代法及一阶差分法处理数据,进行模型优化,最终结合自相 关影响、回归误差及方法的简便性方面考虑。
2 数据背景
某乐队经理研究其乐队 CD 盘的销售额(y yy)。两个有关的影响变量是每 周演出场次x 1 x_1x1和乐队网站的周点击率 x 2 x_2x2。
3 建模分析
3.1 理论模型
设回归方程为:
3.2 普通最小二乘回归
运行程序:
1. data<-read.csv("G:\\某乐队 CD 盘销售情况.csv") #数据读取 2. names(data) <- c("周次","y","x1","x2") #列命名 3. fm=lm(y~x1+x2,data=data) #最小二乘回归 4. summary(fm) #结果
运行结果:
Call: lm(formula = data$y ~ data$x1 + data$x2, data = data) Residuals: Min 1Q Median 3Q Max -747.71 -229.80 -2.14 267.23 547.68 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -574.0550 349.2701 -1.644 0.1067 x1 191.1001 73.3090 2.607 0.0121 * x2 2.0451 0.9107 2.246 0.0293 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 329.7 on 49 degrees of freedom Multiple R-squared: 0.2928, Adjusted R-squared: 0.264 F-statistic: 10.15 on 2 and 49 DF, p-value: 0.0002057
结果见表1所示。
表1 最小二乘回归模型显著性检验表
由运行结果可以知道,此时的回归方程为:
3.2 残差图检验序列相关性
运行程序:
1. par(mfrow = c(1,3)) #1×3 画布 2. plot(fm,which = 1) 3. x<-fm$residuals[1:51] 4. y<-fm$residuals[2:52] 5. plot(x,y,xlab = "e(t-1)",ylab ="e(t)") #残差图,横坐标为 e(t-1),纵坐标为 e(t) 6. lines(lowess(x,y),col="red",lwd="2") #添加拟合曲线 7. abline(h = 0, v = 0, col = "gray60") #添加坐标轴 8. plot(data$周次,fm$residuals,type='b',xlab = "时间",ylab ="e(t)") 9. #残差图,横坐标为序号,纵坐标为 e(t) 10. abline(h = 0, v = 0, col = "gray60") #添加坐标轴
运行结果:
图1 残差图
图 1 中残差图纵坐标选取残差值,横坐标分别选取y yy 拟合值、et−1 ,周次 序列,由残差图可以看出拟合值残差项存在偏移现象;(et−1,et) 散点图大部分点落 在第Ⅰ、Ⅲ象限;按照时间序列绘制的回归残差项{t}et 随着时间的变化逐次变化且几 个正的{t}et跟着几个负的,综上,随机扰动项 {t}ϵt之间存在序列正相关。
3.3 DW 诊断检验序列自相关
运行程序:
1. library(zoo) #加载包 2. library(lmtest) #加载包 3. dwtest(fm,alternative = "two.sided") #DW 检验
运行结果:
Durbin-Watson test data: fm DW = 0.74524, p-value = 3.514e-07 alternative hypothesis: true autocorrelation is not 0
程序运行:
1. x1t<-data$x1[2:52] 2. x1t.<-data$x1[1:51] 3. x2t<-data$x2[2:52] 4. x2t.<-data$x2[1:51] 5. yt<-data$y[2:52] 6. yt.<-data$y[1:51] 7. x1t..<-x1t-p*x1t. 8. x2t..<-x2t-p*x2t. 9. yt..<-yt-p*yt. 10. new<-data.frame(cbind(yt..,x1t..,x2t..)) 11. lm.new<-lm(yt..~x1t..+x2t..,data=new) 12. summary(lm.nxw) 13. dwtest(lm.new,alternative = "two.sided") #DW 检验 14. newe<-resid(lm.new) #存储残差
运行结果:
Call: lm(formula = yt.. ~ x1t.. + x2t.., data = new) Residuals: Min 1Q Median 3Q Max -496.06 -228.25 40.02 180.34 574.87 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -178.8370 90.3656 -1.979 0.0536 . x1t.. 211.1114 47.7492 4.421 5.6e-05 *** x2t.. 1.4365 0.6287 2.285 0.0268 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 257.9 on 48 degrees of freedom Multiple R-squared: 0.4731, Adjusted R-squared: 0.4511 F-statistic: 21.55 on 2 and 48 DF, p-value: 2.098e-07 > dwtest(lm.new,alternative = "two.sided") #DW 检验 Durbin-Watson test data: lm.new DW = 1.7162, p-value = 0.3612 alternative hypothesis: true autocorrelation is not 0
迭代法检验结果见表2所示。
表2 迭代法显著性检验表
此时回归方程为:
还原为原始变量方程为:
3.5一阶差分处理序列相关性
运行程序:
1. x1c<-x1t-x1t. 2. x2c<-x2t-x2t. 3. yc<-yt-yt. 4. new1<-data.frame(cbind(yc,x1c,x2c)) 5. lm.new1<-lm(yc~x1c+x2c-1,data=new1) 6. summary(lm.new1) 7. dwtest(lm.new1,alternative = "two.sided") #DW 检验 8. newe1<-resid(lm.new1) #存储残差
运行结果:
Call: lm(formula = yc ~ x1c + x2c - 1, data = new1) Residuals: Min 1Q Median 3Q Max -538.97 -201.04 -16.02 200.08 624.32 Coefficients: Estimate Std. Error t value Pr(>|t|) x1c 210.1193 43.6913 4.809 1.48e-05 *** x2c 1.3966 0.5769 2.421 0.0192 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 281 on 49 degrees of freedom Multiple R-squared: 0.5106, Adjusted R-squared: 0.4907 F-statistic: 25.57 on 2 and 49 DF, p-value: 2.489e-08 > dwtest(lm.new1,alternative = "two.sided") #DW 检验 Durbin-Watson test data: lm.new1 DW = 2.0404, p-value = 0.6845 alternative hypothesis: true autocorrelation is not 0
一阶差分法显著性检验结果见表3所示。
表3 一阶差分法显著性检验表
3.6 回归方程优良性比较
通过以上实验结果表明,原始数据直接进行普通最小二乘法拟合回归方程, 数据存在自相关性。经过迭代法和一阶差分法均能消除自相关性,接下来对两种 方法所建的回归方程进行优良性比较,见表4。
表4 回归方程优良性对比表
由表 4 可以看出,两种方法得到的 DW 值均在(1.63,2.37)之间,即均消除 了自相关影响,其中差分法得出的 DW=0.0404 最大,及差分法对自相关的影响消 除得最彻底,但 σ ^ \hat \sigmaσ^ 相对来说也更大,即拟合效果并不好,综合自相关影响、回归误 差及方法的简便性考虑,针对此问题,迭代法相对差分法的效果更好。