Skip to content

手册AI 辅助金融研究学生自学手册


对标教材:单元 14(定量分析:描述性统计)
阶段定位:分析——"算清楚"


学习目标

完成本章后,你将能够:

  1. 数据准备四步——清理、缺失处理、变量转换、加权(教材单元 14 的实操化)
  2. 数据体检三步——缺失检查、异常值检查、缩尾处理(留痕可复现)
  3. 一元分析——集中趋势(均值/中位数/众数)、离散程度(标准差/极差/IQR)、分布形态
  4. 双变量分析——相关分析、交叉表、组间均值差检验
  5. 描述表三线表输出——学术论文标准格式的 Stata 实现

核心理念

"描述统计是测量质量的体检报告"
—— 它不仅是"给读者看的表格",更是你自己验证第 5 章测量方案是否成功的数据面证据。

数据入库(第 7 章)

§8.1 数据准备四步

§8.2 数据体检三步(S8.1 留痕)

§8.3 一元分析 → §8.4 双变量分析

§8.5 描述表三线表输出

为第 9 章实证回归做准备

§8.1 数据准备四步

参见教材单元 14"数据准备"。教材讲了编码、输入、缺失值、转换四环节,本节聚焦实操。

第一步:数据清理

stata
* ── 数据清理 ──
clear all
set more off
use "survey_clean.dta", clear

* 检查重复观测
duplicates report
duplicates drop id, force   // 按 ID 去重

* 检查变量类型是否正确
describe
* 常见问题:数字被识别为字符串(因为 Excel 中有空格或特殊字符)
destring age income, replace force  // 强制转换为数值

* 查看前 20 行数据,肉眼扫描
list id gender age income in 1/20

第二步:缺失值处理

教材介绍了三种策略,这里给出 Stata 实现:

策略适用条件优点缺点
成列删除缺失少 (< 5%) 且随机简单损失样本量
均值/中位数插补缺失少且近似正态保留样本量低估方差
多重插补 (MI)缺失多 (> 5%) 且可能非随机统计性质好操作复杂
stata
* ── 缺失值诊断 ──
* 逐变量统计缺失
misstable summarize

* 缺失模式
misstable patterns

* ── 策略 1:成列删除(Stata 回归默认行为)──
* 无需额外操作,regress 等命令自动删除含缺失的观测

* ── 策略 2:均值插补 ──
summarize income, detail
replace income = r(mean) if missing(income)
* 注意:必须标记哪些被插补了!
gen income_imputed = (income == r(mean) & mi(income))  // 留痕

* ── 策略 3:多重插补 ──
mi set mlong
mi register imputed income age
mi impute chained (regress) income age = gender education df1-df5, add(5)
mi estimate: regress y x1 x2 x3

第三步:变量转换

stata
* ── 反向题反转 ──
* Likert 1-5 反转:新值 = 6 - 原值
gen df2_r = 6 - df2
label var df2_r "数字金融使用2(反向题,已反转)"

* ── 构念加总/均值 ──
* 方法 A:均值法(推荐,不受题项数影响)
egen df_mean = rowmean(df1 df2_r df3 df4 df5)
label var df_mean "数字金融使用(均值)"

* 方法 B:加总法
egen df_sum = rowtotal(df1 df2_r df3 df4 df5)

* ── 连续变量分组(区间化)──
gen income_group = .
replace income_group = 1 if income < 20000
replace income_group = 2 if income >= 20000 & income < 50000
replace income_group = 3 if income >= 50000 & income < 100000
replace income_group = 4 if income >= 100000
label define inc_grp 1 "2万以下" 2 "2-5万" 3 "5-10万" 4 "10万以上"
label values income_group inc_grp

* ── 生成虚拟变量 ──
tab gender, gen(gender_d)
* gender_d1 = 男, gender_d2 = 女 → 回归时用 gender_d1 即可

第四步:加权

stata
* ── 抽样权重设定(复杂抽样设计)──
* 如果你用了分层抽样,需要告诉 Stata 权重
svyset psu [pweight = weight], strata(strata)

* 后续分析使用 svy: 前缀
svy: mean income
svy: regress y x1 x2

* 如果没有复杂抽样设计(简单随机或方便抽样),通常不加权

§8.2 数据体检三步

核心理念:在跑回归之前,先给数据做一次"全身体检"——发现问题比假装没问题好得多。

第一步:缺失检查

