👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:最新专题 | 计量专题 | 关于连享会
🍓 课程推荐:2024 空间计量专题
主讲老师:范巧 (兰州大学)
课程时间:2024 年 10 月 2-4 日 (三天)
课程咨询:王老师 18903405450(微信)
课程特色 · 2024空间计量:
👉 一、从“零基础”到“高水平”的课程设计
兼顾基础知识、主流模型与前沿模型 既考虑软件安装、程序编写以及空间权重矩阵设计等 基础知识 讲授,更强调时空面板地理加权回归模型、贝叶斯空间计量模型、矩阵指数模型、空间计量交互模型与空间面板似不相关回归模型等 前沿模型 的传授。
👉 二、“保姆级”的空间计量代码
编写与校准所有模型的MATLAB代码,简化实操环节 模型的估计与检验等 仅按照提供的Excel数据版式 搜集与整理原始数据,即可一次性出结果并作图。
👉 三、“最多上新” 的内容体系
新增 矩阵指数模型、短面板空间似不相关模型、空间计量交互模型、贝叶斯空间计量模型等 新增 前沿应用案例,包括空间计量与索洛余值法、随机前沿分析与数据包络分析等的互嵌研究,阐释基于空间计量的产业空间结构优化评价方法。 新增 Dagum空间基尼系数、核密度估计、空间马尔科夫链与空间收敛性等内容,阐释现实研究中对空间收敛性的应用“谬误”。
作者:秦范 (北京大学)
邮箱:qf13032861571@163.com
编者按:本文主要整理自「replication-template」,特此致谢!
目录
1. 引言
2. 论文重现代码模板
2.1 文件管理和路径设定
2.2 日志文件命名规则
2.3 运行环境系统诊断
2.4 安装所需命令包
2.5 完整代码模板
3. 相关推文
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
1. 引言
为提高论文重现效率,有必要遵循一定规则为代码设定良好的运行环境。本文主要介绍一种常用代码模板,读者可根据个人习惯修改。
2. 论文重现代码模板
2.1 文件管理和路径设定
文件管理:主要有两种数据和代码文件管理结构。一是所有代码置于同一文件夹;二是主要代码单独放置,重现论文过程中创建的其他代码文件则置于文件夹中。
/*
Structure of the code, two scenarios:
- Code looks like this (simplified, Scenario A)
directory/
code/
main.do
01_dosomething.do
data/
data.dta
otherdata.dta
- Code looks like this (simplified, Scenario B)
directory/
main.do
scripts/
01_dosomething.do
data/
data.dta
otherdata.dta
*/
路径设定:设定工作路径和根路径。在打开 Stata 软件后显示的路径即当前工作路径,可用 pwd
获取当前路径作为之后的工作路径。根路径可以设定为研究项目的根文件夹存放位置,如上文代码中的 directory/
。
local pwd : pwd // the pwd after you just open stata
cd .. // change to the program directory and set as rootdir
global rootdir : pwd
cd `pwd' // return to the initial directory
2.2 日志文件命名规则
为保证每次运行结果得以高效记录备份,有必要使用日志文件。首先,单独创建一个文件来存放所有日志文件。其次,将具体运行时间作为日志文件名称后缀。代码运行的具体时间可使用 c()
函数(可运行 creturn list
查看该函数的具体内容)。
global logdir "${rootdir}/logs"
cap mkdir "$logdir"
local c_date = c(current_date)
local cdate = subinstr("`c_date'", " ", "_", .) // repace all " " in "`c_date'" with "_"
local c_time = c(current_time)
local ctime = subinstr("`c_time'", ":", "_", .)
log using "$logdir/logfile_`cdate'-`ctime'-`c(username)'.log", name(ldi) replace text
2.3 运行环境系统诊断
此时还需要 creturn
来告知目前代码运行的 Stata 版本、处理器甚至计算机系统等信息,而这些信息对于是否能成功、高效运行具体代码至关重要。
/* SYSTEM DIAGNOSTICS */
di "=== SYSTEM DIAGNOSTICS ==="
di "Stata version: `c(stata_version)'"
di "Updated as of: `c(born_date)'"
di "Edition: `c(edition_real)'"
di "Processors: `c(processors)'"
di "OS: `c(os)' `c(osdtl)'"
di "Machine type: `c(machine_type)'"
di "=========================="
2.4 安装所需命令包
首先,有必要在根路径下新建 ado
文件夹,以存放为了重现某篇论文额外需要的所有命令包。
capture mkdir "$rootdir/ado"
sysdir set PERSONAL "$rootdir/ado/personal"
sysdir set PLUS "$rootdir/ado/plus"
sysdir set SITE "$rootdir/ado/site"
sysdir
其次,明确所需命令包可由 ssc install
还是 net install
安装。前者指从官方统计软件组 (Statistical Software Components) 中下载,后者则只需要命令包下载链接。
* ssc install
if !missing("`ssc_packages'") {
foreach pkg in `ssc_packages' {
cap `pkg'
if _rc == 199 { // _rc the return code from the most recent capture command
dis "Installing `pkg'"
ssc install `pkg', replace
}
which `pkg'
}
}
* net install pkgname, from(directory_or_url)
最后,在所有命令下载完成后,运行 mata: mata mlib index
将命令包集合成一个新的库。并且,要让软件在之后的代码运行中,不仅在 Stata 的 ado 中寻找包,还要在新的命令库中寻找。
2.5 完整代码模板
/* Template config.do */
* NOTE: you should always put "config.do" in the same directory as "main.do"
* *** Add required packages from SSC to this list ***
local ssc_packages "winsor winsor2" // ensure pkgs can be ssc installed
* *** Set directory
local pwd : pwd // Captures the current directory, the one when you just open Stata
cd .. // the directory of program
global rootdir : pwd // Now capture the directory to use as rootdir
/*You normally need to make no further changes below this, unless "net install" packages */
set more off //Tell Stata to pause or not pause for --more-- messages
cd `pwd' // Return to the initial directory and never again use cd
/* Create log file including info about how and when the program was run */
global logdir "${rootdir}/logs"
cap mkdir "$logdir"
local c_date = c(current_date) // you can use creturn list to check what it is
local cdate = subinstr("`c_date'", " ", "_", .) // repace all " " in "`c_date'" with "_"
local c_time = c(current_time)
local ctime = subinstr("`c_time'", ":", "_", .)
cap log close _all
log using "$logdir/logfile_`cdate'-`ctime'-`c(username)'.log", name(ldi) replace text
/* SYSTEM DIAGNOSTICS */
di "=== SYSTEM DIAGNOSTICS ==="
di "Stata version: `c(stata_version)'"
di "Updated as of: `c(born_date)'"
di "Edition: `c(edition_real)'"
di "Processors: `c(processors)'"
di "OS: `c(os)' `c(osdtl)'"
di "Machine type: `c(machine_type)'"
di "=========================="
/* install any packages locally */
capture mkdir "$rootdir/ado"
sysdir set PERSONAL "$rootdir/ado/personal"
sysdir set PLUS "$rootdir/ado/plus"
sysdir set SITE "$rootdir/ado/site"
sysdir
/* add packages to the macro */
if !missing("`ssc_packages'") {
foreach pkg in `ssc_packages' {
cap `pkg'
if _rc == 199 { // _rc the return code from the most recent capture command
dis "Installing `pkg'"
ssc install `pkg', replace
}
which `pkg'
}
}
/* "net install" packages */
net install outreg2, from("http://fmwww.bc.edu/RePEc/bocode/o") replace force // Egs
mata: mata mlib index
//the LAST command after installing all packages, let Mata know to search the added function library
log close _all
3. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 重现 复现, m
安装最新版lianxh
命令:
ssc install lianxh, replace
专题:专题课程 公开重现资料时如何发布涉密数据 专题:论文写作 连享会:论文重现网站大全 Stata论文复现:女性领导人当选是否有助于更多女性从政-RD Stata论文复现:累进税率真的能减少不平等吗? Stata-JPE论文重现:资本深化与非平衡经济增长 Stata 论文复现:Temperature Shocks and Economic Growth Stata 论文复现:儿童权利公约对儿童健康的影响 可重复性研究:如何保证你的研究结果可重现? 专题:Stata资源 会计期刊论文的结果可重现吗? 专题:数据处理 Stata结果重现:dependencies命令-外部命令的版本控制 专题:回归分析 Stata论文复现:高维线性回归的变量筛选-baing-ocmt
🍓 课程推荐:2024 空间计量专题
主讲老师:范巧 (兰州大学)
课程时间:2024 年 10 月 2-4 日 (三天)
课程咨询:王老师 18903405450(微信)
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。