楼主: xueyuan456
5146 9

难点求助:如何先对个体匹配多样本后再分组做回归 [推广有奖]

  • 0关注
  • 2粉丝

本科生

9%

还不是VIP/贵宾

-

威望
0
论坛币
20969 个
通用积分
94.0215
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
630 点
帖子
33
精华
0
在线时间
114 小时
注册时间
2005-10-6
最后登录
2024-1-28

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大虾好,

最近论文遇到一个问题, 感到有点困难.
想请教一下, 如果我想在一个DATASET里先对各OBSERVATION选择出诸如同行业, 与该公司资产规模+-20%的DATASET里所有符合条件的公司(有多少要多少), 然后再对这些选出来的公司做Y=aX1+bX2+u 之类的回归.
比如, 对A公司, 在整体样本里选出所有与A在同行业且资产规模接近的公司, 假设选出了20家公司, 然后对这20家公司做Y=aX1+bX2+u, 求拟合值, 再看第二家B公司, 同样选, 也许选出15家符合条件的,再做Y=aX1+bX2+u, 求拟合值.

对整个DATASET里的所有个体都要做同样的处理,就是先选出所有符合要求的公司,然后用选出来的公司做回归, 该怎么用STATA做到?

PS 可互相重复,比如对a公司进行选择的时候 b c d公司都符合标准, 做了回归后, 对b公司选择的时候 a t x y z公司符合标准, 再做回归.

求助达人帮忙,万分感谢
二维码

扫码加我 拉你入群

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

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

关键词:observation observat dataset DataS ATION 匹配 分组回归 选择多样本

沙发
zengyitop 发表于 2009-6-28 12:52:35 |只看作者 |坛友微信交流群
pscore
psmatch2
这是在网上看见的回复,你可以搜一下关键词:配对。可发现答案。
不过,我比较笨,没有弄明白是怎么回事,我用了个笨办法;
sort indu size
by indu:g s=size[_n-1]
gen ss=1 if s==.
gen ssss=size*1.2 if ss==1
by indu:g sssss=sum(ssss)

使用道具

藤椅
xueyuan456 发表于 2009-6-28 17:30:56 |只看作者 |坛友微信交流群
谢谢LS, 可是你说的我看不太明白, 汗, 为什么要生成上一期间的SIZE? 然后那些SSSS, SSSSS的在做什么呢?

我在网上找了很多PSMATCH2的东东看,可是系统讲解该SYNTAX使用的好象没有找到.

再解释一下我的问题:
比如我的数据有100家公司, 每家公司有相应的数值, 比如ASSETS, RETURN, DIVIDENDS等, 现在我希望对每一家公司找与之同行业且ASSETS在正负20%范围内的公司, 然后计算那些公司对Y=aX1+bX2+u的回归拟合值, 再计算此拟合值与原始公司的差异.

也就是说, 先要对数据库中的每家公司选择符合条件的公司, 这个数字是不固定的, 而PSMATCH2一般好象是做一对一配对比较多吧? 然后再对所有符合条件的公司做回归,求拟合值.

解释的比较复杂,希望达人能提供帮助, 先谢过

使用道具

板凳
voodoo 发表于 2009-6-28 18:22:00 |只看作者 |坛友微信交流群
//生成模拟数据
clear
set obs 10
gen ind = _n  // 10个行业
expand 100  // 每个行业100家公司
gen rnd = uniform()
gen stkcd = _n  //公司股票代码
drop rnd
gen asset = uniform()
gen ret = uniform()
gen div = uniform()
sort ind asset

//生成存储结果的变量
gen reg_obs = .
gen reg_r2 = .
gen res = .

local N = _N
forv i = 1/`N' {
        local ind = ind[`i']
        local asset = asset[`i']
        capture {  /*  同一行业内公司太少可能导致没有其它公司满足
                           条件0.8*`asset' <= asset & asset <= 1.2*`asset',
                           而这将导致regress、replace、predict等命令出错退出循环,
                           故加上capture
                        */
                regress ret div if _n != `i' & ind == `ind' & ///
                        0.8*`asset' <= asset & asset <= 1.2*`asset'
                replace reg_obs = e(N) in `i'
                replace reg_r2 = e(r2_a) in `i'
                predict r in `i', residuals
                replace res = r in `i'
                drop r
        }
}
巫毒上传,必属佳品!
坛友下载,三思后行!

使用道具

报纸
xueyuan456 发表于 2009-6-29 11:16:25 |只看作者 |坛友微信交流群
汗, 不好意思, 先多谢LS写的程序, 但是还是有些地方不甚明白.

首先, 一开始用了CLEAR之后, 数据全都不见了, 那么该如何调入原本的数据呢?
其次在设置和EXPAND虚拟数据的时候设的数字一定要和真实变量的数字一样多吗? 还是多一点无所谓?比如行业是19我设20可以吗?

最后, 在进行完LS给的操作后该怎么做? (我按照LS的指示算出来的RES什么的都是. 啊汗死了)

不好意思问题比较多, 多谢多谢了

使用道具

地板
liujiafei 发表于 2009-6-29 17:33:20 |只看作者 |坛友微信交流群
xueyuan456 发表于 2009-6-29 11:16
汗, 不好意思, 先多谢LS写的程序, 但是还是有些地方不甚明白.

首先, 一开始用了CLEAR之后, 数据全都不见了, 那么该如何调入原本的数据呢?
其次在设置和EXPAND虚拟数据的时候设的数字一定要和真实变量的数字一样多吗? 还是多一点无所谓?比如行业是19我设20可以吗?

最后, 在进行完LS给的操作后该怎么做? (我按照LS的指示算出来的RES什么的都是. 啊汗死了)

不好意思问题比较多, 多谢多谢了
你不提供数据,别人只能隔山打牛了……

使用道具

7
voodoo 发表于 2009-6-29 21:42:37 |只看作者 |坛友微信交流群
说清楚,就不看你的数据了(因为不是stata格式的.dta),试试:
gen reg_obs = .
gen reg_r2 = .
gen res = .

local N = _N
forv i = 1/`N' {
        local industry = industry[`i']
        local assets = assets[`i']
        capture {  /*  同一行业内公司太少可能导致没有其它公司满足
                           条件0.8*`assets' <= assets & assets <= 1.2*`assets',
                           而这将导致regress、replace、predict等命令出错退出循环,
                           故加上capture
                        */
                regress roa boardind salesrev lev if _n != `i' & industry == `industry' & ///
                        0.8*`assets' <= assets & assets <= 1.2*`assets'  // 包括所有满足条件的公司但不包括自身
                replace reg_obs = e(N) in `i'
                replace reg_r2 = e(r2_a) in `i'
                predict r in `i', residuals
                replace res = r in `i'  // 这就是你要的ROA差值!
                drop r
        }
}
巫毒上传,必属佳品!
坛友下载,三思后行!

使用道具

8
voodoo 发表于 2009-6-30 11:24:28 |只看作者 |坛友微信交流群
程序没错啊!我运算的结果见附件:

ls_result.rar (127.53 KB) 本附件包括:
  • ls_result.dta
巫毒上传,必属佳品!
坛友下载,三思后行!

使用道具

9
xueyuan456 发表于 2009-6-30 16:04:16 |只看作者 |坛友微信交流群
万分感谢voodoo , 程序已经能顺利运行了.
大谢~~

使用道具

10
costmanagement 发表于 2012-2-15 11:22:29 |只看作者 |坛友微信交流群
voodoo :请问如何显示出符合上面条件的配比公司?非常感谢!

使用道具

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

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

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

GMT+8, 2024-5-1 09:45