楼主: 弥图菲勒
11147 8

[问答] stata 怎么求滚动或者说连续的3个平均数 [推广有奖]

  • 0关注
  • 0粉丝

学前班

90%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
5 小时
注册时间
2017-4-7
最后登录
2017-4-27

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
就一组数据,Write a program that will construct a moving average on a given variable, given a ‘window’and store it as another variable. For example, if we have a dataset with 10 observationson a variable x, and the window is of size 3, then your program will create a new variabley, where y1 =x1+x2+x3/3, y2 =x2+x3+x4/3, etc. Of course, this will result in some missingvalues in the end.

不介意最后有几个值用不动,就比如一组数据x1,x2,x3,x4,x5,……xn,求一个命令,使求出每连续三个数的平均值。
谢谢
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 平均数 observations observation 平均数 stata 连续平均数 滚动

沙发
albusdzx 发表于 2017-4-7 10:17:19 |只看作者 |坛友微信交流群
data test2;
set test;
total=0;
if _N_>2 then do i=_N_ to _N_-2 by -1;
set test(rename=(x=k)) point=i;
total+k;
end;
y=total/3;
run;

使用道具

藤椅
ryuuzt 发表于 2017-4-7 11:35:49 |只看作者 |坛友微信交流群
albusdzx 发表于 2017-4-7 10:17
data test2;
set test;
total=0;
他问的是stata怎么做,哈哈,你给个sas的code。

stata可以先产生两个滞后变量,然后横向把当期,前一期,前两期平均就好。

使用道具

板凳
ayzzya 发表于 2017-4-7 15:21:32 |只看作者 |坛友微信交流群
支持支持,学习了

使用道具

ryuuzt 发表于 2017-4-7 11:35
他问的是stata怎么做,哈哈,你给个sas的code。

stata可以先产生两个滞后变量,然后横向把当期,前一期 ...
请问具体用哪个命令?谢谢啦!

使用道具

地板
ryuuzt 发表于 2017-7-6 08:46:59 |只看作者 |坛友微信交流群
tiffanitiffani 发表于 2017-7-6 02:29
请问具体用哪个命令?谢谢啦!
你用
gen new_variable1 = old_variable[_n-1]

gen new_variable2 = old_variable[_n-2]

产生两个滞后变量,

然后用

gen average = (old_variable + old_variable1 +old_variable2) / 3

就可以了。

这个是针对那个SAS程序的Stata程序

Stata貌似有个滚动平均的命令,我没有细看,你自己参考一下。

http://www.stata.com/manuals13/tstssmoothma.pdf
     
已有 1 人评分论坛币 收起 理由
tiffanitiffani + 3 热心帮助其他会员

总评分: 论坛币 + 3   查看全部评分

使用道具

7
tiffanitiffani 发表于 2017-7-7 00:47:52 |只看作者 |坛友微信交流群
ryuuzt 发表于 2017-7-6 08:46
你用
gen new_variable1 = old_variable[_n-1]
谢谢回复!我想做变量的横向运算,这个[_n]是纵向的吧。

使用道具

8
ryuuzt 发表于 2017-7-9 21:40:52 |只看作者 |坛友微信交流群
tiffanitiffani 发表于 2017-7-7 00:47
谢谢回复!我想做变量的横向运算,这个[_n]是纵向的吧。
哈哈,不是。这个[_n]是一个内部命令,读取数据的第n行,然后[_n-1]是读取滞后一阶的观测。这样你就可以把纵向的数据变成一个横向滞后一阶的新变量,你想算滚动几个阶数的都可以。

使用道具

9
球球经济小白 发表于 2022-11-13 18:05:14 |只看作者 |坛友微信交流群
ryuuzt 发表于 2017-7-9 21:40
哈哈,不是。这个[_n]是一个内部命令,读取数据的第n行,然后[_n-1]是读取滞后一阶的观测。这样你就可以把 ...
请问加上 行业和年份的限制呢?还可以这样写吗?

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 09:14