应用时间序列分析(王燕)学习笔记1

第一章 时间序列分析简介

按照时间的顺序把随机事件变化发展的过程记录下来就构成了一个时间序列。对时间序列进行观察、研究、找寻它变化发展的规律,预测它将来的走势就是时间序列分析。

描述型时序分析:通过直观的数据比较或绘图观测,寻找序列中蕴含的发展规律。例如19世纪中后叶,德国药剂师、业余天文学家施瓦贝(S.H. Schwbe)运用这种方法经过几十年不断的观察、记录,发现了太阳黑子的活动具有11年左右的周期。描述性时序分析法具有操作简单、直观有效的特点,从史前直到现在一直被人们广为使用,它通常是人们进行统计时序分析的第一步。

统计时序分析:为了更准确的估计随机序列发展变化的规律,从20世纪20年代开始,学术界利用统计学原理分析时间序列。研究的的重心从表面现象的总结转移到分析序列值内在的相关关系上,由此开辟了一门应用统计学科—时间序列分析。
纵观时间序列分析方法的发展历史,可以将时间序列分析方法分为两大类。
一:频域分析方法
频域分析方法(frequency domain)也被称为“频谱分析”或“谱分析”(spectral Analysis)方法

二:时域分析方法
始于分析方法(time domain)分析方法主要从序列自相关的监督揭示时间序列的发展规律。相对于谱分析方法,它具有理论基础扎实,操作步骤规范、分析结果易于解释的优点。
时域分析方法具有相对固定的分析套路,通常都遵循如下分析步骤:

  1. 考察观察值的特征。
  2. 根据序列的特征选择适当的拟合模型。
  3. 根据序列的观察数据确定模型的口径。
  4. 检验模型,优化模型。
  5. 利用拟合好的模型来推断序列其他的统计性质或预测序列将来的发展。
    应用时间序列分析(王燕)学习笔记1_第1张图片
    应用时间序列分析(王燕)学习笔记1_第2张图片
    时间序列分析软件:S-plus,matlab,Gauss,TSP,Eviews和SAS

在SAS系统中有一个专门的模块:SAS/ETS(Ecomometric & Time Series),这是一个专门进行计量经济与时间序列分析的软件。SAS/ETS编程语言简洁,输出功能强大,分析结果精确,是进行时间序列分析与预测的理想软件。由于SAS系统具有全球一流的数据仓库功能,因此在进行海量数据的时间序列分析时它具有其他软件无法比拟的优势。
应用时间序列分析(王燕)学习笔记1_第3张图片
应用时间序列分析(王燕)学习笔记1_第4张图片

proc print data=example1_1;                                                                                                             
run;                                                                                                                              

应用时间序列分析(王燕)学习笔记1_第5张图片
导出数据库文件成为Excel

PROC EXPORT DATA= WORK.EXAMPLE1_1 
            OUTFILE= "C:\Users\Administrator\Desktop\example1_1.xls" 
            DBMS=EXCEL REPLACE;
     RANGE="test"; 
RUN;

时间序列数据集的处理

一、间隔函数的使用
对于等时间的间隔数据,SAS提供了一种间隔函数INTNX,它可以根据需要自动产生等时间间隔的时间数据。
`data example_2;
input price;
time=intnx(‘month’,’01jan2005’d,n-1);
format time monyy.;
card;
3.41
3.45
3.42
3.53
3.45
;
proc print data=example_2;
run;

`
应用时间序列分析(王燕)学习笔记1_第6张图片

二、序列变换
对时序数据进行变换。

data example1_3;                                                                                                                        
input price;                                                                                                                            
logprice=log(price);                                                                                                                    
time=intnx('month','01jan2005'd,_n_-1);                                                                                                 
format time monyy.;                                                                                                                     
card;                                                                                                                                   
3.41                                                                                                                                    
3.45                                                                                                                                    
3.42                                                                                                                                    
3.53                                                                                                                                    
3.45                                                                                                                                    
;                                                                                                                                       
proc print data=example1_3;                                                                                                             
run;                                                                                                                                



应用时间序列分析(王燕)学习笔记1_第7张图片

子集,有时我们只需要一个时间序列中的部分序列值,这时可以在DATA步中建立一个子集。

data example_4;                                                                                                                         
set example1_3;  /*example_4 is a set of example1_3 f*/                                                                                 
keep time logprice;/* the two variables are keeped */                                                                                   
where time>='01mar2005'd;                                                                                                               
proc print data=example_4;                                                                                                              
run;  

应用时间序列分析(王燕)学习笔记1_第8张图片
应用时间序列分析(王燕)学习笔记1_第9张图片

你可能感兴趣的:(SAS)