回归分析是一种应用极为广泛的数量分析方法,主要用于确定2种或2种以上变量间相互依赖的定量关系。回归分析的基本思想是:虽然自变量和因变量之间没有严格的、确定性的函数关系,但可以设法找出最能代表它们之间关系的数学表达形式。建立线性回归模型后,根据实测数据求解模型的各个参数,然后评价回归模型能否很好地拟合实测数据,如果能,能可以根据自变量作进一步预测。
由于客运量的影响因素复杂,其变化呈现一定的随机波动特点,因而预测结果会产生误差。而马尔科夫链是根据系统状态之间的转移矩阵来描述一个随机动态系统未来的发展状态,转移矩阵反映了各个状态之间的规律性。马尔科夫链过程最主要的特征就是无后效性,即t时刻之后的状态至于t时刻的状态有关,而与以前的状态无关。因此,可以通过对线性回归预测模型的结果进行马尔科夫链进来提高其预测的准确定。
初始数据:
traffc.csv
year,traffic,distance
2001,105155,7.01
2002,105606,7.19
2003,97260,7.3
2004,111764,7.44
2005,115583,7.54
2006,125656,7.71
2007,135670,7.8
2008,146193,7.97
2009,153451,8.55
2010,167609,9.12
traffic单位为万人,distance单位为万km
开始R语言操作:
1.导入数据
mydata <- read.table("/Users/hs/Desktop/traffic.csv",header=TRUE,sep=",")
2.线性拟合
fit <- lm(traffic ~ distance, data=mydata )
3.查看fit
fit
Coefficients:
(Intercept) distance
-141661 34530
得到traffic = 34530 * distance - 141661
4.查看fit详情
summary(fit)
Residuals:
Min 1Q Median 3Q Max
-13147.4 -3386.0 -560.9 3843.8 12650.6
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -141661 30909 -4.583 0.00179 **
distance 34530 3969 8.700 2.38e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7708 on 8 degrees of freedom
Multiple R-squared: 0.9044, Adjusted R-squared: 0.8924
F-statistic: 75.68 on 1 and 8 DF, p-value: 2.377e-05
5.计算回归方程得到的traffic
fitted(fit)
1 2 3 4 5 6 7 8 9 10
100393.7 106609.1 110407.4 115241.6 118694.5 124564.6 127672.3 133542.4 153569.7 173251.7
6.计算回归方程和实际traffic的差值
residuals(fit)
1 2 3 4 5 6 7 8 9 10
4761.2933 -1003.0836 -13147.3695 -3477.5515 -3111.5386 1091.3832 7997.6948 12650.6166 -118.7089 -5642.7358
7.计算回归方程和实际traffic的差值比例
residuals(fit)/mydata$traffic*100,(*100得到百分比)
1 2 3 4 5 6 7 8 9 10
4.52788104 -0.94983578 -13.51775597 -3.11151308 -2.69203831 0.86854841 5.89496186 8.65336684 -0.07735951 -3.36660666
8.马尔科夫预测模型
将7得到的比例划分为4个状态
状态 | 状态区间% | 含义 |
1 | [-15~-10] | 显著下降 |
2 | (-5~0] | 下降 |
3 | (0~5] | 增长 |
4 | (5,10] | 显著增长 |
根据上表可以得到历年状态变更表
2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 |
3 | 2 | 1 | 2 | 2 | 3 | 4 | 4 | 2 | 2 |
合计所有状态转移情况
项目 | 状态1 | 状态2 | 状态3 | 状态4 |
状态1 | 0 | 1 | 0 | 0 |
状态2 | 1 | 2 | 1 | 0 |
状态3 | 0 | 1 | 0 | 1 |
状态4 | 0 | 1 | 0 | 1 |
转换为概率表
项目 | 状态1 | 状态2 | 状态3 | 状态4 |
状态1 | 0 | 1 | 0 | 0 |
状态2 | 0.25 | 0.5 | 0.25 | 0 |
状态3 | 0 | 0.5 | 0 | 0.5 |
状态4 | 0 | 0.5 | 0 | 0.5 |
9.由于2010年处于状态2,则转移概率为[0.25,0.5,0.25,0]
注意转移概率是从实际客运量到回归公式,所以要列方程如下:
假设2010年客运量为x
则状态1中值为(1-12.5%)x
状态2中值为(1-0.25%)x
状态3中值为(1+0.25%)x
得到方程
0.25*(1-12.5%)x+0.5*(1-2.5%)x+0.25*(1+2.5%)x=34530*distance-141661
其中distance根据公布的数据,2011年铁路新增线路2022公里,即distance=9.12+0.2022=9.3222
求得0.9625x=180234.6,x=187256.7即为2011年预测客运量