Stata实战入门:从数据导入到基础分析的全流程指南
1. 数据导入与存储你的Stata起点第一次打开Stata时那个黑底白字的界面可能会让你有点懵。别担心我们从最基础的数据导入开始。我刚开始用Stata时最常用的方法就是直接复制粘贴Excel数据。在Excel里选中数据区域记得包含表头按CtrlC复制然后回到Stata点击工具栏上的Data Editor按钮长得像个表格的小图标在打开的界面里按CtrlV粘贴。这时Stata会贴心地问你是否把第一行作为变量名选Yes就对了。不过这种方法适合小数据集当数据量超过1万行时我建议改用更专业的导入方式。点击菜单栏的File→Import→Excel找到你的Excel文件。这里有个小技巧如果你的Excel里有多个工作表记得在Worksheet下拉框里选择正确的工作表。导入后别忘了立即保存点击工具栏上的磁盘图标或者用命令save D:/mydata.dta。我吃过亏有一次导入数据后没保存Stata崩溃了两小时的工作全没了。提示养成好习惯数据导入后立即保存文件名避免用中文和空格比如用project1_data_v1.dta就比我的数据.dta靠谱得多。2. 数据清洗从混乱到整洁拿到原始数据就像收到一箱刚挖出来的土豆上面还带着泥土。数据清洗就是把这些土豆洗干净的过程。首先用describe命令可以简写成d看看数据全貌它会告诉你变量数量、观测值数量以及每个变量的类型和标签。我发现很多新手会犯一个错误直接开始分析而不检查数据质量。有次我分析教育数据时发现某个学生的年龄显示为200岁原来是录入时多输了个0。用list age if age100能快速找出这类异常值。对于缺失值tab age, missing会显示缺失值的数量而drop if missing(age)会删除age变量为缺失值的所有行。变量重命名是另一个常用操作。Stata默认的变量名可能不太友好用rename oldname newname就能改名。比如把q1_a改成income会更直观。标签也很重要label variable income 家庭年收入万元能让三个月后的你或者合作者一眼看懂这个变量的含义。3. 变量操作创造新视角原始数据往往不能满足分析需求这时候就需要创造新变量。generate简写gen是最常用的命令之一。比如有身高(cm)和体重(kg)数据想计算BMI指数gen bmi weight/(height/100)^2。日期变量处理也很常见如果有个变量叫birthdate存储着1980-05-12这样的字符串可以用gen birthdate_n date(birthdate, YMD)转换成Stata能理解的日期格式。分类变量经常需要转换成哑变量也叫虚拟变量。假设有个变量education有3个取值1初中2高中3大学用tab education, gen(edu_)会生成edu_1、edu_2、edu_3三个哑变量。在回归分析时记得省略一个作为参照组避免虚拟变量陷阱。4. 描述性统计认识你的数据描述性统计就像给数据画肖像。summarize简写sum是最基础的命令sum age income会给出这两个变量的观测数、均值、标准差、最小最大值。加上detail选项能看到更多信息比如四分位数和峰度sum income, detail。分类变量的频数表用tabulate简写tab。tab region显示各地区样本量而tab region gender, row col会生成地区与性别的交叉表并计算行百分比和列百分比。如果想看更漂亮的输出试试tabout命令需要先安装ssc install tabout。相关分析是探索变量关系的利器。pwcorr age income education, sig star(.05)会输出Pearson相关系数矩阵并在显著性水平小于0.05的系数旁打上星号。如果想保存相关系数矩阵供后续使用加上matrix list r(C)可以看到矩阵内容用matrix corr_mat r(C)保存它。5. 数据可视化让数据说话好的图表抵得上千言万语。Stata的绘图功能可能不如R或Python炫酷但对日常分析完全够用。画直方图用histogram age, bin(20) normal其中bin(20)指定分箱数normal选项会叠加正态分布曲线。箱线图很适合比较不同组的分布graph box income, over(region)。散点图是探索两个连续变量关系的标配。scatter weight height || lfit weight height会画出体重与身高的散点图并叠加线性拟合线。如果想分性别看不同颜色加个by选项scatter weight height, by(gender)。条形图和折线图用graph bar和graph twoway line。比如要画各地区平均收入的条形图graph bar (mean) income, over(region)。保存图片时右击图表选Save as或者用命令graph export myplot.png, width(1000) replace。6. 回归分析从相关到因果线性回归是Stata的看家本领。最简单的OLS回归regress income education age。输出结果中最需要关注的是系数估计、标准误、t值和p值。加上robust选项会使用异方差稳健标准误regress income education age, robust。对于分类自变量Stata会自动处理。比如regress income i.education其中i.education表示把education当作分类变量处理。如果想控制地区固定效应areg income education, absorb(region)。逻辑回归用logit或probit命令比如分析是否上大学的影响因素logit college gender income。模型诊断很重要。预测值用predict yhat残差用predict resid, residuals。画残差图scatter resid yhat。多重共线性检查用vif命令需要先跑回归reg income education age experience; vif。7. 效率技巧少敲键盘多出活Stata的do文件是你的最佳伙伴。把命令写在do文件里点击工具栏最左边的图标新建按CtrlD执行选中行。我有个习惯每完成一个分析步骤立即把命令保存到do文件。这样三个月后还能复现分析过程。循环语句能大幅提高效率。比如要给所有连续变量做描述统计foreach var of varlist age income education { summarize var, detail histogram var, bin(20) normal }宏变量也很实用。比如local controls age gender education reg income controls experience最后别忘了日志功能。在分析开始时用log using mylog.smcl, replace记录所有操作和结果结束时用log close。这样你的整个分析过程都有据可查。