全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2361 9
2014-05-04
某只股票每日价格数据prc。把每天的价格与过去100天的价格相比,需要生成今天的prc位于过去100天的100个prc的百分位是多少?比如大于过去100天中90天的prc且小于过去100天的最高价则认为是percentile=0.9。
由于每天的prc都要与每天的过去100天的prc相对比,不知道什么命令可以实现?

我知道下面这个命令是对prc整个变量的大小进行分组,但是我是需要每天的prc都与前面100天的prc比较。不知道什么命令能够实现呢?
cumul prc, g(percentile) eq
recode percentile (min/0.1=0)(0.1/0.2=1)(0.2/0.3=2)(0.3/0.4=3)(0.4/0.5=4)(0.5/0.6=5)(0.6/0.7=6)(0.7/0.8=7)(0.8/0.9=8)(0.7/0.8=9)(0.9/max=10)
二维码

扫码加我 拉你入群

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

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

全部回复
2014-5-4 12:17:01
clear
set more off
set obs 1000
gen prc = uniform()

gen pctile = .
forv i = 101/1000 {
        cumul prc in `=`i'-100'/`i', gen(_pctile) freq equal
        replace pctile = _pctile in `i'
        drop _pctile
}
replace pctile = pctile - 1
二维码

扫码加我 拉你入群

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

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

2014-5-5 17:56:52
*当前值与过去最近100值(不含当前值)比较:

clear
set ob 1000
g prc=uniform()

g p=.
forv i=101/1000{
g s=(prc<=`=prc[`i']') in `=`i'-100'/`=`i'-1'
su s
replace p=`=r(sum)'/100 in `i'
drop s
}
二维码

扫码加我 拉你入群

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

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

2014-5-5 18:10:29
*另一种等价做法:
g q=.
forv i=101/1000{
egen s=sum(prc<=`=prc[`i']') in `=`i'-100'/`=`i'-1'
replace q=s[_n-1]/100 in `i'
drop s
}
二维码

扫码加我 拉你入群

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

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

2014-5-6 11:47:39
sungmoo 发表于 2014-5-5 17:56
*当前值与过去最近100值(不含当前值)比较:

clear
好!




二维码

扫码加我 拉你入群

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

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

2014-5-6 17:14:50
voodoo 发表于 2014-5-6 11:47
好!
多谢两位大神!!!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群