楼主: 拔刀斋
4380 6

[其他] 请教stata数据处理 [推广有奖]

  • 0关注
  • 0粉丝

已卖:81份资源

博士生

87%

还不是VIP/贵宾

-

威望
0
论坛币
507 个
通用积分
11.0287
学术水平
1 点
热心指数
2 点
信用等级
0 点
经验
1993 点
帖子
83
精华
0
在线时间
621 小时
注册时间
2005-10-27
最后登录
2017-3-13

楼主
拔刀斋 发表于 2009-3-31 11:57:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
<p>我现在有400个样本的20年的panel,出于研究目的,需要整合成一个4年的panel,样本每5年平均一次,从而形成一个400*4的新panel,请问在stata中应该如何实现呢?</p>
二维码

扫码加我 拉你入群

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

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

关键词:stata数据处理 STATA数据 Stata tata 数据处理 如何 样本 数据分析专题 数据处理 数据分析软件 数据分析报告 面板数据分析 excel数据分析 数据分析方法 项目数据分析

沙发
arlionn 在职认证  发表于 2009-3-31 14:42:00

* https://bbs.pinggu.org/thread-437023-1-1.html
* 生成模拟数据 N=400,T=20
  clear
  *ssc install xtarsim, replace
  xtarsim y x eta, n(400) t(20) gamma(0) beta(0.8) rho(0.2) ///
                    one(corr 1) sn(9) seed(1234)
  tsset ivar tvar
  xtdes
* 5年一平均
  egen tt = seq(), from(1) to(4) block(5)
  foreach v of varlist y x{
     egen `v'_m = mean(`v'), by(tt)
  }
  keep *_m tt ivar
  duplicates drop
  tsset ivar tt
  xtdes

 

*-------------results----------------

. * https://bbs.pinggu.org/thread-437023-1-1.html
. * 生成模拟数据 N=400,T=20
.   clear
.   ssc install xtarsim, replace
.   xtarsim y x eta, n(400) t(20) gamma(0) beta(0.8) rho(0.2) ///
>                     one(corr 1) sn(9) seed(1234)
.   tsset ivar tvar
       panel variable:  ivar (strongly balanced)
        time variable:  tvar, 1 to 20
                delta:  1 unit
.   xtdes
    ivar:  1, 2, ..., 400                                    n =        400
    tvar:  1, 2, ..., 20                                     T =         20
           Delta(tvar) = 1 unit
           Span(tvar)  = 20 periods
           (ivar*tvar uniquely identifies each observation)
Distribution of T_i:   min      5%     25%       50%       75%     95%     max
                        20      20      20        20        20      20      20
     Freq.  Percent    Cum. |  Pattern
 ---------------------------+----------------------
      400    100.00  100.00 |  11111111111111111111
 ---------------------------+----------------------
      400    100.00         |  XXXXXXXXXXXXXXXXXXXX
. * 5年一平均
.   egen tt = seq(), from(1) to(4) block(5)
.   foreach v of varlist y x{
  2.      egen `v'_m = mean(`v'), by(tt)
  3.   }
.   keep *_m tt ivar
.   duplicates drop 
Duplicates in terms of all variables
(6400 observations deleted)
.   tsset ivar tt
       panel variable:  ivar (strongly balanced)
        time variable:  tt, 1 to 4
                delta:  1 unit
.   xtdes
    ivar:  1, 2, ..., 400                                    n =        400
      tt:  1, 2, ..., 4                                      T =          4
           Delta(tt) = 1 unit
           Span(tt)  = 4 periods
           (ivar*tt uniquely identifies each observation)
Distribution of T_i:   min      5%     25%       50%       75%     95%     max
                         4       4       4         4         4       4       4
     Freq.  Percent    Cum. |  Pattern
 ---------------------------+---------
      400    100.00  100.00 |  1111
 ---------------------------+---------
      400    100.00         |  XXXX

[em05]

[此贴子已经被作者于2009-3-31 14:46:31编辑过]

藤椅
面板数据 发表于 2009-3-31 15:11:00

在做GMM的时候经常用五年一平均。

有没有更简单的命令,看起来头晕

板凳
sungmoo 发表于 2009-3-31 15:37:00

           
sort id year
g n=_n-0.1
replace n=int(n/5)
collapse (mean) id-xn, by(n)
drop
n

*假设原数据库中共有n+2个变量,其中:第一个变量是企业变量id,第二个变量是年份变量year,其余变量是x1-xn。共400个企业,每个企业20年。

报纸
sungmoo 发表于 2009-3-31 15:39:00
*补充:上述原数据库中,所有变量都是数值型。生成的新数据库中,年份变量year是求平均后的“平均年份”。

地板
拔刀斋 发表于 2009-3-31 22:24:00

谢谢两位斑竹,下午的时候,我已经自己摸索出来了,方法基本跟sungmoo的一样,利用collapse应该是最快捷的。

7
改革同步 发表于 2012-4-22 23:17:48
很好,学习学习

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

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