楼主: 浪里小白条
6648 10

[面板数据求助] wind下载的日度数据如何用stata转换成面板数据? [推广有奖]

  • 0关注
  • 0粉丝

高中生

52%

还不是VIP/贵宾

-

威望
0
论坛币
999 个
通用积分
0.4200
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
56 点
帖子
3
精华
0
在线时间
60 小时
注册时间
2018-11-15
最后登录
2022-5-9

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教各位大神,我在wind上在下载期权历史波动率,因为时间较短想选取每个交易日的数据作面板回归,但是出现以下问题。
白糖hv面板数据.dta (16.13 MB)
运用以下代码将数据转换成面板:
reshape long a, i(index) j(time)

就发现只有偶数结尾的天数进入面板中,奇数天数未能进入面板处理。
附图.png

之前我用年度数据按照这种方法处理不会出现这样的问题。请教大家日度数据要怎么用stata进行操作才能考虑所有时间样本呢?
二维码

扫码加我 拉你入群

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

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

关键词:历史波动率 日度数据 数据转换 年度数据 面板回归

回帖推荐

hoguo15 发表于9楼  查看完整内容

不会还没解决吧。这几天比较忙没看论坛哈不好意思。 我猜是因为你没有加string这个选项。stata这点比较不科学,应该把string设置成为默认选项。 我帮你搞了一下。从excel粘过来之后用下面的代码: gen date = substr(index, 2, 8) destring date, replace drop index gen year = floor(date/10000) gen month = floor((date - 10000*year)/100) gen day = date - year *10000 - month*100 order year month day ge ...
沙发
黃河泉 在职认证  发表于 2019-4-21 06:35:12 |只看作者 |坛友微信交流群
你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。
2.        请参考说明 https://bbs.pinggu.org/thread-5048204-1-1.html
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 2 + 2 + 2 热心帮助其他会员

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

使用道具

藤椅
浪里小白条 发表于 2019-4-21 09:55:16 |只看作者 |坛友微信交流群
附上原始数据,请求帮忙! stata实验所用数据.xlsx (547.74 KB)

使用道具

板凳
hoguo15 发表于 2019-4-21 10:52:16 |只看作者 |坛友微信交流群
我下了你的数据看了一下。你的代码理论上讲应该没问题,但是reshape尽量不要这么用,j的数量太多了。出问题也完全有可能。

建议你先用excel把数据横竖方向对调(这个在excel的粘贴选项里面),然后再贴到stata里。这就可以直接跑回归用了。

你要是那个时候还要面板数据那就再用reshape long. 这样的话j的数量就少多了。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 2 + 2 + 2 热心帮助其他会员

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

使用道具

报纸
SVDiana 发表于 2019-4-21 11:27:04 |只看作者 |坛友微信交流群
没碰到过这种情况,帮顶求大神解答~

使用道具

地板
黃河泉 在职认证  发表于 2019-4-22 09:22:25 |只看作者 |坛友微信交流群
这个有帮助吗? https://www.jianshu.com/p/ab4bc2ead75e
已有 1 人评分热心指数 信用等级 收起 理由
hiderm + 1 + 1 非常感谢!

总评分: 热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

7
浪里小白条 发表于 2019-4-23 11:31:00 |只看作者 |坛友微信交流群
hoguo15 发表于 2019-4-21 10:52
我下了你的数据看了一下。你的代码理论上讲应该没问题,但是reshape尽量不要这么用,j的数量太多了。出问题 ...
我尝试了一下 但是如果把行列交换 j 就不是时间了 用j(time)的时候就会报错“time contains all missing values” 请问是不是我理解错了呢 能不能具体说说要怎么操作呢 非常感谢!

使用道具

8
黃河泉 在职认证  发表于 2019-4-23 12:04:12 |只看作者 |坛友微信交流群
浪里小白条 发表于 2019-4-23 11:31
我尝试了一下 但是如果把行列交换 j 就不是时间了 用j(time)的时候就会报错“time contains all missin ...
请先 ssc install fastreshape,然后试试
  1. use "E:\wind.dta", clear
  2. drop a
  3. fastreshape long a, i(index time)
复制代码

使用道具

9
hoguo15 发表于 2019-4-28 13:42:07 |只看作者 |坛友微信交流群
浪里小白条 发表于 2019-4-23 11:31
我尝试了一下 但是如果把行列交换 j 就不是时间了 用j(time)的时候就会报错“time contains all missin ...
不会还没解决吧。这几天比较忙没看论坛哈不好意思。

我猜是因为你没有加string这个选项。stata这点比较不科学,应该把string设置成为默认选项。
我帮你搞了一下。从excel粘过来之后用下面的代码:

gen date = substr(index, 2, 8)
destring date, replace
drop index
gen year = floor(date/10000)
gen month = floor((date - 10000*year)/100)
gen day = date - year *10000 - month*100
order year month day
gen td = mdy(month, day, year)
drop year month day date
reshape long sr, i(td) j(spec) s


会得到下面的数据。这大概是你要的了。注意我reshape后面的s选项。
data.dta (830.41 KB)




已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
浪里小白条 + 5 + 5 + 5 精彩帖子
admin_kefu + 40 + 2 + 2 + 2 热心帮助其他会员

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

使用道具

楼主你的问题解决了吗?我也遇到了类似问题,可以交流一下解决方法吗?

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

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

GMT+8, 2024-4-26 13:56