楼主: 笨笨兔
40525 23

[编程问题求助] stata中如何在时间序列数据中求得连续5年的标准差? [推广有奖]

  • 0关注
  • 2粉丝

已卖:1份资源

本科生

78%

还不是VIP/贵宾

-

威望
0
论坛币
249 个
通用积分
1.2002
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1386 点
帖子
83
精华
0
在线时间
86 小时
注册时间
2011-3-15
最后登录
2023-11-20

楼主
笨笨兔 发表于 2013-6-16 17:54:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
在一组按年度排序的面板数据里,如何实现求连续前5年的标准差呢?数据如下,2005年取2001——2005年的标准差,2006取2002-2006的标准差,依次往下,请问各位有没有什么命令可以实现?谢谢!!!
codeyearDa

1

2001

0.023397

1

2002

0.158893

1

2003

0.086594

1

2004

0.02353

1

2005

-0.16236

1

2006

0.041887

1

2007

0.001892

1

2008

0.070962

1

2009

0.03211

1

2010

-0.04094

1

2011

0.008511

1

2012

0.202141

2

2001

0.055419

2

2002

0.04945

2

2003

0.08024

2

2004

0.095835

2

2005

0.087361

2

2006

-0.07482

2

2007

0.079979

2

2008

-0.03121

2

2009

0.049386

2

2010

-0.03284

2

2011

0.055419

2

2012

-0.04945

二维码

扫码加我 拉你入群

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

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

关键词:时间序列数据 Stata 序列数据 tata 时间序列 标准差 如何

本帖被以下文库推荐

沙发
sungmoo 发表于 2013-6-16 18:25:00
https://bbs.pinggu.org/thread-2158471-2-1.html

xtset code year

*方法1:
forv i=1/4{
g Da`i'=L`i'.Da
}
egen s=rowsd(Da*) if year>2004

*方法2:
tssmooth ma t=Da,w(4 1)
tssmooth ma t2=Da^2,w(4 1)
bys code (year): g s=sqrt((t2-t^2)*5/4) if _n>4
已有 5 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
chaosheng91 + 1 + 1 精彩帖子
漫步云端2010 + 2 + 2 + 2 + 2 热心帮助其他会员
wwwabcd007 + 2 精彩帖子
crystal8832 + 10 + 10 + 2 + 2 补偿
Sunknownay + 100 + 10 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 110  论坛币 + 22  学术水平 + 8  热心指数 + 6  信用等级 + 3   查看全部评分

藤椅
h3327156 发表于 2013-6-16 20:41:09
我没像版主sungmoo大大与先前一些高人们那么强大。
但个人提供一个简单思路(根据标准差公式),但这个式子有点长,特别是连续年份多时,
按理这个式子应当可以再简化,但我很懒,喜欢一个步骤就好。
我不想针对各复杂的情况探讨,所以不要再问我。

bys code: g new_Da=sqrt( 1/4*(Da[_n-4]^2+Da[_n-3]^2+Da[_n-2]^2+Da[_n-1]^2+Da[_n]^2-1/5*(Da[_n-4]+Da[_n-3]+Da[_n-2]+Da[_n-1]+Da[_n])^2) )


为方便演练楼主的例子

inp code year Da
1 2001 0.023397
1 2002 0.158893
1 2003 0.086594
1 2004 0.02353
1 2005 -0.16236
1 2006 0.041887
1 2007 0.001892
1 2008 0.070962
1 2009 0.03211
1 2010 -0.04094
1 2011 0.008511
1 2012 0.202141
2 2001 0.055419
2 2002 0.04945
2 2003 0.08024
2 2004 0.095835
2 2005 0.087361
2 2006 -0.07482
2 2007 0.079979
2 2008 -0.03121
2 2009 0.049386
2 2010 -0.03284
2 2011 0.055419
2 2012 -0.04945
end

bys code (year): g new_Da=sqrt( 1/4*(Da[_n-4]^2+Da[_n-3]^2+Da[_n-2]^2+Da[_n-1]^2+Da[_n]^2-1/5*(Da[_n-4]+Da[_n-3]+Da[_n-2]+Da[_n-1]+Da[_n])^2) )

