【毕设记录】Stata筛选控制变量

本文又名《筛选 能让解释变量显著的 控制变量》

1、先是使用了gsreg

这个方法之前计量课没有学,是在b站找到的:【Stata】gsreg搭配reghdfe的高维固定效应筛选最优控制变量_哔哩哔哩_bilibili

基本格式是:gsreg 因变量 待筛选控制变量*n , fixvar( 解释变量) replace cmdest(回归函数)  cmdoptions(回归函数的附加内容)

gsreg OFDI Return ROA Q PC Turnover Lev Size Analyst MV ROE SOE Age Cashratio MB , fixvar( financial institutional) replace cmdest(reghdfe)  cmdoptions(absorb(i.year i.stkcd ) vce(cluster stkcd))

2、再使用了up“拿铁一定要加冰”自己开发的oneclick

具体可以看这个【Stata】一键显著OneClick4.0,兼容更多回归方式_哔哩哔哩_bilibili

视频的置顶评论有作者的公众号链接,解释原理和怎么用。

可惜也没跑出来,结果好像是没有筛选出来能用的


3、控制变量组合的筛选-tuples

最后看了连享会:Stata:控制变量组合的筛选-tuples| 连享会主页 (lianxh.cn)

 ——“  gsreg 难以配合 reghdfe 等命令进行使用 ”  [摊手]

4、自己逐一尝试

最终还是得用这个老办法找,好处是可以满足自己的所有需求(包括系数符号、显著性)。得一个个试,可选择的控制变量多了之后,就需要排列组合好复制粘贴。

方法一:组合计算器在线计算器: 组合生成器 (planetcalc.com)

方法二:Python生成组合不可重复的排列组合可重复、不可重复取组合生成器python代码 - 简书 (jianshu.com)

def combinations(array,cSpace,index,m):  
    #不可重复取组合生成器
    if(m==0):
        for i in range(cSpace.__len__()):
            print(cSpace[i],end='')
        print(' ',end='')
        return
    for i in range(array.__len__()):
        cSpace[index] = array[i];
        if index==0:
            combinations(array=array,cSpace=cSpace,index=index+1,m=m-1)    
        elif index>0:
            cIndex=array.index(cSpace[index])
            pIndex=array.index(cSpace[index-1])
            if cIndex>pIndex:
                combinations(array=array,cSpace=cSpace,index=index+1,m=m-1)  


if __name__ == '__main__':
    Tuple = ('Size','SOE','Lev','Return','Cashratio','MB','Age','ROA ','Q','PC','Turnover','Analyst','MV','ROE');
    array=list(Tuple)#元素
    m=3#所取元素个数
    cSpace=list(range(m))
    combinations(array=array,cSpace=cSpace,index=0,m=m)
    print('')

  • 17
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值