stata
* ── 全面缺失诊断 ──
* 方法 1:逐变量缺失比例
foreach var of varlist _all {
    quietly count if missing(`var')
    if r(N) > 0 {
        di "`var'" _col(30) "缺失 " r(N) " (" %5.2f r(N)/_N*100 "%)"
    }
}

* 方法 2:misstable 系列命令
misstable summarize          // 汇总表
misstable summarize, by(gender)  // 按组查看缺失是否系统性
misstable patterns           // 缺失模式(哪些变量同时缺失)
misstable tree               // 缺失的决策树可视化

判断标准

  • 单变量缺失 < 5%:通常可直接删除或用均值插补
  • 单变量缺失 5–20%:建议使用多重插补
  • 单变量缺失 > 20%:考虑该变量是否可用
  • 系统性缺失(如高收入者更可能不报告收入):必须在论文中讨论

第二步:异常值检查

stata
* ── 异常值诊断 ──

* 方法 1:基本统计量扫描
summarize income age df_mean, detail
* 关注:最大值/最小值是否在合理范围?均值是否被极端值拉偏?

* 方法 2:箱线图(可视化)
graph box income, over(gender) title("收入分布(按性别)")
graph box df_mean, title("数字金融使用均值分布")

* 方法 3:3σ 原则标记
foreach var in income age df_mean {
    quietly summarize `var'
    local m = r(mean)
    local s = r(sd)
    gen outlier_`var' = (abs(`var' - `m') > 3*`s')
    tab outlier_`var'
}

* 方法 4:百分位数法(更稳健)
foreach var in income age {
    quietly _pctile `var', p(1 99)
    local p1 = r(r1)
    local p99 = r(r2)
    di "`var': P1 = `p1', P99 = `p99'"
    count if `var' < `p1' | `var' > `p99'
    di "  超出 1%-99% 范围的观测:" r(N)
}

第三步:缩尾处理(Winsorize)

stata
* ── 缩尾处理 ──
* 安装社区命令(首次使用需安装)
* ssc install winsor2

* 对所有连续变量做 1% 和 99% 缩尾
winsor2 income age df_mean ca_mean, replace cuts(1 99)

* 缩尾前后对比
summarize income, detail    // 已缩尾后的结果
* 注意:replace 会覆盖原变量!建议先备份
* 更安全的做法:生成新变量
winsor2 income age, gen(w_) cuts(1 99)
* 生成 income_w, age_w

* 记录缩尾操作(留痕!)
log using "data_health_check.log", replace text
di "缩尾处理记录"
di "日期:`c(current_date)' `c(current_time)'"
di "变量:income, age, df_mean, ca_mean"
di "方法:winsor2,上下 1% 缩尾"
di "原因:存在极端值影响回归稳健性"
log close

S8.1 留痕要求

┌─────────────────────────────────────────────────────┐
│  ✦ 诚信检查点 S8.1                                    │
│                                                       │
│  核心原则:数据处理全留痕、可复现                       │
│                                                       │
│  具体要求:                                            │
│  □ 每一步数据清理/转换操作都有对应的 do 文件            │
│  □ do 文件可从原始数据一键运行到最终分析数据            │
│  □ 缩尾/插补/删除等操作注明:                          │
│    · 对哪些变量做的                                    │
│    · 用了什么方法(阈值/参数)                         │
│    · 影响了多少观测值                                  │
│    · 为什么这样做(理论/经验依据)                     │
│  □ 保留原始数据副本(survey_raw.dta 永不覆盖)         │
│  □ 论文中报告样本筛选过程:                            │
│    "初始回收 N 份 → 剔除无效 n1 份 →                  │
│     缺失关键变量剔除 n2 份 → 最终有效样本 n 份"        │
│                                                       │
│  反面教材:                                            │
│  "本文使用 XXX 份问卷数据"——读者无法判断你怎么从       │
│   500 份变成了 387 份                                  │
└─────────────────────────────────────────────────────┘

§8.3 一元分析

参见教材单元 14"一元分析":频数分布、集中趋势、离差。

集中趋势

统计量含义适用场景Stata 命令
均值 (Mean)所有值的算术平均连续变量、近似正态summarize
中位数 (Median)排序后中间值偏态分布(如收入)summarize, detail
众数 (Mode)出现频率最高的值分类变量tab
stata
* ── 集中趋势 ──
summarize income age df_mean          // 默认输出:N/均值/标准差/最小/最大
summarize income, detail              // 扩展:含中位数/四分位/偏度/峰度
tab gender                            // 分类变量的频数分布(含众数信息)

离散程度

统计量含义特点
极差 (Range)最大值 − 最小值对极端值极敏感
标准差 (SD)各值偏离均值的平均程度最常用,假设近似正态
方差 (Variance)SD 的平方回归分析中更常见
四分位距 (IQR)P75 − P25稳健,不受极端值影响
变异系数 (CV)SD / Mean无量纲,可跨变量比较
stata
* ── 离散程度 ──
summarize income, detail
* 输出中包含:
*   Std. dev.  = 标准差
*   Variance   = 方差
*   Range      = 极差(Max - Min)
*   P25, P50, P75 → IQR = P75 - P25

* 计算变异系数
quietly summarize income
di "CV = " r(sd)/r(mean)

分布形态

stata
* ── 分布可视化 ──

* 直方图
histogram income, frequency normal ///
    title("家庭年收入分布") ///
    xtitle("收入(元)") ytitle("频数") ///
    note("虚线为正态拟合曲线")

* 核密度图(更平滑)
kdensity income, normal ///
    title("收入核密度估计") ///
    xtitle("收入(元)")

* 箱线图(检测偏态和异常值)
graph box income, title("收入箱线图")

* Q-Q 图(检验正态性)
qnorm income, title("收入 Q-Q 图")

* ── 正态性检验 ──
sktest income              // 偏度+峰度联合检验
* H0:服从正态分布;p < 0.05 则拒绝→非正态
swilk income               // Shapiro-Wilk 检验(样本 < 2000 推荐)
* H0:服从正态分布

分类变量的频数分析

stata
* ── 分类变量 ──
tab gender                         // 单变量频数
tab gender, nolabel                // 显示数值而非标签
tab income_group                   // 收入分组的频数分布
tab1 gender education income_group // 多个分类变量一次性输出

* 带百分比的频数表
tab income_group, sort             // 按频率排序

综合示例:你的数据"长什么样"

stata
* ── 数据概览(论文 Table 1 的前身)──
* 连续变量
summarize age income df_mean ca_mean, detail

* 分类变量
tab gender
tab education
tab income_group

* 一次性生成描述统计表
tabstat age income df_mean ca_mean, ///
    statistics(n mean sd min p25 p50 p75 max) ///
    columns(statistics) format(%9.2f)

§8.4 双变量分析

参见教材单元 14"双变量分析":相关系数、交叉表。

相关分析

相关系数衡量两个连续变量之间线性关系的强度和方向:

r 值范围强度判断
r
0.6 ≤r
0.4 ≤r
0.2 ≤r
r
stata
* ── Pearson 相关 ──
correlate df_mean ca_mean income     // 简单相关
pwcorr df_mean ca_mean income, sig   // 两两相关 + 显著性
pwcorr df_mean ca_mean income, sig star(0.05)  // 标注显著性星号

* 输出解读:
*   r = 0.65, p = 0.000 → 中等偏强的正相关,在 1% 水平显著
*   注意:相关 ≠ 因果!(第 4 章已强调)

* ── Spearman 秩相关(非正态分布时使用)──
spearman df_mean ca_mean             // 基于排序的相关
* 适用于:有序变量 / 严重偏态 / 有异常值

* ── 相关矩阵热力图 ──
* 需要安装:ssc install corrtex
* 或使用 pwcorr 的输出手动制图

交叉表(列联表)

交叉表展示两个分类变量的联合分布:

stata
* ── 基本交叉表 ──
tab gender income_group              // 频数
tab gender income_group, row         // 行百分比
tab gender income_group, col         // 列百分比
tab gender income_group, row chi2    // 行百分比 + 卡方检验
tab gender income_group, row chi2 expected  // 含期望频数

* ── 卡方检验解读 ──
* H0:两个变量独立(无关联)
* p < 0.05 → 拒绝 H0 → 两变量存在显著关联
* 注意:期望频数 < 5 的单元格 > 20% 时,卡方检验不可靠
*       → 使用 Fisher 精确检验:
tab gender income_group, exact

* ── 多组对比 ──
table income_group gender, stat(freq) stat(rowpercent)

组间均值差检验

当你想知道"不同组的连续变量均值是否有显著差异"时:

stata
* ── 两组比较:独立样本 t 检验 ──
* 例:男女的数字金融使用是否有显著差异?
ttest df_mean, by(gender)

* 输出解读:
*   看 "diff" 行:均值差 = 男 - 女
*   看 p 值:Pr(|T| > |t|) → 双尾 p
*   p < 0.05 → 差异显著

* ── 多组比较:单因素方差分析 (ANOVA) ──
* 例:不同收入组的数字金融使用是否有显著差异?
anova df_mean income_group
* 或等价地:
oneway df_mean income_group, tabulate bonferroni

* 事后多重比较(哪两组之间有差异?)
anova df_mean income_group
* 如果 ANOVA 显著(p < 0.05),继续:
pwmean df_mean, over(income_group) bonferroni  // Stata 16+
* 或:
oneway df_mean income_group, tabulate bonferroni scheffe

* ── 效应量(不仅看显著性,还看差异大小)──
* Cohen's d(两组):
* d = (M1 - M2) / Sp,其中 Sp 为合并标准差
* 判断:0.2 = 小效应;0.5 = 中效应;0.8 = 大效应

双变量散点图

stata
* ── 散点图 + 拟合线 ──
twoway (scatter df_mean income) ///
       (lfit df_mean income), ///
       title("数字金融使用与收入的关系") ///
       xtitle("家庭年收入(元)") ///
       ytitle("数字金融使用(均值)") ///
       note("实线为 OLS 拟合线")

* 分组散点图
twoway (scatter df_mean income if gender==1, mcolor(blue)) ///
       (scatter df_mean income if gender==2, mcolor(red)) ///
       (lfit df_mean income if gender==1, lcolor(blue)) ///
       (lfit df_mean income if gender==2, lcolor(red)), ///
       legend(label(1 "男") label(2 "女")) ///
       title("数字金融使用与收入(分性别)")

§8.5 描述表三线表输出

学术论文中的"表 1:描述性统计"有严格的格式要求——三线表。

什么是三线表?

三线表 = 顶线 + 栏目线 + 底线,无竖线。这是国际学术期刊的通行格式:

──────────────────────────────────────────────
变量          观测值   均值    标准差   最小值   最大值
──────────────────────────────────────────────
年龄          387     42.35    12.18    18      78
家庭年收入    385     56,230   32,450   3,000   280,000
数字金融使用  387      3.42     0.89     1.00    5.00
信贷可得性    380      3.18     0.95     1.00    5.00
──────────────────────────────────────────────
注:数据来源于作者调查。收入单位为元/年。
──────────────────────────────────────────────

方法一:esttab(推荐,适合复杂表格)

stata
* ── 安装(首次使用)──
* ssc install estout

* ── 生成描述统计表 ──
* 步骤 1:用 postfile 手动构建
capture postclose desc_tab
tempname desc_tab
postfile `desc_tab' str20 varname n mean sd min max using "desc_tab.dta", replace

foreach var in age income df_mean ca_mean {
    quietly summarize `var'
    local vlabel : variable label `var'
    if "`vlabel'" == "" local vlabel "`var'"
    post `desc_tab' ("`vlabel'") (r(N)) (r(mean)) (r(sd)) (r(min)) (r(max))
}
postclose `desc_tab'

* 步骤 2:输出为三线表(RTF 格式,可粘贴到 Word)
use "desc_tab.dta", clear
listtab varname n mean sd min max, ///
    type rstyle(HLTH HLTB BLB) ///
    head("\hline 变量 & 观测值 & 均值 & 标准差 & 最小值 & 最大值 \\\\ \hline") ///
    foot("\hline") ///
    begin("") end(" \\\\") delimiter(" & ")
* 注意:listtab 需要 ssc install listtab

方法二:tabstat + putexcel(简单直接)

stata
* ── 方法二:tabstat 输出到 Excel ──
* 步骤 1:生成描述统计
tabstat age income df_mean ca_mean, ///
    statistics(n mean sd min max) ///
    columns(statistics) format(%9.2f) ///
    save
* save 选项将结果存入 r(StatMat) 矩阵

* 步骤 2:导出到 Excel
matrix stats = r(StatMat)'
putexcel set "table1_descriptive.xlsx", replace
putexcel A1 = "变量" B1 = "观测值" C1 = "均值" D1 = "标准差" E1 = "最小值" F1 = "最大值"
putexcel A2 = matrix(stats)
putexcel close

方法三:putdocx(直接生成 Word 文档)

stata
* ── 方法三:putdocx 生成三线表 ──
capture putdocx clear
putdocx begin

* 标题
putdocx paragraph, style(Heading2)
putdocx text("表 1  主要变量描述性统计")

* 创建表格(5行6列,含表头)
putdocx table tbl1 = data(age income df_mean ca_mean), ///
    varnames  // 自动用变量名作行名

* 或手动构建更精确的表格:
local nrows = 5   // 表头 + 4 个变量
putdocx table desc = (`nrows', 6)

