Stata中的adjust
命令是一个用于在回归分析后计算预测值和调整均值的实用工具,尤其适用于展示自变量在不同取值组合下的因变量预期值,该命令常与回归模型(如regress
、logit
等)结合使用,帮助研究者直观理解变量之间的关系,以下从功能原理、语法结构、实际应用及注意事项等方面详细介绍adjust
命令的使用方法。

功能原理与核心用途
adjust
命令的核心功能是根据已估计的回归模型,计算自变量特定取值下的因变量预测值,默认情况下,命令会处理分类变量为各水平的均值组合,连续变量则取其均值(或用户指定的值),在多元线性回归中,adjust
可展示控制其他变量后,某分类变量(如性别、教育水平)对因变量的平均影响;在logistic回归中,则可输出预测概率。adjust
支持通过by
选项分组计算,或使用ci
选项生成置信区间,便于比较组间差异。
语法结构与常用选项
adjust
命令的基本语法为:
adjust [varlist] [if] [in] [, options]
varlist
指定需要调整的自变量(若省略,则默认包含模型中的所有变量),常用选项包括:
by(groupvar)
:按groupvar
的分组分别计算调整均值。ci
:显示预测值的95%置信区间。beta
:使用标准化系数(beta系数)进行计算,适用于不同量纲变量的比较。replace
:覆盖已存在的预测结果变量。se
:输出预测值的标准误。
在回归后执行adjust age i.female, ci by(education)
,将按education
分组,计算控制age
和female
(虚拟变量)后的因变量预测值及其置信区间。

实际应用示例
假设研究者使用regress
命令分析了收入(income
)与年龄(age
)、性别(female
,0=男性,1=女性)、教育水平(education
,1=高中及以下,2=本科,3=研究生)的关系,现需展示不同性别和教育水平的预期收入:
regress income age i.female i.education adjust i.female i.education, ci
输出结果将包含各性别与教育组合的预测收入均值及置信区间,若需按年龄分组(如20-30岁、31-40岁),可进一步使用:
adjust i.female i.education if age>=20 & age<=30, ci
对于非线性模型(如logit
),adjust
会输出预测概率。
logit employed age i.education adjust i.education, ci
结果将展示不同教育水平的就业概率。

注意事项与常见问题
- 变量取值处理:若未指定
varlist
,adjust
会自动将连续变量取均值,分类变量取各水平均值,用户可通过at()
选项手动指定取值,如adjust age, at(age=30 40)
。 - 样本范围限制:
if
和in
选项可限定计算范围,但需确保新数据与模型估计样本一致,避免外推误差。 - 模型兼容性:
adjust
适用于大多数Stata回归命令,但部分模型(如xtmixed
)可能需要使用margins
命令替代。 - 结果解读:调整均值是“控制其他变量后的预测值”,而非实际观测值,需结合模型假设解释。
相关问答FAQs
Q1: adjust
与margins
命令有何区别?
A: adjust
是较早期的命令,功能相对基础,主要用于计算特定自变量组合的预测值;而margins
是更现代的命令,支持更复杂的边际效应计算(如偏效应、交互效应),并提供更丰富的输出选项和图形功能,对于复杂模型(如面板数据、广义线性混合模型),推荐优先使用margins
。
Q2: 如何使用adjust
命令处理连续变量的非均值取值?
A: 通过at()
选项可指定连续变量的具体值,若需计算age
为25、35、45岁时的预测收入,可执行:
adjust i.female i.education, at(age=25 35 45) ci
这将输出控制性别和教育后,age
取这三个值时的因变量预测值及置信区间。