Stata Intermediate & Monte Carlo Simulation

Chap2&3, Mar 3rd, 2025

pdf version, html version


Chap2 Stata进阶

1.bysort, egen, binscatter

  • 数据类型
Storage typeMinimumMaximumClosest to 0 without being 0bytes
byte-127100+/-11
int-32,76732,740+/-12
long-2,147,483,6472,147,483,620+/-14
float-1.70141173319*10^381.70141173319*10^38+/-10^-384
double-8.9884656743*10^3078.9884656743*10^307+/-10^-3238
  • 数据格式转换
    format varlist %fmt
    format %fmt varlist
    

    %9.2f

2.数据类型转换:destring, tostring, encode, decode, real

  • 字符串提取:
    gen newvar1 = substr( str1 ,1,3)
    gen newvar2 = substr( str2 ,-2,.)
    
  • 日期数据处理:
    gen date1 = date( date , "YMD")
    

3.数据拆分与合并:横向拆分与纵向拆分,append, merge

merge 1:1 varlist using filename
keep if _merge == 3
drop _merge

merge m:1 varlist using filename, nogen

merge 1:m varlist using filename
merge m:m varlist using filename
merge 1:1 _n using filename

4.长宽数据转换:reshape

reshape wide var, i(id) j(year)
reshape long var, i(id) j(year)

5.条件语句

local score = 88
if `score' >= 90{
	di "优秀"
}
else if `score' >= 80{
	di "良好"
}
else if `score' >= 70{
	di "一般"
}
else if `score' >= 60{
	di "合格"
}
else{
	di "不合格"
}

6.循环语句

  • while
set obs 1
gen sum = 0
local i = 1
local n = 100
while `i' <= `n' {
	qui replace sum = sum + `i'
	local i = `i' + 1
}
list
  • forvalues
set obs 1
gen sum = 0
forvalues i = 1/100 {
	qui replace sum = sum + `i'
}
list
  • foreach in/of
foreach v of varlist d81-d87{
	gen `v'educ = educ*(`v')
}

Chap3 一元线性回归及蒙特卡罗模拟

chap3.1_Stata模拟重复抽样.do download
chap3.2_simulate修改.do download
chap3.3_同方差异方差.do download

安慰剂检验:参考BV13E421w79K

可视化网站: Ordinary Least Squares, PGFplots.net, Stata Graph Gallery, Stata Visual Library


第二章上机练习

//C8
*(i)
clear
set seed 1234
set obs 500
gen x = runiform()*10
sum x
*(ii)
gen u = rnormal(0, 1)*6
sum u
*(iii)
gen y = 1 + 2 * x + u
reg y x
*(iv)
predict uhat, r
egen suh = sum(uhat)
sum suh
egen sxuh = sum(x*uhat)
sum sxuh
*(v)
egen su = sum(u)
sum su
egen sxu = sum(x*u)
sum sxu
*(vi)
clear
set seed 10101

3月15日补充:

Stata:append 命令动图演示
Stata:merge 1:1 动图展示
Stata:merge 1:m 动图演示
Stata:merge m:1 动图演示
Stata:使用 spread 和 gather 进行长宽数据转换动图演示