实证 Stata 代码命令汇总
前段时间学习stata整理的笔记 ,参考资料stata统计分析从入门到精通和其他大佬分享的杂七杂八的内容 仅供个人学习 参考使用
一、数据导入和管理
(一)数据导入
- 清除内存中的所有现有数据:
clear
- 设置工作路径(根据你的文件位置进行调整):
cd "C:\Desktop\实证代码命令大全"
- 从 Excel 文件导入数据:
import excel "example.xlsx", firstrow
- 从 CSV 文件导入数据:
import delimited "example.csv", delimiter(",")
- 从 Stata 文件(.dta 格式)导入数据:
use "example.dta", clear
- 检查导入的数据:
describe
list in 1/5
(二)数据导出
- 导出数据到 Excel 文件:
export excel using "exported_data.xlsx", firstrow(variables)
- 导出数据到 CSV 文件:
export delimited using "exported_data.csv", delimiter(",")
- 保存为 Stata 格式的数据文件:
save "exported_data.dta", replace
二、数据的处理
(一)生成新变量
gen new_var = var1 * var2
gen new_var = ln(var)
(二)格式转换
- 将字符串日期转换为 Stata 日期:
gen date_var = date(date_string, "DMY")
- 年份生成:
gen year=real(substr("统计日期", 1, 4))
- 字符转为数字格式:
destring year, replace
(三)缺失数据
- 如果变量 var1 和 var2 的任何行存在缺失值,则删除该行:
drop if missing(varl) | missing(var2)
- 或者通过循环删除变量缺失的数据:
foreach i in 变量 1 变量 2 变量 3 {
drop if `i' ==.
}
(四)异常数据
- 将 var2 中不合理的负值设为 0:
replace var2 = 0 if var2 <0
- 缩尾处理:
winsor2 last_income, replace cuts(0 99) //缩尾代替
winsor2 last_income, replace cuts(0 99) trim //缩尾删除
(五)重命名变量
rename var3 new_var3
(六)编码分类变量
- 将字符串变量 gender 转换为数字:
encode gender, gen(gender_code)
- 生成行业虚拟变量,为了避免共线性,删掉 indul:
tab Industry, gen(indu)
drop indul
tab year, gen(time)
drop timel
(七)设定面板数据
假设 id 和 year 是面板数据的两个维度:xtset id year
(八)数据合并
根据 id、year 合并另一个数据集“raw_data.data”:merge 1:1 id year using raw_data
(九)数据追加
追加另一个数据集"extra_data.dta":append using extra_data
三、描述性统计
(一)基本统计
summarize //或者 sum
(二)变量的详细统计
summarize income, detail
(三)变量的频率表
tabulate gender
(四)变量间的相关性
correlate income education
(五)回归分析及其描述性统计
regress income education age
estat summarize
(六)简单统计
tabstat y x1 x2 x3, stat(max min mean p50 sd n)
四、相关性分析
(一)绘制直方图
histogram income
(二)绘制散点图
scatter income education