楼主: xiaoxiahu0571
3166 2

[原创博文] 关于sas对应移动平均权重 [推广有奖]

  • 0关注
  • 0粉丝

本科生

86%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
3 点
热心指数
3 点
信用等级
1 点
经验
792 点
帖子
53
精华
0
在线时间
162 小时
注册时间
2009-10-19
最后登录
2017-1-24

楼主
xiaoxiahu0571 发表于 2011-1-6 16:03:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
data a1;
input a1 a2 a3 a4 a5 a6;
cards;
1  1  1  1  1  1
;
run;
data a2;
set a1;
   y_move1=sum(of a1-a6)/6;
   y_move2=sum(of y_move1,of a1-a5)/6;
   y_move3=sum(of y_move1-y_move2,of a1-a4)/6;
   y_move4=sum(of y_move1-y_move3,of a1-a3)/6;
   y_move5=sum(of y_move1-y_move4,of a1-a2)/6;
   y_move6=sum(of y_move1-y_move5,of a1)/6;
   y_move=sum(of y_move1-y_move6);
   y_move=a1*m1+a2*m2+a3*m3+a4*m4+a5*m5+a6*m6;
run;
我用过去六个月的数据a1-a6(a1表示最近一个月对应值,a6表示最近六个月对应值)来进行移动平均得到未来六个月的预测值,比如y-move1为最近六个月数据均值,y-move2为y-move1和最近5个月的数据均值,然后预测的每月数据y-move1-y-move6相加得到预测值的数据,现在想知道下这种计算方式下各个变量的权重到底多大?想问下怎样用sas实现算m1-m6的值呢?其实可是拿笔算的 不过觉得太丢人了,想请教下高手怎么用sas实现呢?谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:移动平均 cards Input Move Data

本帖被以下文库推荐

沙发
soporaeternus 发表于 2011-1-7 10:13:50
  1. %MACRO T(N);
  2.         data r;
  3.                 length var $100;
  4.                 array _a a1-a&N;
  5.                 array _ahis{&N,&N} _temporary_;
  6.                 do i=1 to %eval(2*&N+1) by 1;
  7.                         if i<=&N then do;
  8.                                 var=compress("a"||&N-i+1);
  9.                                 do j=1 to &N by 1;
  10.                                         if j+i-1=&N then _a[j]=1;
  11.                                         else _a[j]=0;
  12.                                 end;
  13.                                 output;
  14.                         end;       
  15.                         else do;
  16.                                 if i<=2*&N then var=compress("y_move"||i-&N);
  17.                                 else var="y_move";
  18.                                 do j=1 to &N by 1;
  19.                                         _a[j]=(1/&N)*sum(%do i=1 %to &N %by 1;%if &i>=2 %then %do;,%end;_ahis[j,&i]%end;);
  20.                                 end;
  21.                                 output;
  22.                         end;
  23.                         do k=1 to &N by 1;
  24.                                 _ahis[k,mod(i,&N)+1]=_a[k];
  25.                         end;
  26.                 end;
  27.                 drop i j k;
  28.         run;
  29.         proc print data=r;run;quit;
  30. %MEND T;
  31. %T(4);
复制代码
算了个3和4,感觉没错
没有计算通项公式,用了楼主的方法硬算系数
呵呵,希望对你有帮助
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
论坛数据分析 + 100 + 2 + 2 观点有启发

总评分: 论坛币 + 100  学术水平 + 2  热心指数 + 2   查看全部评分

Let them be hard, but never unjust

藤椅
xiaoxiahu0571 发表于 2011-1-7 10:19:22
2# soporaeternus


谢谢 牛人啊 顶顶

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

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