stata做计量入门常用代码一览!

2023-11-01

现在越来越多人有写论文的需求啦,经管领域的论文中,实证研究已成为必备操作。有了下面的代码,直接上手跑数据!

 

一、分组回归。

实证中,常常要分行业分年度、分省份分年度等分组回归,保存出回归出来的某些参数。statsby就是一个有用的命令,命令语句格式为:

statsby [exp_list] [, options ]: command

其具体内容,请参见STATA的help文件,即:

help statsby

在分组回归中,statsby最重要的是如下三个部分:

(1)[, options ],应使用分组变量,如:“,by(year industry)”;

(2)command,应选用相应的回归命令,如果是OLS,那么就为“reg y x1 x2”;

(3)[exp_list],要统计的相应参数,如:系数拟合值、拟和优度、自由度等,可参见对应command的help文件。

综合起来,命令可以写为:

use “d:\statsbydata.dta”,clear

sort year industy

Statsby _b _se e(r2) e(r2_a) e(df_m) e(df_r) e(F) e(N), by(year industry) saving(d:\statsbyresults.dta, replace): regress y x1 x2

其中:

d:\statsbydata.dta为举例使用数据库,包括变量为:y、x1、x2、year和industry,其中year和industry是用来做分组回归的分组标识变量;

sort是排序命令,建议养成好习惯对分组变量排序,为了后续研究做准备。

_b为各变量的回归系数;

_se为各变量的标准误;

e(r2)为回归方程的拟和优度r2;

e(r2_a)为回归方程的调整后r2;

e(df_m)为回归方程的模型自由度,一般的统计、计量的书籍都记为(K-1);

e(df_r)为回归方程的剩余自由度,一般的统计、计量的书籍都记为(n-K);

e(F)为回归方程的F值;

e(N)为进入回归方程的有效样本数N,一般的统计、计量的书籍都记为n,也即前述提及的n;

by(year industry),使用变量year和industry作为分组变量,进行分组统计; saving(d:\statsbyresults.dta, replace),将结果保存,也可以保存在临时表里;

regress y x1 x2,进行回归,这部分可以参看regress命令自身格式进行扩充。

此命令结束后,将在D盘下产生一个名字为statsbyresults.dta的文件,上述统计量都将在此文件中。这里需要说明的是_b和_se是系统生成的向量,因此不能随便赋给变量,而e()

则是标量,可以赋值给一个变量,譬如在命令中可以写:“R_square=e(r2)”,这样在statsbyresults.dta就会出现一个R_square,替代原有的系统默认生成的变量。即使是系统生成的变量,也不用担心,因为变量的label可以区分具体的变量意义。

二、使用statsby命令后计算各回归方程中各回归系数的t值和p值

这里又发现了新的问题,首先在regress命令结果中的e()函数中,没有t值和对应的p值,这对于想验证相应分组模型对应的系数是否显著或是模型是否显著就很麻烦,因此,这里只能通过t值的计算公式和STATA提供的t检验的p值函数。具体步骤如下:

首先切换到结果表,

save “d:\statsbydata.dta”,replace

use “d:\statsbyresults.dta”, clear

其中,save命令使用要十分小心,会把原有的数据库内容改变,因此存在大量的STATA的使用讲解中都提及到如何避免这个问题的处理,请自行参考。本文为了说明方便,简化处理。

回归系数的t值公式为:ti?其中: ?ise(?i)t(n?K)

?i是第i个回归系数,可以在结果表中找到相应变量,以“_b_”开头的、以对应回归变量名为结尾的,如:“_b_x1”为x1的回归系数、“_b_cons”为截距项回归系数;

se(?i)为其标准误,可以在结果表中找到相应变量,以“_se_”为开头的、以对应回归变量名为结尾的,如:“_se_x1”为x1的回归系数的标准误、“_se_cons”为截距项回归系数的标准误;

n?K为回归方程剩余自由度,即e(df_r),如果没有赋给变量,那么系统自动生成一个变量,其label会标注“e(df_r)”,此处回归的系统变量为_eq2_stat_4。

因此,计算x1回归系数的t值和p值可以用如下的命令:

gen x1_t=_b_x1/_se_x1