已有 4 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xiaopuhuo + 1 + 1 + 1 精彩帖子
树叶Leslie + 1 + 1 + 1 热心帮助其他会员
crystal8832 + 10 + 10 + 1 + 1 补偿
Sunknownay + 100 + 5 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 110  论坛币 + 15  学术水平 + 4  热心指数 + 4  信用等级 + 3   查看全部评分

板凳
笨笨兔 发表于 2013-6-17 15:03:40
sungmoo 发表于 2013-6-16 18:25
https://bbs.pinggu.org/thread-2158471-2-1.html

xtset code year
多谢版主的赐教,这个方法我已经试过了,在样本量很大的时候使用很方便,再次感谢!

报纸
笨笨兔 发表于 2013-6-17 15:05:36
h3327156 发表于 2013-6-16 20:41
我没像版主sungmoo大大与先前一些高人们那么强大。
但个人提供一个简单思路(根据标准差公式),但这个式子 ...
谢谢你的帮助,公式是有点复杂,特别是对于年份较多的情况下,运用起来有点复杂,不过年份少的情况还是很好用的。

地板
supersteven 发表于 2013-9-26 12:31:54
sungmoo 发表于 2013-6-16 18:25
https://bbs.pinggu.org/thread-2158471-2-1.html

xtset code year
code        year        prof        t
1        3/31/2002        .09        .09
1        6/30/2002        .07        .07
1        9/30/2002        .06        .06
1        12/31/2002        0        0
1        3/31/2003        -.141        -.141
1        6/30/2003        .061        .061
1        9/30/2003        .02        .02
1        12/31/2003        0        0
1        3/31/2004        -.05        -.05
1        6/30/2004        .04        .04
1        9/30/2004        .06        .06
1        12/31/2004        -.06        -.06
1        3/31/2005        -.07        -.07
1        6/30/2005        .03        .03
1        9/30/2005        .08        .08
精,去粗而取之,诚,心神体贯之,精诚所至,金石为开

7
supersteven 发表于 2013-9-26 12:44:28
sungmoo 发表于 2013-6-16 18:25
https://bbs.pinggu.org/thread-2158471-2-1.html

xtset code year
code        year        prof        t        t2
1        3/31/2002        .09        .09        .0081
1        6/30/2002        .07        .07        .0049
1        9/30/2002        .06        .06        .0036
1        12/31/2002        0        0        0
1        3/31/2003        -.141        -.141        .019881
1        6/30/2003        .061        .061        .003721
1        9/30/2003        .02        .02        .0004
1        12/31/2003        0        0        0
1        3/31/2004        -.05        -.05        .0025
1        6/30/2004        .04        .04        .0016
1        9/30/2004        .06        .06        .0036
1        12/31/2004        -.06        -.06        .0036
1        3/31/2005        -.07        -.07        .0049
1        6/30/2005        .03        .03        .0009
1        9/30/2005        .08        .08        .0064
您第二个方法很好,太高了,但是我用您的方法,感觉没有平滑的过程,我这里是哪里出了问题,谢谢指导。
精,去粗而取之,诚,心神体贯之,精诚所至,金石为开

8
小风扇 发表于 2015-8-8 22:44:57
sungmoo 发表于 2013-6-16 18:25
https://bbs.pinggu.org/thread-2158471-2-1.html

xtset code year
版主大人。您提供的第二个方法特别好!我理解是运用 var(x)=E(x^2)-(E(x))^2的原理。但是乘上n/(n-1)是什么原因呢?跪求解释。

9
Yes._滕飞 发表于 2016-1-12 22:00:02
很有用,多谢!

10
M201102030 发表于 2018-2-7 21:24:23
sungmoo 发表于 2013-6-16 18:25
https://bbs.pinggu.org/thread-2158471-2-1.html

xtset code year
您好!如果不需要连续5年,只求前5年的某变量的标准差,又该如何实现呢?

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 21:36