zoukankan      html  css  js  c++  java
  • stata学习笔记(七):回归分析和稳健性检验

    1.分组回归

    sort state
    by state:reg xxx xxx

    但是这样不能直接用outreg导出,采用下面的方法

    forvalues t = 2001/2008{
       qui reg y x if year == `t'
       est store r_`t'
    }

     然后不小心看到了一位大神的三种方法....没试过先mark

    三种策略,建议你都试试:
    (1)直接用outreg2的一项功能,   // help outreg2##s_1

    bysort compliance: outreg2 using c3.doc, replace: reg ares time size ROA growth lev profquality

    (2) 直接用outreg2的另一项功能,    // help outreg2##s_2

    levelsof compliance, local(cl)    // help levelsof
    cap erase c3.doc
    foreach lv of local cl {
        reg ares time size ROA growth lev profquality if compliance == `lv'
        outreg2 using c3.doc
    }

    (3)手工循环(估计->保存估计结果)->统一输出

    levelsof compliance, local(cl)
    foreach lv of local cl {
        reg ares time size ROA growth lev profquality if compliance == `lv'
        est store cl_`lv'
    }
    outreg2 [cl_*] using c3.doc, replace

    2.交叉项

    genicv可以一键生成很多交叉项
    
    ##可以直接表示交叉项。
    
    【例子】
    
    ssc install genicv
    
    sysuse auto,clear
    
    genicv length weight foreign \会生成4个交叉项,所以可能情况,并且有label
    
    reg price length weight length_weight
    
    *如果不愿意生成,直接用
    
    reg price c.length##c.weight \和上面回归一样一样的

     3.工具变量

    • 逆米尔斯比率
    • imr=normalden(predict)/normal(predict)
    • 两阶段回归
    ivreg2 roasd size age state indratio hold_share_w income_increase_w (vc=ht vc_den young)

    3.群聚调整

    *面板数据做回归的时候,如果不加cluster选项,默认的标准差假定模型的标准差对于给定个体在时间上是独立的,而事实上往往在各期之间会有相关性。这种假定导致了标准差的低估。加上的话系数不会有改变,标准差的值会上升,模型更加robust.

    reg y x, cluster(code)

     4.内生性问题——heckman两阶段回归

    举个例子:
    第一阶段:是否打工比如 y=f(var1 var2 var3 var4),  其中y是是否打工的虚变量
    第二阶段:对打工者来说,打工的时间长短 m=g(var1 var2 var3)
    heckman m var1 var2 var3, select(y=var1 var2 var3 var4) twostep

    要说明两点:
    1、关键要找到var4这样一个或几个变量,只决定是否打工,而不影响打工时间
    2、heckman还有很多的option,无法一一说明,你自己根据需要去找

    5.回归结果导出

    outreg2 [model1 model2 model3] using "C:UsersASUSDesktopmyfile", tstat e(r2_a,F) bdec(3) tdec(2)

     5.回归残差保存

    reg y x1 x2
    predict e,r
    xb           xb, fitted values; the default
           stdp         calculate standard error of the fitted values
           ue           u_i + e_it, the combined residual
         * xbu          xb + u_i, prediction including effect
         * u            u_i, the fixed- or random-error component
         * e            e_it, the overall error component

    如果用e,得出的结果是每个公司每年的残差都不同,如果用u,则是同一个公司不同年度的残差是一样的

    因为u是个体效应,e是真正的残差项,区别就在于用FE还是RE时地位不同

  • 相关阅读:
    浏览器图片渲染优化教程
    C#把 DataTable转换为Model实体
    .NET静态变量与静态方法并发的问题
    三种方法查看MySQL数据库的版本
    Mysql 存储引擎 InnoDB与Myisam的主要区别
    dotnet core 出现Can not find runtime target for framework '.NETCoreApp,Version=v1.6' 的解决办法
    细说 C# 中的 IEnumerable和IEnumerator接口
    ASP.NET CORE dotnet run 命令使用debug方式运行
    安装了插件情况下 强制开启火狐浏览器的多进程功能
    JSON 字符串中的中括号和大括号区别详解
  • 原文地址:https://www.cnblogs.com/pursuit1996/p/5023934.html
Copyright © 2011-2022 走看看