楼主: winddr
1573 4

观测值的滞后项 [推广有奖]

  • 0关注
  • 9粉丝

已卖:288份资源

博士生

91%

还不是VIP/贵宾

-

威望
0
论坛币
59 个
通用积分
111.2336
学术水平
5 点
热心指数
7 点
信用等级
3 点
经验
4300 点
帖子
165
精华
0
在线时间
523 小时
注册时间
2006-3-4
最后登录
2025-11-20

楼主
winddr 发表于 2015-6-14 20:56:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
假定有一观测序列:
time(分钟)people
00
31
52
63
74
105
116
217
278
time 是观测时间,people是相应的变量。其意义是累计的参与者数量。如在time=5时,共有2名参与者,在time=6时,共有3名参与者。由于存在信息的延迟,后续参加者并不能实时获得累计参加者数量的准确信息,而是只能获得这一数量的滞后信息。现规定后续参加者只能获得5分钟之前的信息,所有小于或等于5分钟内发生的信息因为信息延迟而无法获得。据此想获得如下滞后变量lag_people:

time(分钟)

people

lag_people

0

0

0

3

1

0

5

2

0

6

3

0

7

4

0

10

5

1

11

6

2

21

7

6

27

8

7

请教论坛内高手如何用sas实现?万分感谢!
二维码

扫码加我 拉你入群

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

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

关键词:观测值 滞后项 People time 滞后变量 people 如何 信息

沙发
winddr 发表于 2015-6-14 23:21:13
自己顶,求大神现身

藤椅
yongyitian 发表于 2015-6-15 10:50:11
  1. data have;
  2.    input time people;
  3. datalines;
  4. 0 0
  5. 3 1
  6. 5 2
  7. 6 3
  8. 7 4
  9. 10 5
  10. 11 6
  11. 21 7
  12. 27 8
  13. ; run;

  14. proc sql noprint;
  15.     create table have_0 as
  16.     select distinct a.time,  a.people, max(b.people) as lag_people
  17.     from have a, have b
  18.     where  a.time - b.time > 5
  19.     group by a.time;
  20. quit;

  21. data wanted;
  22.     merge have have_0;
  23.     by time;
  24.     if missing(lag_people) then lag_people=0;
  25. run;
复制代码


Lag_people.GIF
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
winddr + 5 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 5  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

板凳
winddr 发表于 2015-6-15 14:27:50
yongyitian 发表于 2015-6-15 10:50
谢谢大神,如果原始数据是按组排列的且有多个变量,如:
grouptime(分钟)peoplesolution

1

0

0

0

1

3

1

1

1

5

2

3

1

6

3

4

1

7

4

6

1

10

5

7

1

11

6

8

1

21

7

9

1

27

8

12

2

4

0

0

2

6

5

3

2

7

6

5

2

8

7

7

2

12

8

8

2

17

10

9

2

24

12

13

现欲得到:
grouptime(分钟)peoplesolutionlag_peoplelag_solution

1

0

0

0

0

0

1

3

1

1

0

0

1

5

2

3

0

0

1

6

3

4

0

0

1

7

4

6

0

0

1

10

5

7

1

1

1

11

6

8

2

3

1

21

7

9

6

8

1

27

8

12

7

9

2

4

3

0

0

0

2

6

5

3

0

0

2

7

6

5

0

0

2

8

7

7

0

0

2

12

8

8

5

3

2

17

10

9

7

7

2

24

12

13

10

9

,如何获得?多谢多谢!!!

报纸
winddr 发表于 2015-6-15 16:00:47
yongyitian 发表于 2015-6-15 10:50
多谢大神提点,我照葫芦画瓢:data have;
   input group time people solution;
datalines;
1        0        0        0
1        3        1        1
1        5        2        3
1        6        3        4
1        7        4        6
1        10        5        7
1        11        6        8
1        21        7        9
1        27        8        12
2        4        0        0
2        6        5        3
2        7        6        5
2        8        7        7
2        12        8        8
2        17        10        9
2        24        12        13
; run;

proc sql noprint;
    create table have_0 as
    select distinct a.group, a.time, a.people, a.solution, max(b.people) as lag_people, max(b.solution) as lag_solution
    from have a, have b
    where a.time - b.time > 5 and a.group-b.group = 0
    group by a.group, a.time;
quit;

data wanted;
    merge have have_0;
    by group time;
    if missing(lag_people) then lag_people=0;
        if missing(lag_solution) then lag_solution=0;
run;

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

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