gen x1_p=ttail(_eq2_stat_4,abs(x1_t))

其中:

ttail(e(df_r),abs(t_value))为计算t检验值对应的p值函数,具体函数要求请参考help文件;abs()为取绝对值函数。

这样,d:\statsbyresults.dta文件中生成了两个新的变量x1_t和x1_p,分别为x1回归系数的t值和对应的p值。

标准化:egen x22=std(x2)

. sum x22

三、使用statsby命令后计算各回归方程F值对应的p值

同t值和对应的p值一样,e()中也没有给出各个模型的F值对应的p值,因此需要通过STATA提供的F检验的p值函数来计算生成。具体步骤如下:

r2/(K?1)回归方程的F值公式为:F?, (1?r2)/(n?K)

其中:

r2为回归方程拟和优度,即e(r2);

K?1为回归方程的模型自由度,即e(df_m);

n?K为回归方程的剩余自由度,即e(df_r)。

而计算F值相应p值的函数为Ftail(e(df_m),e(df_r),e(F))。

按照此分组回归模型形成的结果数据中,使用系统生成变量分别为:_eq2_stat_3为e(df_m)、_eq2_stat_4为e(df_r)、_eq2_stat_5为e(F),那么F值的相应p值为:

gen PF=Ftail(_eq2_stat_3, _eq2_stat_4, _eq2_stat_5)

则在d:\statsbyresults.dta文件中生成了一个新的变量PF,为相应回归方程的F值对应的p值。

四、使用statsby命令后如何生成各组回归方程的拟合值和残差等

在实际分组回归后,研究还需要保存相应因变量的拟合值或是方程的残差,如果不使用statsby的话,需要一个一个回归,然后使用predict命令,如:

reg y x1 x2 if year==2002 & industry==“A0“

predict yhat2002A0

predict resid2002A0,residuals

这太麻烦了,还要面临产生变量等问题。在使用statsby命令后,可以通过回归方程的回归系数直接计算相应的拟合值和残差,具体步骤如下:

首先打开d:\statsbydata.dta数据:

use “d:\statsbydata.dta”,clear

merge m:1 year industry using “d:\statsbyresults.dta”

gen yhat=_b_cons+_b_x1*x1+_b_x2*x2

gen resid=y-yhat

其中,merge是合并命令,m:1是多对一合并,要求using后的数据库必须按照year和industry排序并且是唯一排序,由于statsby命令结果自然是排好序的,这里就没有再排序。_b_cons、_b_x1和_b_x2分别是截距、x1的回归系数和x2的回归系数。合并的结果是,所有在d:\statsbydata.dta的变量数据都在year和industry的分类基础上合并到对应的样本中。这样就完成了分组回归后的因变量拟合值和残差的生成。

本文仅是就在STATA中使用statby完成分类回归工作及相应结果生成的简单描述,其他复杂内容,可以参考相应的help文件和编程知识进一步扩展。

四、导出回归结果(括号T值)

est store m1

outreg2 [m1]using myfile.doc,tstat e(r2_a,F) bdec(3) tdec(2)

五、缩尾winsor

先通过help winsor2安装需要的winsor2,

默认1%-99%进行缩尾,并生成后缀为_win的新变量,代码如下: 

winsor2 Y X1 X2 X3 X4 ,suffix(_win) label

六、描述性分析和相关分析

描述性:sum varname

相关性:pwcorr_a   varname
pwocrr_a命令是经管之家连老师的教程,需要自行下载安装,使用该命令可以输出带*的相关性系数,*表示显著性水平。pwcorr_a命令更好用,可以显示相关性显著的*号。

七、方差膨胀因子VIF 这个现在论文中不怎么用了,但是也可以加上

回归之后输estat vif,显示模型vif,过大就存在多重共线

八、求中位数或分位数

  1. egen x_med = median(x)
  2. egen x_p50 = pctile(x), p(50)

九、取绝对值

原始变量为x,产生一列新的变量,比如为y等于x的绝对值,那么命令为
gen y=abs(x)
参考 help abs或者help functions 

十. 取滞后项或未来一期项

滞后:gen newvar=L.oldvar

未来一期:gen newvar=F.oldvar

 

