楼主: zhao_amy_PKU
10045 7

[有偿编程] SAS PROC ARIMA 的代码 [推广有奖]

  • 0关注
  • 0粉丝

已卖:1份资源

高中生

40%

还不是VIP/贵宾

-

威望
0
论坛币
659 个
通用积分
0.1500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
192 点
帖子
6
精华
0
在线时间
49 小时
注册时间
2015-10-13
最后登录
2024-4-8

楼主
zhao_amy_PKU 发表于 2015-10-13 16:17:48 |AI写论文
666论坛币
数据描述:
一共3列,第一列为北美公司代码,GVKEY;
                  第二列为年份,YEAR;(每个公司基本拥有10-15年的连续观测值,少数公司只有2-3年观测值
                  第三列为公司的一个指标,VOL;这个变量是需要进行时间序列分析的变量。

目的:
根据下图的公式(ARIMA (1,1)),计算出VOL的估计值。

输出要求:
共四列,第一列为公司代码,GVKEY;第二列为年份,YEAR;
第三列为每个公司每一年VOL估计值的相对变化

第四列为每个公司每一年VOL估计值与观测值的差别

第五列 第六列 第七列为 θ0 θ1 θ2 三个系数(每个公司的θ都应该是相同的)

注:公司大概有3万多,一共有22万个观测值。
多谢各位大侠出手相助,小女在此奉上666作为感谢,祝大家工作学习一切顺利。大家可以用任何类似结构的面板数据跑程序,只需要给我代码就可以。
多谢

关键词:ARIMA ima Rim ROC 时间序列分析

沙发
luoyexu@126.com 在职认证  发表于 2015-10-14 22:33:15
之前写过一个arima模型代码
你看看
data jiangxi_popula;
input year renkou;
label renkou="人口数"  year="年份";

cards;
1978 3182.82
1979 3228.98
1980 3270.2
1981 3303.92
1982 3348.35
1983 3394.5
1984 3457.89
1985 3509.8
1986 3575.76
1987 3632.31
1988 3683.88
1989 3746.22
1990 3810.64
1991 3864.64
1992 3913.09
1993 3966.04
1994 4015.45
1995 4062.54
1996 4105.46
1997 4150.33
1998 4191.21
1999 4231.17
2000 4148.54
2001 4185.77
2002 4222.43
2003 4254.23
2004 4283.57
2005 4311.24
2006 4339.13
2007 4368.41
2008 4400.10
2009 4432.16
2010 4462.25
2011 4488.44
2012 4503.93
2013 4522.15
;
run;
data jiangxi_popula_model;
set jiangxi_popula;
where year le 2009;
run;

proc gplot data=jiangxi_popula_model;
/*title "江西人口历年数据";*/
plot renkou*year;
symbol i=spline v=start c=red;
run;
/*检查其平稳性检验不通过  差分*/
proc arima data=jiangxi_popula_model;
identify var=renkou stationarity=(adf=1);
run;
data jiangxi_popula_dif2;
set jiangxi_popula_model;
z=renkou;
difz=dif(z);
difz2=dif(difz);
label  z="人口数据"  difz="人口数据一阶差分"  difz2="人口数据二阶差分";
run;
/*检查其平稳性*/
proc gplot data=jiangxi_popula_dif2;
plot z*year;
plot difz*year;
plot difz2*year;
symbol i=spline v=star ci=red cv=bib;
run;
proc arima data=jiangxi_popula_dif2;
identify var=difz stationarity=(adf=1);
run;
/*人口数据二阶差分的白噪声检验  若检验通过则建立模型  
建立模型例子如下  以下是差分后假设数据通过白噪声检验的建模步骤*/
proc arima data=jiangxi_popula_dif2;
identify var=difz2 stationarity=(adf=1);
run;
/*bic定阶   模型最优识别*/
proc arima data=jiangxi_popula_dif2;
  identify var=difz2  minic perror=(8:11);
run;
/*预测五年的数据*/
proc arima data=jiangxi_popula_dif2;
identify var=z(2) nlag=4;
estimate q=1;
forecast lead=9 out=outvalue id=year;
run;

data forexport;
set outvalue;
fortotal=forecast;
label z="人口";
put fortotal;
run;
/*图形*/
proc gplot data=forexport;
    plot z*year fortotal*year/overlay;
   symbol1 i=spline v=star c=red;
   symbol2 i=spline  v=circle c=green ;
run;

data xx1(keep=year active active_model per );
set xx;
active_model=1000*model;
err=abs(active-active_model);
per=err/active;
format per percent8.2;
run;

data  outvalue_1(keep=year z FORECAST RESIDUAL per);
set  outvalue;
where RESIDUAL ne .;
RESIDUAL=abs(RESIDUAL);
per=RESIDUAL/z;
format  per percent8.2;
run;

藤椅
zhao_amy_PKU 发表于 2015-10-16 09:46:39
luoyexu@126.com 发表于 2015-10-14 22:33
之前写过一个arima模型代码
你看看
data jiangxi_popula;
你好,感谢您的回复!我已经看完了您的代码,但是发现您这里只是对一个变量做了arima,而我需要根据gvkey分组对数据分别进行arima。请问您了解关于sas分组运行的命令吗?

板凳
windlove 发表于 2015-10-16 13:38:02
你可以按照longitudinal data analysis来做这个。 然后每一个组的covariance strucuture是 ARMA(1, 1)。
proc mixed;
但如果你要做3万个公司同时一起做。那估计要等很长很长很长时间了吧。所以不是很建议。

报纸
wutaibo 发表于 2015-11-19 10:26:12
Interesting! Thank you!!

地板
wutaibo 发表于 2015-11-19 10:27:29
Interesting! Thank you!!

7
rdjjlt_sccd 发表于 2015-11-19 21:36:47
即便按你所说的要求,给你代码运行,你公司的分析任务也不能完成,SAS PROC ARIMA并不能分析出多少有用的结论,顶多只是个中间的参考,用数据可视化的方法,更有可能既快又好地完成分析的任务。
已有 1 人评分学术水平 热心指数 收起 理由
封神榜! + 1 + 1 观点有启发

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

8
reduce_fat 发表于 2015-11-21 08:35:23
rdjjlt_sccd 发表于 2015-11-19 21:36
即便按你所说的要求,给你代码运行,你公司的分析任务也不能完成,SAS PROC ARIMA并不能分析出多少有用的结 ...
在Excel 里用pivot table 做吗?那得很长时间。 我用R 做了一点,数据不够就算了。 SAS太贵,买不起。 
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
封神榜! + 1 + 1 + 1 鼓励积极发帖讨论

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 09:00