* 表头
putdocx desc(1,1) = "变量"
putdocx desc(1,2) = "观测值"
putdocx desc(1,3) = "均值"
putdocx desc(1,4) = "标准差"
putdocx desc(1,5) = "最小值"
putdocx desc(1,6) = "最大值"

* 填入数据
local row = 2
foreach var in age income df_mean ca_mean {
    quietly summarize `var'
    local vlabel : variable label `var'
    putdocx desc(`row',1) = "`vlabel'"
    putdocx desc(`row',2) = (r(N))
    putdocx desc(`row',3) = (r(mean)), fmt(%9.2f)
    putdocx desc(`row',4) = (r(sd)), fmt(%9.2f)
    putdocx desc(`row',5) = (r(min)), fmt(%9.2f)
    putdocx desc(`row',6) = (r(max)), fmt(%9.2f)
    local row = `row' + 1
}

* 注释
putdocx paragraph
putdocx text("注:数据来源于作者 2026 年调查。收入单位为元/年。")

putdocx save "table1_descriptive.docx", replace
putdocx close
di "描述统计表已导出至 table1_descriptive.docx"

方法四:esttab 一键输出(最简方案)

stata
* ── 最简方案:esttab 描述统计 ──
* 需要:ssc install estout

* 先用 estpost 存储描述统计
estpost summarize age income df_mean ca_mean, detail
* 或:
estpost tabstat age income df_mean ca_mean, ///
    statistics(count mean sd min max) columns(statistics)

* 导出三线表
esttab using "table1.rtf", replace ///
    cells("count(fmt(0) label(观测值)) mean(fmt(2) label(均值)) sd(fmt(2) label(标准差)) min(fmt(2) label(最小值)) max(fmt(2) label(最大值))") ///
    noobs nomtitle nonumber ///
    title("表 1  主要变量描述性统计") ///
    addnotes("注:数据来源于作者调查。") ///
    label booktabs
* booktabs 选项 → 三线表格式

分组描述表(论文常见 Table 1 变体)

stata
* ── 按组报告描述统计 + 均值差检验 ──
* 例:按性别分组
estpost ttest age income df_mean ca_mean, by(gender)

esttab using "table1_by_gender.rtf", replace ///
    cells("mu_1(fmt(2) label(男性均值)) mu_2(fmt(2) label(女性均值)) b(fmt(2) label(差异)) p(fmt(3) label(p值))") ///
    noobs nomtitle nonumber ///
    title("表 1  描述性统计(按性别分组)") ///
    addnotes("注:*** p<0.01, ** p<0.05, * p<0.1") ///
    label booktabs

AI 辅助研究栏 · 第 8 章

AI 在描述统计中的合法应用

应用场景具体做法注意事项
代码生成告诉 AI 你的变量名和需求,让它生成 Stata 代码运行前检查语法和逻辑
输出解读summarize, detail 输出贴给 AI,让它帮你判断分布特征理解比背诵重要
异常值诊断贴入极端值让 AI 分析可能原因不能因为"不合理"就删除——需有依据
表格美化让 AI 帮你把 esttab 输出调整为期刊要求的格式格式可以 AI 辅助,数据不能 AI 编造
缺失值策略选择描述你的数据缺失情况,让 AI 推荐策略最终决策需结合理论和文献

AI 不能做的事

  • ❌ 替你编造描述统计数据(论文中的每一个数字都必须来自真实运行结果)
  • ❌ 帮你"美化"异常值使其"看起来合理"
  • ❌ 替代你对数据质量的判断——AI 没有看过你的原始问卷

AI 诚信栏 · 第 8 章

S8.1 数据处理全留痕可复现

┌─────────────────────────────────────────────────────┐
│  ✦ 诚信检查点 S8.1                                    │
│                                                       │
│  核心原则:                                            │
│  从原始数据到论文中任何一张表格,中间的每一步操作        │
│  都必须有代码记录,且他人可按你的代码完整复现。          │
│                                                       │
│  具体要求:                                            │
│  □ 一个完整的 master.do 文件,从头到尾可运行            │
│  □ 文件命名有序:                                      │
│    · 01_import.do      → 数据导入                     │
│    · 02_clean.do       → 数据清理                     │
│    · 03_descriptive.do → 描述统计                     │
│    · 04_regression.do  → 回归分析(第 9 章)           │
│  □ 所有中间数据集有日期或版本号标注                    │
│  □ 缩尾/插补/删观测等操作在 do 文件中注释说明理由       │
│  □ 论文表格由代码自动生成(而非手动在 Word 中打字)     │
│                                                       │
│  自检方法:                                            │
│  把你的 do 文件发给同学,让 TA 从零运行一遍。           │
│  如果 TA 能得到和你论文中一模一样的表格,你就合格了。   │
│                                                       │
│  反面教材:                                            │
│  · "我跑出来是这个结果但我找不到当时的代码了"          │
│  · 论文报告 N=387,但 do 文件跑出来是 N=392           │
│  · 表格中的数字与 log 文件不一致                       │
└─────────────────────────────────────────────────────┘

本章产出物

序号产出物文件名建议说明
1数据准备脚本02_clean.do从原始到分析数据的全过程
2数据体检报告data_health_check.log缺失/异常值/缩尾记录
3描述统计表table1_descriptive.rtf三线表格式
4分析数据集analysis_data.dta清洗完毕、可直接跑回归

自检题

1. 缺失值三种处理策略各自的适用条件是什么?

参考答案
策略适用条件注意事项
成列删除缺失比例低 (< 5%)、缺失完全随机 (MCAR)样本量损失;若缺失非随机则产生偏误
均值/中位数插补缺失少、变量近似正态、仅需粗略估计低估标准误;扭曲分布形态
多重插补 (MI)缺失较多 (5–20%)、缺失随机 (MAR)、需精确推断操作复杂;需报告插补模型设定

实践中,如果缺失 < 5% 且为随机缺失,成列删除通常可接受(Stata 回归默认行为)。缺失 > 5% 时建议使用 MI 并在稳健性检验中对比。

2. 为什么 winsor2(缩尾处理)必须留痕?

参考答案

三个原因:

(1) 可复现性(S8.1):他人需要知道你用了什么参数(1%? 5%? 单尾还是双尾?)才能复现结果
(2) 透明性:审稿人有权知道你对数据做了什么处理——隐藏的缩尾等同于数据操纵
(3) 稳健性检验需要:通常论文要报告"缩尾前"和"缩尾后"两组结果对比,如果没有留痕,你无法回去重跑

最佳实践:在 do 文件中写明 * 缩尾理由:income 存在 3 个极端值(> P99 的 5 倍),可能为录入错误,并保留缩尾前后的数据副本。

3. pwcorrspearman 分别在什么情况下使用?两者结论不一致时怎么办?

参考答案
  • pwcorr(Pearson):两个连续变量、近似正态分布、线性关系
  • spearman(Spearman 秩相关):变量严重偏态 / 有序分类变量 / 存在极端值 / 单调但非线性关系

两者不一致时:

  1. 先检查数据分布——如果严重偏态或有极端值,Spearman 更可靠
  2. 画散点图——看关系是线性还是单调非线性
  3. 在论文中报告 Spearman 结果,并在脚注说明"Pearson 相关方向一致但因偏态不显著"

4. 方向题:用你的研究数据做一张"描述统计+分组均值差"双栏表。

参考答案框架

示例结构(按城乡分组):

stata
* 生成描述统计表(分城乡)
estpost ttest age income df_mean ca_mean, by(urban)

esttab using "table1_urban_rural.rtf", replace ///
    cells("mu_1(fmt(2) label(农村均值)) mu_2(fmt(2) label(城镇均值)) b(fmt(2) label(差异)) p(fmt(3) label(p值))") ///
    noobs nomtitle nonumber ///
    title("表 1  主要变量描述性统计(按城乡分组)") ///
    addnotes("注:*** p<0.01, ** p<0.05, * p<0.1。差异 = 城镇 - 农村。") ///
    label booktabs

关键点:(1) 变量选取需覆盖因变量、核心自变量和主要控制变量;(2) 分组依据需有理论支撑;(3) 表格注释说明分组标准和数据来源。


下一章预告:第 9 章进入实证分析的核心——回归模型的设定、估计与诊断。你的描述统计做扎实了,回归才能跑得放心。


农村金融业务及监管 2026 秋季 | AI 辅助金融研究学生自学手册


本站教学资源仅供四川农业大学选课学生学习使用,版权归原作者所有,未经授权不得转载、转发或用于商业用途