楼主: csxcsx007
16726 13

stata有没有命令自动填补面板数据中的横截面变量? [推广有奖]

  • 0关注
  • 4粉丝

教授

44%

还不是VIP/贵宾

-

威望
0
论坛币
7013 个
通用积分
50.2413
学术水平
15 点
热心指数
25 点
信用等级
12 点
经验
27259 点
帖子
733
精华
0
在线时间
1686 小时
注册时间
2007-8-4
最后登录
2024-3-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我用tsfill命令可以生产平行面板,但是怎么填补其中的横截面缺漏值呢?而且其中的空白好像还不一定是当成missing value来看的,我用misstable 命令就会显示没有missing value?急问,懂的人赐教啊?不要说用replace 命令,如果年份首末有缺漏好像用这个命令也不管用!
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 面板数据 横截面 有没有 replace 横截面 而且

沙发
heikoyh 发表于 2012-7-28 00:50:37 |只看作者 |坛友微信交流群
自动填怎么填,填上去算几??

你直接删了不得了。要么就直接做,要么就删了做。为什么要补进去呢。你这样不科学啊。

使用道具

藤椅
csxcsx007 发表于 2012-7-28 18:38:29 |只看作者 |坛友微信交流群
楼上的好像没有理解我的意思,我的意思是类似缺漏值之类的怎么补充啊

使用道具

板凳
rosenbloog 发表于 2012-7-29 03:21:40 |只看作者 |坛友微信交流群
tsfill帮助文件的面板数据例子里面填充出来的缺失值是用"."表示的阿,怎么会是空白呢?

使用道具

报纸
csxcsx007 发表于 2012-7-29 10:48:56 |只看作者 |坛友微信交流群
还是我自己来回答吧,有的时候当你的横截面是文字变量时,需要转换成类别变量来进行tsset,而当你转换成类别变量了以后,再用TSFILL命令时,以前的文字变量就相应的存在缺漏值。所以就没有办法处理,但是我现在想了一个办法,TSFILL填补的截面变量会是完整的,那就再相应的将TSFILL命令填补好的截面变量再转成文字变量就行了,那就填补完整了

使用道具

地板
蓝色 发表于 2012-7-29 12:20:49 |只看作者 |坛友微信交流群
难道不能用一个简单的数据解释一下吗?凡是提供数据,让别人知道怎么回事情的,一般很容易得到帮助的。
你说了那么多,我还是没有理解到底你的意思

使用道具

7
csxcsx007 发表于 2012-7-29 15:38:23 |只看作者 |坛友微信交流群
其实我要说的问题比较复杂,一个非平衡面板数据如下
country  year  value
china    1993   100
china    1994   99
china   1995   98
japan   1993  100
由于无法对数值变量进行xtset,所以要encode country ,gen (country1),然后xtset county1 year
然后再 tsfill ,full,生成平行面板
就会产生country等其它变量的缺漏值,那么如何填充这个country的缺漏值是一个比较麻烦的事情,特别是当处理较多的数据,例如如果数据年份从1960到2010年,而日本只有1993-1999年数据的时候,用replace命令是很难达到效果的

使用道具

8
蓝色 发表于 2012-7-29 18:07:42 |只看作者 |坛友微信交流群
clear
input ///
str20 country  year  value
china    1993   100
china    1994   99
china   1995   98
japan   1993  100
end

egen countryid=group(country)
xtset countryid year

tsfill ,full
by countryid: replace country=country[_n-1] if country==""
list

使用道具

9
蓝色 发表于 2012-7-29 18:10:07 |只看作者 |坛友微信交流群

. clear
. input ///
> str20 country  year  value
                  country       year      value
  1. china    1993   100
  2. china    1994   99
  3. china   1995   98
  4. japan   1993  100
  5. end
.
. egen countryid=group(country)
. xtset countryid year
       panel variable:  countryid (unbalanced)
        time variable:  year, 1993 to 1995
                delta:  1 unit
.
. tsfill ,full
. list
     +-----------------------------------+
     | country   year   value   countr~d |
     |-----------------------------------|
  1. |   china   1993     100          1 |
  2. |   china   1994      99          1 |
  3. |   china   1995      98          1 |
  4. |   japan   1993     100          2 |
  5. |           1994       .          2 |
     |-----------------------------------|
  6. |           1995       .          2 |
     +-----------------------------------+
. by countryid: replace country=country[_n-1] if country==""
(2 real changes made)

. list
     +-----------------------------------+
     | country   year   value   countr~d |
     |-----------------------------------|
  1. |   china   1993     100          1 |
  2. |   china   1994      99          1 |
  3. |   china   1995      98          1 |
  4. |   japan   1993     100          2 |
  5. |   japan   1994       .          2 |
     |-----------------------------------|
  6. |   japan   1995       .          2 |
     +-----------------------------------+


已有 4 人评分学术水平 热心指数 信用等级 收起 理由
CHARLENE1024 + 1 + 1 + 1 精彩帖子
释闲 + 1 + 1 + 1 精彩帖子
呼呼兔的胡图图 + 1 + 1 + 1 精彩帖子
区域经济爱好者 + 1 + 1 + 1 牛气!

总评分: 学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

使用道具

10
csxcsx007 发表于 2012-7-29 22:44:22 |只看作者 |坛友微信交流群
蓝色 发表于 2012-7-29 18:10
. clear
. input ///
> str20 country  year  value
谢谢版主的回复,我其实想知道空格在stata里面怎么表示,现在懂了。其实我发现replace命令不能解决一切问题,特别是当数据容量非常大的时候,如当你的数据存在大量缺失,举个例子,1980~2011年的数据,当你的截面只有91~95年数据的时候,要填补存在的缺漏值,就要不停的执行replace命令,所以要用while语句循环,但是有时候我甚至发现while语句还是不能完全填补空缺,不知道什么原因,我觉得可能是也许我们的stata不是正版吧

使用道具

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

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

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

GMT+8, 2024-4-19 21:32