Stata好写,太好写了!附《stata代码速查表》【最全stata指南】

在这里插入图片描述
Stata好写,太好写了!Stata那种代码,说实话分分钟写出来,不用一小时,三秒钟!

为什么我不写了?
(轻抚式打脸)爷们儿要脸,咱是一科研狗儿,首先得对得起自己~

嘿嘿嘿,逗个乐子哈,要是想在三秒内就写出一行stata代码,那光有扎实的基础可不够,还得多多操练才行哟。这不,阿水给大伙扒拉到了stata官网精心整理的一套 《stata代码速查表》,里面啥常用的数据分析、数据转换、数据可视化的stata代码,统统都有呢。大伙可以自个儿去下载打印,平常搞科研要查代码就方便啦,或者贴在桌上,还能假装一下资深科研大佬呢。

话不多说,上资料~(文末有PDF获取方式

以下是阿水给大家整理表中内容的文字部分,方便大家查阅~

第一章节:数据分析

一、数据描述与探索(Summarize Data)

  1. 单变量统计

    • 描述性统计:summarize mpg(均值、标准差等),summarize mpg, detail(含偏度、峰度)。
    • 分布可视化:histogram mpg(直方图),boxplot mpg(箱线图),stem mpg(茎叶图)。
    • 分位数与置信区间:pctile mpg_quantile = mpg, nq(4)(四分位数),ci mpg(均值置信区间)。
  2. 多变量分析

    • 相关性:correlate price mpg(相关矩阵),pwcorr price mpg, sig(带显著性检验的两两相关)。
    • 比例与比率:proportion rep78(分组比例估计),ratio price mpg(比率估计)。

二、统计检验(Statistical Tests)

  1. 参数检验

    • t检验:ttest mpg, by(foreign)(组间均值差异),ttest mpg == 20(单样本均值检验)。
    • 卡方检验:tabulate rep78 foreign, chi2(列联表独立性检验)。
  2. 非参数检验

    • 秩和检验:ranksum mpg, by(foreign)(Mann-Whitney U检验),kwallis mpg rep78(Kruskal-Wallis检验)。
    • 分布拟合:ksmirnov mpg = normal(20, 5)(Kolmogorov-Smirnov正态性检验)。
  3. 方差分析与协方差

    • oneway mpg rep78(单因素ANOVA),ancova mpg weight, by(foreign)(协方差分析)。

三、分类与因子变量建模(Categorical & Factor Variables)

  1. 变量声明

    • 分类变量:encode foreign, gen(foreign_cat)(字符串转分类因子),label define foreign_lab 0 "Domestic" 1 "Foreign", replace(添加因子标签)。
    • 交互项:regress price i.foreign##c.mpg(分类与连续变量交互)。
  2. 模型估计

    • 虚拟变量回归:regress price i.foreign(自动生成虚拟变量),regress price foreign##rep78(多分类交互)。

四、数据类型声明与高级分析

  1. 时间序列(Time Series)

    • 声明:tsset year(设定时间索引),xtset id year(面板时间序列)。
    • 操作:generate lags = l2.sunsots(二阶滞后),tssmooth ma sunsots_ma = sunsots, window(3)(移动平均)。
  2. 面板数据(Panel/Longitudinal)

    • 声明:xtset id year(平衡/非平衡面板),xtline mpg, i(id)(个体趋势图)。
    • 模型:xtreg price mpg, fe(固定效应),xtreg price mpg, re(随机效应,含xttest0检验)。
  3. 生存分析(Survival Analysis)

    • 声明:stset time, failure(died)(设定生存数据),stsum(生存时间汇总)。
    • 模型:stcox age gender(Cox比例风险模型),streg age gender, dist(exponential)(参数生存模型)。
  4. 调查数据(Survey Data)

    • 声明:svyset psu [pweight=finlwt], strata(strata)(设定调查设计),svydescribe(调查设计描述)。
    • 分析:svy: mean age(调查加权均值),svy: regress price mpg(调查加权回归)。

五、模型估计(Fit Models)

  1. 线性回归

    • 基础:regress price mpg, vce(robust)(稳健标准误),regress price mpg weight, cluster(rep78)(聚类标准误)。
    • 非线性:regress price ln(mpg)(对数变换),glm price mpg, family(gamma)(广义线性模型)。
  2. 分类模型

    • 逻辑回归:logit foreign price mpg(二分类),ologit rep78 price mpg(有序多分类)。
    • 泊松回归:poisson accidents age miles, vce(robust)(计数数据模型)。
  3. 工具变量与因果推断

    • ivregress 2sls price (mpg=weight) foreign(两阶段最小二乘法),estat firststage(第一阶段检验)。

六、模型诊断(Diagnostics)

  1. 异方差与自相关

    • hetest(异方差检验),dwstat(Durbin-Watson自相关检验),bgodfrey(Breusch-Godfrey检验)。
  2. 遗漏变量与设定误差

    • ovtest(Ramsey RESET检验),linktest(模型设定检验),predict res, residual(残差分析)。
  3. 多重共线性

    • vif(方差膨胀因子),corr price mpg weight, matrix(相关矩阵可视化)。

七、后估计与结果呈现(Postestimation)

  1. 预测与边际效应

    • predict pricehat(拟合值),margins, dydx(mpg)(平均边际效应),margins foreign, at(mpg=(20(5)40))(条件边际效应)。
  2. 结果可视化

    • coefplot, drop(_cons)(回归系数图),avplot mpg(添加变量图),rvfplot, yline(0)(残差-拟合值图)。
  3. 模型比较

    • lrtest model1 model2(似然比检验),hausman fe_model re_model(固定vs随机效应检验)。

第二章节:Programming

一、编程核心构件(Building Blocks)

  1. 标量(Scalars)

    • 定义与操作:存储数值(scalar x=3)或字符串(scalar s="text"),支持算术(x+5)与逻辑运算,通过display输出。
    • 应用场景:临时存储统计量(如scalar mean_p = r(mean)),简化代码逻辑。
  2. 矩阵(Matrices)

    • 定义与运算:创建矩阵(matrix A=(1,2\3,4))、执行线性代数操作(matrix B=A*inv(A)),通过matlist查看。
    • 数据交互:matrix score将矩阵与数据集关联(如主成分分析结果映射),matplot可视化矩阵数据。
  3. 宏(Macros)

    • 全局宏(Global):跨程序访问(global vars "mpg price"summarize $vars),适合固定变量列表。
    • 局部宏(Local):程序内动态引用(local v "weight"regress price v``),增强代码灵活性。
    • 临时宏(Tempnames/Tempfiles):临时存储名称(tempname t1)或文件(tempfile tf),避免命名冲突。

二、结果管理与访问(r- & e-class)

  1. r-class(计算结果)

    • 示例:summarize mpg, detail后,return list获取均值(r(mean))、标准差(r(sd))等,用于后续计算(generate sd_mpg = r(sd))。
  2. e-class(估计结果)

    • 示例:regress price mpg后,ereturn list获取系数(e(b))、标准误(e(V)),通过estimates store保存模型(estimates store reg1),支持estimates table对比。

三、循环与自动化(Loops)

  1. foreach循环
    • 变量遍历:
     foreach var of varlist mpg weight price {
         replace `var' = . if `var' < 0  // 批量处理负值缺失
     }
  • 字符串列表:
     local strs "group1 group2"
     foreach s of local strs {
         tabulate `s'  // 批量生成频数表
     }
  1. forvalues循环
    • 数值序列:
     forvalues i=1/5 {
         egen mean_`i' = mean(mpg) if group==`i'  // 分组均值计算
     }
  1. while循环
    • 条件控制:
     local i=1
     while `i' <= 10 {
         display "Iteration: `i'"
         local i = `i' + 1
     }

四、程序与调试(Programming & Debugging)

  1. 自定义程序
    • 封装逻辑:
     program define myReg
         args dep varlist
         regress `dep' `varlist', vce(robust)
         eststo  // 存储结果
     end
     myReg price mpg weight  // 调用程序
  • 错误处理:capture noisily myReg(捕获错误,避免程序中断)。
  1. 调试工具
    • set trace on(逐行跟踪代码执行),display嵌入(检查中间变量值),log using记录调试日志。

五、学术场景应用

  1. 批量分析:

    • 利用foreach循环生成多组回归(如按年份、组别),结合estimates存储与coefplot可视化,提升论文写作效率。
  2. 数据预处理:

    • 自动化清洗(如replacerecode批量处理),通过宏动态引用变量名,减少重复代码。
  3. 可复现性保障:

    • 编写.do文件封装全流程,使用tempfile存储中间数据,确保分析可重复(set seed固定随机数)。

第三章节:数据分析

一、基础语法与系统操作

  1. 命令结构
    所有Stata命令遵循统一格式:
    [by varlist1:] command [varlist2] [if exp] [in range] [,options]

    • 分组执行:by varlist1(如bysort rep78rep78分组)
    • 条件筛选:if exp(如if foreign == 0筛选国外数据)
    • 范围限定:in range(如in 1/50选取前50行)
    • 功能扩展:options(如summarize ..., detail输出详细统计)
  2. 快捷键与系统控制

    • 数据查看:
      • F2describe查看数据结构
      • Ctrl+8:打开Data Editor
    • 代码执行:
      • Ctrl+D:执行Do文件中选中代码
      • Tab:自动补全变量名(如输入pr后按Tab补全price
    • 内存与日志:
      • clear:清空内存数据
      • log using "logfile.txt":记录分析日志
  3. 数据类型与转换

    • 类型体系:
      • 数值型:byte(布尔)、intlongfloatdouble
      • 字符型:string(存储文本,如品牌名)
      • 缺失值:missing(用.表示,如price == .
    • 转换命令:
      • 字符↔数值:
        destring foreignString, gen(foreignNumeric)(字符转数值)
        tostring foreign, gen(foreignString)(数值转字符)
      • 强制转换:
        recast double mpg(将mpg转为双精度浮点型)

二、数据导入与探索

  1. 数据导入

    • 本地文件:
      • CSV:import delimited "data.csv", varnames(2)(第二行作为变量名)
      • Excel:import excel "data.xlsx", sheet("Sheet1") firstrow(首行作为变量名)
      • Stata数据:use "data.dta", clear(清空内存后加载)
    • 网络数据:
      webuse auto, clear(加载Stata示例数据集auto.dta
  2. 数据探索

    • 结构查看:
      • describe make price:显示makeprice的变量类型、标签等
      • codebook make_price:输出变量的唯一值、缺失值等详细属性
    • 分布分析:
      • summarize price mpg:计算均值、标准差等基本统计量
      • histogram mpg, width(5) freq:绘制组距为5的频率直方图
      • tabulate rep78, mi:生成rep78的频数表(含缺失值)
    • 观测筛选:
      • browse:在Data Editor中浏览数据
      • list make if price > 10000 & missing(price) == 0:列表查看价格>10000且无缺失的观测

三、数据清洗与转换

  1. 缺失值处理

    • 填充缺失值:
      mvencode _all, mv(9999)(用9999填充所有变量的缺失值)
    • 还原缺失值:
      mvdecode _all, mv(9999)(将9999转为缺失值)
  2. 变量操作

    • 生成新变量:
      • gen mpgSq = mpg^2:计算mpg的平方
      • egen meanPrice = mean(price), by(foreign):按foreign分组计算价格均值
    • 重命名/删除:
      • rename rep78 repairRecord:将变量rep78重命名为repairRecord
      • drop price:删除变量price
  3. 数据重塑

    • 宽长转换:
      • 宽转长:reshape long coffee@ maize@, i(country) j(year)(将年份从列名转为变量year
      • 长转宽:reshape wide, i(country) j(year)(将year变量转为列名)
    • 合并/追加:
      • 横向合并:merge 1:1 id using "ind_age.dta"(按id一对一合并数据)
      • 纵向追加:append using "coffeeMaize2.dta", gen(filenum)(合并数据并标记来源文件)

四、描述性统计与可视化

  1. 统计量计算

    • 单变量统计:
      summarize price, detail(输出均值、中位数、峰度等详细统计)
      pctile mpgQuartile = mpg, nq(4)(生成mpg的四分位数分组)
    • 分组统计:
      bysort foreign: summarize price(按foreign分组计算价格统计)
      tabulate rep78 foreign, mi(生成rep78foreign的交叉频数表)
  2. 数据可视化

    • 基础图形:
      • 直方图:histogram mpg, kdensity(叠加核密度曲线)
      • 散点图:twoway scatter mpg weight, jitter(7)(添加抖动避免点重叠)
      • 箱线图:graph box mpg, over(foreign)(按foreign分组绘制箱线图)
    • 高级图形:
      • 小提琴图:vioplot price, over(foreign)(结合密度与箱线特征)
      • 平行坐标图:twoway pcspike wage68 ttl_exp68(对比多变量趋势)
    • 定制选项:
      • 主题:scheme(s1mono)(单色主题,适合学术图表)
      • 颜色:mcolor("145 168 208")(指定RGB颜色)
      • 注释:text(20 100 "Sample Note")(在图形中添加文本注释)

五、学术场景应用

  1. 研究流程整合

    • 数据清洗:
      • 批量处理异常值:replace price = 5000 if price < 5000(将价格<5000的观测设为5000)
      • 验证数据逻辑:assert price != .(确保price无缺失值,否则报错)
    • 分析复现:
      • 固定随机数:set seed 1234(确保随机操作可复现,如sample抽样)
      • 记录日志:log using "analysis.log", replace(保存命令与输出,便于论文复现)
  2. 结果输出

    • 数据保存:
      save "myData.dta", replace(覆盖保存为Stata格式)
      export delimited "data.csv", replace(导出为CSV,方便跨软件使用)
    • 图表导出:
      graph export "plot.pdf", as(pdf) replace(导出为PDF,满足期刊投稿要求)
      estout(将回归结果输出为LaTeX表格,提升论文排版效率)

第四章节:数据转换

一、数据子集选择(Subsetting Data)

  1. 变量筛选

    • 删除:drop make(移除make变量)
    • 保留:keep make price(仅存makeprice
    • 重命名:rename rep78 repairRecord(变量名映射)
  2. 观测筛选

    • 行范围:keep in 1/30(前30行),drop in 1/4(前4行删除)
    • 条件筛选:
      keep if price >= 5000 & price <= 10000(价格区间)
      keep if inlist(make, "Honda Accord", "Subaru")(特定值匹配)
    • 随机抽样:sample 25(25%抽样,set seed 1234确保可复现)

二、数据重塑(Reshape Data)

  1. 宽长转换

    • 宽转长(Melt):
      reshape long coffee@ maize@, i(country) j(year)
      • 生成country-year唯一标识,将宽数据(列含年份)转为长数据(行含年份)。
    • 长转宽(Cast):
      reshape wide coffee@ maize@, i(country) j(year)
      • 恢复宽数据格式,适用于面板数据的年度变量展示。
  2. 数据合并

    • 纵向追加(Append):
      append using "data2.dta", gen(source)(合并数据,标记来源source
    • 横向合并(Merge):
      • 1:1匹配:merge 1:1 id using "ind.dta"(按id唯一匹配,_merge标识匹配状态)
      • 多对一匹配:merge m:1 region using "region.dta"(如个体-地区数据合并)

三、数据清洗与转换

  1. 值操作

    • 替换:replace price = 5000 if price < 5000(低价修正)
    • 重编码:
      recode price (0/5000=5000) (5001/10000=10000), gen(priceCat)(创建价格类别)
      recode foreign (0="Domestic") (1="Foreign"), gen(foreignLabel)(数值转标签)
  2. 缺失值处理

    • 填充:mvencode _all, mv(9999)(9999填充缺失)
    • 还原:mvdecode _all, mv(9999)(9999转缺失)
  3. 字符串处理

    • 属性与匹配:
      display length("Stata")(长度),display strpos("Stata", "a")(位置)
      list make if regexm(make, "Honda")(正则匹配含“Honda”的品牌)
    • 清洗与转换:
      display trim(" Stata ")(去空格),display real("100")(字符转数值)

四、标签与元数据管理

  1. 变量标签

    • label variable price "Car Price (USD)"(添加描述标签)
    • label define foreign_lab 0 "Domestic" 1 "Foreign", replace(定义因子标签集)
    • label values foreign foreign_lab(应用标签到foreign变量)
  2. 数据注释

    • note: Data sourced from 1978 Auto Dataset(添加数据来源注释)
    • listlabels(查看所有标签定义)

五、数据保存与导出

  1. 数据存储

    • save "myData.dta", replace(覆盖保存Stata数据)
    • saveold "myData.dta", version(12)(兼容Stata 12版本)
  2. 格式导出

    • CSV/Excel:
      export delimited "data.csv", replace(导出CSV)
      export excel "data.xlsx", sheet("Sheet1") firstrow(Excel导出,首行变量名)
    • 图形与表格:
      graph export "plot.png", as(png)(导出图形)
      estout using "reg_table.tex", style(tex)(LaTeX表格导出)

六、学术应用场景

  1. 面板数据预处理

    • 利用reshape转换格式,结合xtset id year声明面板数据,为xtreg(固定/随机效应模型)做准备。
  2. 分类变量标准化

    • 通过recodelabel将数值分类(如foreign)转为可读标签,提升论文图表的解释性。
  3. 复现性保障

    • 保存中间数据(save)、记录操作日志(log using)、固定随机种子(set seed),确保分析可重复,符合学术规范。

第五章节:数据可视化

一、基础绘图框架

  1. 核心语法
    所有图形命令遵循:
    graph <类型> 变量 [选项], 如 histogram mpg, width(5)(直方图,组距5)。
    支持:

    • 分组:by(foreign)(按foreign分组绘图)
    • 标注:title("标题")text(坐标 "注释")
    • 导出:graph export "路径", as(格式)(如PDF、PNG)
  2. 图形类型分类

    • 单变量:直方图(histogram)、核密度图(kdensity)、箱线图(graph box)。
    • 双变量:散点图(twoway scatter)、折线图(twoway line)、面积图(twoway area)。
    • 多变量:矩阵散点图(graph matrix)、平行坐标图(twoway pcspike)、等高线图(twoway contour)。

二、单变量可视化

  1. 连续变量(Continuous)

    • 直方图:
      histogram mpg, width(5) freq kdensity(频率显示,叠加核密度)
      histogram mpg, by(foreign)(按组别分开展示)
    • 核密度图:
      kdensity mpg, bwidth(3) normal(带宽3,对比正态分布)
    • 箱线图:
      graph box mpg, over(rep78)(按rep78分组,展示分布差异)
  2. 离散变量(Discrete)

    • 条形图:
      graph bar (count) make, over(foreign) gapp(0.5)(计数条形,调整间距)
      graph bar (mean) price, over(rep78)(均值条形,分组对比)
    • 饼图:
      graph pie price, over(foreign)(比例展示,适合分类占比)

三、双变量与多变量绘图

  1. 双变量关系

    • 散点图:
      twoway scatter mpg weight, jitter(7) mlabel(make)(抖动去重叠,标记观测值)
      twoway scatter mpg weight, smooth(lowess)(添加局部加权拟合线)
    • 折线图:
      twoway connected mpg price, sort(price)(按价格排序,展示趋势)
    • 面积图:
      twoway area mpg price, sort(price) color(navy)(填充面积,强调累积)
  2. 多变量展示

    • 矩阵散点图:
      graph matrix mpg price weight, half(上三角矩阵,减少重复)
    • 平行坐标图:
      twoway pcspike wage68 ttl_exp68 wage88 ttl_exp88(对比多变量跨时间趋势)
    • 等高线图:
      twoway contour mpg price weight, level(20)(20层等高线,三维分布可视化)

四、分类与分组绘图

  1. 分组绘图

    • 分面(Facet):
      twoway scatter mpg price, by(foreign, cols(2))(按组别分两列展示,优化布局)
    • 叠加(Superimpose):
      twoway (scatter mpg weight if foreign==0) (scatter mpg weight if foreign==1), legend(label(1 "Domestic") label(2 "Foreign"))(叠加两类散点,区分组别)
  2. 分类-连续变量结合

    • 小提琴图:
      vioplot price, over(foreign)(结合密度与箱线,展示组内分布)
    • 点图:
      graph dot (mean) price, over(foreign)(均值点图,对比组间差异)

五、学术场景应用

  1. 描述性统计可视化

    • histogramboxplot展示数据分布,支持论文“数据特征”部分。
    • graph bargraph pie呈现分类变量比例,增强结果可读性。
  2. 模型结果可视化

    • 残差图:rvfplot, yline(0)(诊断回归残差分布,检查异方差)
    • 系数图:coefplot, drop(_cons)(可视化回归系数,对比变量影响,提升论文图表质量)
  3. 多图组合

    • 组合图(Combine):
      graph combine plot1 plot2 plot3, rows(2)(将多张图组合,节省篇幅)
    • 分面排版:by(foreign)自动分组,生成多图矩阵,适配面板数据展示。

第六章节:图表外观优化

一、图表结构与元素

  1. 核心组件

    • 标题与标签:通过titlesubtitlexlabelylabel定义,支持字体、大小、颜色调整(如title("GDP Growth", color(blue)))。
    • 标记与线条:scatter(点)、line(线)、area(面)等,可设置msymbol(形状,如circle)、mcolor(颜色,如red)、lpattern(线型,如dash)。
    • 网格与刻度:grid显示网格,ticksize调整刻度线大小,xline/yline添加参考线(如xline(0, lwidth(thick)))。
  2. 布局控制

    • 分面绘图:by(foreign, cols(2))按变量分组生成多图矩阵,优化空间利用(如对比国内/国外数据分布)。
    • 边距与区域:graphregion(color(white))设置背景色,plotregion(margin(20 20 20 20))调整绘图区边距。

二、外观定制:颜色、符号与线条

  1. 颜色体系

    • 预设与自定义:支持Stata颜色(如mcolor(red))、RGB(mcolor("145 168 208"))、HSV(mcolor(hsv(0.5, 0.5, 0.5))),及透明度(如mcolor("red%30"))。
    • 颜色一致性:使用colorbrewer色系(help colorbrewer),确保学术图表颜色规范(如mcolor(colorbrewer(3, "Set1")))。
  2. 符号与标记

    • 形状与大小:20+预设符号(msymbol(diamond)),大小支持huge/medium/small或数值(msize(0.8)),适配不同数据密度(如jitter(7)避免点重叠)。
  3. 线条与边框

    • 线型与粗细:lpattern(solid)(实线)、lwidth(thick)(粗线),graphregion(linestyle(none))移除边框,增强简洁性。

三、主题与样式(Schemes)

  1. 预设主题
    • 学术常用:scheme(s1mono)(单色,适合期刊黑白印刷)、scheme(s2color)(彩色,默认主题)。
    • 自定义主题:
     scheme customScheme, replace
     set scheme customScheme

保存后全局生效,确保论文图表风格统一。

  1. 主题管理
    • 扩展主题:安装第三方主题(如Williams’ Schemes),通过net install获取,丰富视觉选项(如scheme(williams))。
    • 图形编辑器:GUI界面实时调整(graph editor),保存为.grec文件(graph export "theme.grec"),便于复用。

四、文本与标注

  1. 文本元素

    • 注释与标签:text(50 100 "P<0.01", color(red))添加显著性注释,mlabel(make)标记观测值(如品牌名),mlabcolor(blue)调整标签颜色。
    • 格式调整:fontface("Times New Roman")fontsize(10)符合期刊排版,angle(45)旋转轴标签(如xlabel(, angle(45)))。
  2. 交互与导出

    • 动态调整:jitterseed(1234)固定抖动随机种子,确保复现;graph combine组合多图(如graph combine plot1 plot2, rows(2))。
    • 高分辨率导出:graph export "plot.pdf", as(pdf) width(1200) height(800),满足期刊高分辨率要求。

五、学术场景应用

  1. 期刊合规性

    • 采用scheme(s1mono),移除网格(nogrid),使用单色填充(color(gray%20)),确保黑白印刷清晰。
    • 统一颜色编码(如colorbrewer),避免视觉混乱,提升图表专业性。
  2. 复现性与模板化

    • 保存自定义主题(scheme save),在.do文件中调用,确保不同分析阶段图表风格一致(如set scheme customScheme)。
    • 利用graph combine生成多图组合,添加共同标题(title("Comparative Analysis", span)),优化论文排版。

关注公主号,后台回复“速查表”关键词,即可获取《stata代码速查表》PDF文档,欢迎小伙伴自行领取哦~

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值