1、经济预测概述
经济预测有三个要素,实际资料是预测的依据;经济理论是预测的基础;数学模型是预测的手段;
经济预测的内容包括生产和资源预测,市场预测,国民收入分配预测,居民生活质量预测等。
预测步骤:第一步确定预测目标,第二步收集和整理相关资料,第三步选择预测方法,第四步建立预测模型,第五步评价预测模型,第六步利用模型进行预测并分析预测结果。
在进行经济预测的时候,首先要学会对统计数据进行处理:
2、统计数据处理
example:
分析“工商银行”、“建设银行”和“中国银行”三只股票的收盘价
>> A=[4.55 5.68 4.02
4.72 5.69 4.18
4.86 6.16 4.34
4.69 5.19 4.17
4.66 5.85 4.12];
>> [m,n]=size(A);
>> t=1:m;
>> x1=A(:,1);
>> x2=A(:,2);
>> x3=A(:,3);
>> plot(t,x1,'-ob',t,x2,'-+k',t,x3,'-^r')
>> legend('工商银行','建设银行','中国银行')
>> xlabel('时间/天')
>> ylabel('收盘价/元')
3、异常点数据鉴别
在进行预测前,我们要对收集的数据进行鉴别,确定出一些异常的数据。
举例:
寻找异常点,并进行剔除,异常点寻找的第一种方法是图形观察法:
example:
x=[57346.5 57997.61 58844.99 57691.64 58438.53
60259.53...
63040.51 72896.19 61949.81
60772.46 59075.97 58604.26];
plot(x,'o-')
xlabel('时间')
ylabel('货币供应量/亿元')
运行得到图片:
从图片中可以看出第八个点的数据严重偏大,说明该点的数据不能反映我国2月的货币供应量的正常情况,从而视为异常值,要进行处理。
异常点鉴别的第二种方法:统计滤波法
该方法是利用已有的数据,确定数据允许变动的范围,即上限和下限,凡是在这个范围以外的数据就被认为是异常数据。该方法需要根据样本容量来查k值表,确定k值。
假设有10个样本数据,通过该方法来确定出异常点:
X=[31 34.5 34.3 24 30.8 31.8 32.1 36 42 35]
x=mean(X)
s=std(X)
p1=0.95
p2=0.99
n=10
k=4.43
yd=x-k*s
yu=x+k*s
a=find(Xyu)
z=X(a)
t=1:10
plot(t,X,'o-')
xlabel('序号')
ylabel('产品数量值')
在脚本中输入上述代码,通过运行得到图片:
从图片中可以看出,第4个点和第9个点与其他点的偏离程度较大,为异常点。(注:当样本量为10,p1取0.95
p2取0.99的时候,k为4.43)
第三种寻找异常值的方法为拉依达准则,该准则是不适用与样本个数小于10的情况,当样本足够大的时候,使用该准则会比统计滤波法算法更加简单,取20个样本做分析。
X=[31 34.5 34.3 24 30.8 31.8 32.1 36 42 35 37 34 36 34.2 36 28 33
31 35 33.8]
x=mean(X)
s=std(X)
a=find(abs(X-x)>3*s)
z=X(a)
t=1:20
plot(t,X,'o-')
xlabel('序号')
ylabel('产品数量值')
得到:
从图片也可以看出4号和9号为异常点。
4、经济数据预处理的方法:
剔除法、还原法、比例法等
剔除法是去掉那些不可以如实反映预测对象正常发展趋势的数据,该方法常用于时间序列数据,但是具有破坏时间序列数据连续性的缺点。
还原法就是把数据处理成没有突变因素影响时本应表现的数值。比如可以用异常数据前后两期数据的算术平均值或者几何平均值进行数据还原。
对于还原以后的数据组,可以使用corrcoef求数据间的相关系数,来观察处理以后的结果。
example:
>> x=[14200.4 14474.2 14739.3 15236.4 14875 15307.1 15808.9
18098 17327.3 17746.7];
>> y=[15305.55 15236.30 16485.38 23886.98 17939.18 17894.10
20087.09 37075.11 22990.51 22699.63];
>> r=corrcoef(x,y)
得到结果:
r =
1.0000 0.8115
0.8115 1.0000
故在没有处理数据之前,x和y的相关系数为0.8115
那么我们对y4数据和y8数据进行调整,利用的是还原法(算术平均值)
>> y4=(x(3)*y(3)+x(5)*y(5))/(2*x(4));
>> y8=(x(7)*y(7)+x(9)*y(9))/(2*x(8));
>> y(4)=y4;
>> y(8)=y8;
>> r1=corrcoef(x,y)
得到相关系数为:
r1 =
1.0000 0.8735
0.8735 1.0000
即:0.8735,通过还原法,使得处理以后的数据的相关性程度更强,再来构建模型,效果会更好。
5、数据初始化处理的方法:
归一化法:
归一化法是用来消除指标之间的量纲差异的方法,用指标样本值除以该指标所有样本数据之和即可。
MATLAB命令:Y=X./sum(X)
当然也可以把所有的数据分别除以x中的第一个数据
MATLAB命令:Y=X./X(1)
标准化法:
这个方法是目前普遍使用的无量纲化方法,用x值减去x的平均值,再除以标准差,通过标准化以后。指标的平均值就是为0,方差就是为1(概率论知识)
MATLAB命令:Y=(X-mean(X))./std(X)
一个比较合理的评价模型的方法,是在进行预测的时候,并不将所有用来估计参数的观察值都用在预测上,而是将某些数据保留下不用,用于检测得到的预测精度。
微信公众号:LPstyle
QQ:1257992189(备注:软件交流)