asdoc sum,replace

asdoc sum,append 新增到已有的表中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stata做计量入门常用代码一览! 的相关文章

  • 李宏毅2023机器学习作业HW03解析和代码分享

    ML2023Spring HW3 相关信息 课程主页 课程视频 Kaggle link Sample code HW03 视频 HW03 PDF 个人完整代码分享 GitHub Gitee GitCode P S 即便 kaggle 上的时
  • 我的C++学习日志

    安装Mac上的C 编辑器 clang cmake 安装方法 Xnode shell 编译 方法 在Mac上设置iTerm 设置方法 写出第一个 Hello World 的程序 学习计划 听youtube视频 阅读c primer
  • s5pv210-uboot移植前言

    最近找工作 买了块飞凌的ok210 使用s5pv210的开发板 但是最重要的nandflash居然不开源 很恼火 于是想从头自己在这个板子上开发 计划这个工作做两年 看看两年的业余时间到底能够搞出点什么东西出来 感觉难度应该很大 但是应该可
  • JDK17遇到报错 module java.base does not “opens java.util“ to unnamed module 问题解决

    在Java 9及以上版本运行应用程序时 在各种情况下都会发生此异常 详细可以参考 module java base does not opens java lang to unnamed module 滔天蟹 博客园 https www c
  • SpringSecurity学习笔记(四)注销登录、获取用户数据

    参考视频 编程不良人 注销登录 默认情况下 如果我们已经登录了 然后get方式访问 logout接口就会注销登录 下次再访问受限资源就会提示我们重新登录 我们可以在ss过滤器的配置里面添加下面的配置 and logout logoutUrl
  • tensorflow 运行时候遇到 Error in `python': double free or corruption (fasttop)

    参考https github com tensorflow tensorflow issues 6968 我是用pip install no binary all force reinstall numpy 解决的
  • 20171007离线赛总结

    考试时的思路 第一题先循环水一个80分出来 第二题先水70分 再用倍增枚举每一个坦克对应的下一个坦克 第三题直接上DFS 能拿多少拿多少 题解 第一题 S数 这道题 我打了个表 然后用二分法来做 记录每个答案的位置 即可得解 但是最后时间不
  • IDE/mingw下动态库(.dll和.a文件)的生成和部署使用(对比MSVC下.dll和.lib)

    文章目录 概述 问题的产生 基于mingw的DLL动态库 基于mingw的EXE可执行程序 Makefile文件中使用Qt库的 a文件 mingw下的 a 文件 和 dll 到底谁起作用 小插曲 mingw 生成的 a文件到底是什么 为啥m
  • jquery easyui combobox加载数量过多引起渲染页面缓慢问题

    有些时候 当我们用easyui combobox控件加载页面数据的时候 由于数据量过多 几千几万 而且如果操作频繁的话 进而会引起需要加载半天才能去打开下拉面板 还有可能卡死 其实这种问题主要时间浪费在了渲染下拉面板上面 作者在遇到这种问题
  • linux内核-网络

    网络栈 linux内核网络协议栈架构分析 全流程分析 干货 舞起勿忘的博客 CSDN博客 内核协议栈 https blog csdn net yming0221 column info linux kernel net netfilter的
  • Scala作业(9)---模式匹配&&&高阶函数

    模式匹配 1 利用模式匹配 编写一个swap函数 接受一个整数的对偶 返回对偶的两个组成部件互换位置的新对偶 下面是使用模式匹配编写的 swap 函数 接受一个整数的对偶 返回对偶的两个组成部分互换位置的新对偶 def swap pair
  • 【零基础 快速学Java】韩顺平 p156-170 数组、3种初始化、赋值机制

    数组 数组可以存放多个同一类型的数据 数组也是一种数据类型 是引用类型 即 数组就是一组数据 使用方法 使用方式1 动态初始化 使用方式2 动态初始化 使用方式3 静态初始化 注意事项 数组赋值机制 值传递 VS 引用传递 jvm的内存 栈
  • Redis第二十九讲 Redis集群发布订阅模式以及Redis集群事务

    Redis集群状态下的发布订阅 在Redis的几个基本数据结构介绍中 有讲过List数据结构 可以使用List的阻塞特性实现订阅消费 关于Redis的底层数据结构可以参考我的这篇博客 Redis第六讲 Redis之List底层数据结构实现
  • vue中使用vconsole

    Vue中使用vconsole npm install vconsole 新建 vconsole js 文件 在文件中写入 import Vconsole from vconsole const vConsole new Vconsole e
  • ToList()所带来的性能影响

    原文 ToList 所带来的性能影响 前几天优化师弟写的代码 有一个地方给我留下很深刻的印象 就是我发现他总是将PLINQ的结果ToList lt gt 然后再返回给主程序 对于这一点我十分不解 于是去问他是什么原因 得到的答案很幽默 因为
  • sequence_item、sequence、sequencer、driver的关系

    框图 简单描述 driver sequencer sequence sequence item 细节理解 最初的验证平台只需要driver即可为什么还需要sequence机制 sequence机制的内部协议 sequence还有很多细节需要
  • 虚拟远程桌面

    微型服务器 太难理解了 我会为你简化它 考虑一个供应商部署的服务器机器来托管其众多客户的网站 为了在这台机器上设计 VPS 提供商会将其划分为多个分区并在虚拟级别上隔离它们 虚拟服务器 如果考虑性能 VPS 显然不如其父服务器 但是 就功能
  • LCD段码显示屏常见故障问题总结

    1 液晶屏有内污 一般现象为黑点 污点 纤维 指LCD内有纤维 2 液晶屏有内刮 一般现象为黑线 白线 PI被刮伤表现为线条刮伤 3 液晶显示颜色不均 一般现象为色彩不一致 彩虹 即LCD的色彩不均匀 在中间彩虹或杠边彩虹以及彩色条纹不均
  • C++之继承

    1 类与类之间的关系有哪些 与类之间的关系分为纵向和横向两种 纵向就是继承 横向包括 依赖 关联 聚合和组合 这里不进行解释 详解链接 https blog csdn net u014694510 article details 88316

随机推荐

  • 关于卷积和其偏置的详细动态图

    动态图 每走一步 得到的图片的值为a b c bias 其中a为卷积核在第一个信道上卷积的值 b为卷积和在第二个信道上卷积的值 c为卷积核在第三个信道上卷积的值 将他们加起来再加上偏置 而在TensorFlow中为什么用conv1 bias
  • Vue基础

    前期回顾 字符串 vue可能会用到的内容 indexOf lastIndexOf 查询字符串下标 找不到返回 1 split 分割为数组 slice start end 切割字符串 subString start end 截取字符串 按下标
  • 360移动安全岗位实习生笔试和面试之旅

    之前抱着试一试的心态投了360的安全岗位 个人觉得移动安全在未来会有很大的需求量 并且人才比较少 安全圈子本来就很小 安全技术本来价值就很高 所以很多大公司以及真正的黑客很少分享一些安全方面的技术 这些感受是我作为一个脚本小子半年来的感触
  • 为什么http请求会缓存?显示from disk cache?

    请求一个接口 发现status code 200 但是居然是否 from disk cache 接口也会缓存吗 请问是什么原因 问题描述 请求接口 发现拿的还是旧数据 排查了一天 后面和前端发现请求接口只花了1ms 然后发现接口状态为 20
  • Dynamics CRM 2016 常用基础操作

    来源 https blog csdn net jxian2009 article details 22179447 http www cnblogs com allenhua archive 2012 12 25 2832473 html
  • Unity 通过代码为一个物体添加多个材质球materials

    Unity 通过代码为一个物体添加多个材质球materials Unity的MeshRenderer提供了Materials数组 支持同时挂多种材质 这样做的目的是 为含有Mesh对象的多个SubMesh使用不同的材质 渲染不同的效果 需要
  • 【acadres.dll文件丢失怎么办】acadres.dll文件丢失的解决办法

    acadres dll文件丢失怎么办 acadres dll是一个windows系统中必备的dll文件 该类型文件的全称为Dynamic Link Library 意思就是动态链接库 不过各位小伙伴不必在意 我们只需要知道它是一个电脑中非常
  • python三维曲面图投影_matplotlib:在2dp上投影三维曲面

    有与 Axes3 相当的吗DSubplot plot 表面 在2D里 我试图在matplotlib中绘制网格在XY平面上的投影 因此不是在 3d 模式下 在import numpy as np import matplotlib pyplo
  • 计算机考研专业课考c语言的大学,【择校必看】十三所计算机专业课只考数据结构的985院校!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 敲黑板 本文涉及到的学校计算机专业考研只考数据结构 其中部分院校同时也会考算法 C语言等相关内容 但是 相对其他几门 无疑在专业课的复习上大大降低了难度 如果各位同学目前的专业课复习并不理想 也
  • 微信小程序-解决scroll-view抖动

    微信小程序scroll view抖动 原因 产品需要点击换一换 列表置顶并刷新 所以需要动态绑定scroll view里面的scrollTop属性 scrollTop属性用法需要保存 scroll时的值 如果在 scroll时直接复制给sc
  • 01内存对齐之结构体偏移量

    01内存对齐之结构体偏移量 前提概念 结构体偏移量 所谓偏移量 就是我们每个结构体成员的首地址而已 1 求结构体成员偏移量的两中办法 1 简单求结构体成员偏移量 注意 求偏移量时 必须将地址转成int整数才能求偏移量 不能直接地址相减 否则
  • Easyexcel导出带下拉框选项excel模板(解决下拉框超50个的问题)

    1 为了避免excel下拉框选项过多会导致内容不显示 或者生成的时候报错 String literals in formulas can t be bigger than 255 characters ASCII easyexcel 将下拉
  • MobaXterm下载提示输入Master密码,如何使用ResetMasterPassword工具恢复MobaXterm和设置MobaXterm主密码

    MobaXterm忘记主密码 如何恢复和设置主密码 点此下载ResetMasterPassword MobaXterm 20 0汉化版下载 MobaXterm是一款非常好用的远程管理软件 支持SSH FTP 串口 VNC X server等
  • 基础算法题——异或和之和(位运算、组合数)

    异或和之和 题目链接 解题思路 解题方案 暴力枚举 时间复杂度 O n3 超时 位操作 组合数 解铃还须系铃人 对于这种与 或 异或的位操作 一般也是通过位操作来解答 总结规律 题目要求在 n 个正整数中枚举 3 个数进行位操作 若要确定
  • Spring Boot v2.4.4源码解析(十)依赖注入原理下 —— 依赖解析

    从 Spring Boot v2 4 4源码解析 八 依赖注入原理上 由一道面试题引起的思考 Autowired和 Resource的区别 可以看出 解析待注入字段或参数主要由 org springframework beans facto
  • windows与linux字符集转换

    linux下不能显示windows下的汉字 Windows和LINUX中缺省使用的字符集不同 Windows下工具可以识别LINUX中使用的UTF8字符集 而LINUX下一般工具不会自动转换Windows下的GBK字符集 如果确实需要显示
  • Mysql数据备份及数据恢复

    数据备份概述 根据数据备份的方式 分为逻辑备份和物理备份 物理备份 物理备份就是备份数据文件了 比较形象点就是cp下数据文件 但真正备份的时候自然不是的cp这么简单 逻辑备份 将数据导出至文本文件中 mysqldump是采用SQL级别的备份
  • IDEA配置Scala,使用IDEA创建第一个Scala项目

    1 首先安装IDEA IDEA的官网 https www jetbrains com idea download section mac 选择你对应的系统 版本选择社区版即可 如果有需要的可以选择Ultimate版 2 安装后 打开IDEA
  • java常用类及其方法使用StringBuffer

    基本介绍 1 StringBuffer类是对String类的增强 其代表了可变字符序列 可以对字符串的内容进行增删 2 很多方法和String是相同的 但是StringBuffer是可变长度的 3 StringBuffer是一个容器 4 类
  • stata做计量入门常用代码一览!

    现在越来越多人有写论文的需求啦 经管领域的论文中 实证研究已成为必备操作 有了下面的代码 直接上手跑数据 一 分组回归 实证中 常常要分行业分年度 分省份分年度等分组回归 保存出回归出来的某些参数 statsby就是一个有用的命令 命令语句