楼主: saudada
4786 10

[其他] 計算變數的標準差 [推广有奖]

  • 0关注
  • 0粉丝

讲师

31%

还不是VIP/贵宾

-

威望
0
论坛币
91 个
通用积分
26.8769
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
14683 点
帖子
280
精华
0
在线时间
334 小时
注册时间
2007-5-17
最后登录
2019-4-26

楼主
saudada 发表于 2010-4-16 15:08:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位好:

變數的資料型態如下,

year    var1
2000    100
2001    200
2002    400
2003    99
2004    66
2005    200
2006    300
:           :

想產生另一個數列var2,主要是var1近五年數值的標準差,

而形成以下新的數列:

year    var1      var2
2000    100
2001    200
2002    400
2003    99
2004    66        0.5   →為2000~2004年的var1值之標準差
2005    200      0.7   →為2001~2005年的var1值之標準差
2006    300      0.4   →為2002~2006年的var1值之標準差
:           :             :


謝謝大家的幫忙!
二维码

扫码加我 拉你入群

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

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

关键词:year VaR ear 近五年 各位好

沙发
voodoo 发表于 2010-4-16 15:19:24
help rolling
巫毒上传,必属佳品!
坛友下载,三思后行!

藤椅
voodoo 发表于 2010-4-16 15:38:05
saudada 发表于 2010-4-16 15:08
各位好:

變數的資料型態如下,

year    var1
2000    100
2001    200
2002    400
2003    99
2004    66
2005    200
2006    300
:           :

想產生另一個數列var2,主要是var1近五年數值的標準差,

而形成以下新的數列:

year    var1      var2
2000    100
2001    200
2002    400
2003    99
2004    66        0.5   →為2000~2004年的var1值之標準差
2005    200      0.7   →為2001~2005年的var1值之標準差
2006    300      0.4   →為2002~2006年的var1值之標準差
:           :             :


謝謝大家的幫忙!
在Excel中能轻松搞定的东东,在Stata中反而不容易实现了?还是我无知,请高手支招。
巫毒上传,必属佳品!
坛友下载,三思后行!

板凳
saudada 发表于 2010-4-16 15:46:23
您好:
我已經使用rolling計算出標準差,只是我使用以下程式跑出來後,僅剩下rolling的結果,原始資料都不見了,
請問我的程式該如何修改呢?謝謝您!

gen time=year
form time %ty
xtset firm time
tempfile tf0
rolling std=r(sd), window(5): summarize nidta
sort time
merge time `tf0'
xtset firm time
drop _merge

报纸
voodoo 发表于 2010-4-16 15:51:26
gen time=year
form time %ty
xtset firm time

tempfile tf0
preserve
rolling std=r(sd), window(5): summarize nidta
rename end time
drop start
sort firm time
save `tf0', replace
restore

merge firm time using `tf0'
xtset firm time
drop _merge
巫毒上传,必属佳品!
坛友下载,三思后行!

地板
saudada 发表于 2010-4-16 16:06:20
您好:

按照您修改完後程式,最後到merge firm time using `tf0',
系統出現using data not sorted訊息。

gen time=year
form time %ty
xtset firm time

tempfile tf0
preserve
rolling std=r(sd), window(5) saving(`tf0', replace): summarize nidta
restore

sort firm time
merge firm time using `tf0'
xtset firm time
drop _merge

我加入此句,仍出現using data not sorted,請問此問題如何解決?謝謝您!

7
saudada 发表于 2010-4-16 16:11:07
另外,我看到rolling跑出來的結果如下:

firm  start       end      std
1       2000     2004     0.5
1       2001     2005     0.7
:          :                    :

上述rolling的結果,要與原始資料合併,應該是以firm跟year合併,
但存成tf0 file,如何將end名稱,改成year?謝謝您!

8
voodoo 发表于 2010-4-16 16:17:26
saudada 发表于 2010-4-16 16:11
另外,我看到rolling跑出來的結果如下:

firm  start       end      std
1       2000     2004     0.5
1       2001     2005     0.7
:          :                    :

上述rolling的結果,要與原始資料合併,應該是以firm跟year合併,
但存成tf0 file,如何將end名稱,改成year?謝謝您!
已经修改5楼中的程序,应该可以满足你的要求。
巫毒上传,必属佳品!
坛友下载,三思后行!

9
saudada 发表于 2010-4-16 16:26:45
voodoo 发表于 2010-4-16 15:51
gen time=year
form time %ty
xtset firm time

tempfile tf0
preserve
rolling std=r(sd), window(5) clear: summarize nidta
rename end time
drop start
sort firm time
save `tf0', replace
restore

merge firm time using `tf0'
xtset firm time
drop _merge
謝謝您!問題已解決了.....上述rolling的地方,需再加上clear,就ok了,感謝~~~~

10
voodoo 发表于 2010-4-16 17:18:33
啊哈,找到一个命令可以完成我们所需要的以及更多……

findit mvsumm
巫毒上传,必属佳品!
坛友下载,三思后行!

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

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