作为一个用Stata做实证研究快4年的“老玩家”,我敢说相关性分析是所有研究的“敲门砖”——它能帮你快速摸清变量之间的“暧昧关系”,是正相关、负相关,还是根本没关系,一眼就能看明白。今天就把我平时常用的几种相关性分析方法和代码整理出来,都是实操中反复验证过的,新手也能直接上手。
一、先看变量“长啥样”:可视化分析
我习惯先通过图表直观感受变量关系,毕竟数字不如图形来得直接。这一步能帮你快速发现变量间的大致趋势,还能提前识别异常值。
1. 单变量分布:直方图
先看看单个变量的分布情况,比如是否符合正态分布,有没有极端值。 Stata代码:
histogram income // income为目标变量,可替换为你的变量
2. 两变量关系:散点图
最直观的看两个变量的线性关系,比如收入和教育水平是不是正相关。 Stata代码:
scatter income education // income是因变量,education是自变量,可替换
3. 多变量关系:矩阵散点图
一次性看多个变量间的两两关系,适合初步筛选变量。 Stata代码:
graph matrix var1 var2 var3 // var1、var2、var3换成你要分析的变量
4. 相关系数热力图
用颜色深浅展示相关系数的大小和方向,论文里放这个图特别专业。 Stata代码:
pwcorr var1 var2 var3, sig star(0.05) matrix(corr_matrix) // 计算相关系数和显著性
matrix plot corr_matrix // 绘制相关系数矩阵图

二、量化变量关系:相关系数计算
看够了图形,就得用数字说话了。相关系数能精准告诉你变量间关系的强度和方向,Pearson系数适合正态分布的连续变量,Spearman系数适合有序分类变量或非正态分布的连续变量。
1. 基础相关系数计算
先算个简单的相关系数,看看变量间的大致关系。 Stata代码:
pwcorr income education // 计算收入和教育水平的相关系数
pwcorr income education, sig // 同时输出显著性水平
2. 带显著性标记的相关系数
论文里需要展示显著性星号,这个命令能直接帮你生成,不用手动加星号。 Stata代码:
ssc install pwcorr_a // 先安装命令,只需要安装一次
pwcorr_a income education age // 输出带*的相关系数矩阵
3. 非参数相关系数
如果变量不符合正态分布,就用Spearman相关系数。 Stata代码:
spearman income education // 计算Spearman相关系数
三、进阶分析:回归拟合与验证
如果发现变量间有明显的线性关系,就可以进一步做回归拟合,验证这种关系的显著性。
1. 带回归线的散点图
在散点图上添加回归线,更直观地展示线性趋势。 Stata代码:
twoway (scatter income education) (lfit income education) // lfit表示添加线性回归线
2. 相关系数矩阵图
一次性展示多个变量间的相关系数和显著性,论文里放这个图特别清晰。 Stata代码:
graph matrix price wei len // price、wei、len换成你要分析的变量




