在Stata中,广义回归模型(Generalized Regression Models)通常指广义线性模型(Generalized Linear Models, GLM),它扩展了普通线性回归(OLS),适用于因变量不满足正态分布(如计数数据、二值数据)或误差项不满足 homoskedasticity 等情况。Stata 提供了 glm 命令实现广义线性模型,核心是通过链接函数(link function) 和误差分布(exponential family) 适配不同类型的数据。
一、广义线性模型(GLM)的核心要素
GLM 由三部分构成,需根据因变量类型指定:
- 误差分布:因变量服从的指数族分布(如正态分布、二项分布、泊松分布等);
- 链接函数:建立因变量的均值与线性预测变量()之间的关系;
二、Stata 中 glm 命令的基本用法
glm 因变量 自变量列表, family(分布类型) link(链接函数) [选项]
- 常用分布(family):
gaussian(正态,默认,对应OLS)、binomial(二项,适用于0/1因变量)、poisson(泊松,适用于计数数据)、gamma(伽马,适用于非负连续数据)等。 - 常用链接函数(link):
identity(恒等,默认,)、logit(逻辑,适用于二项分布)、log(对数,适用于泊松分布)、probit(正态,适用于二项分布)等。
三、典型场景与代码示例
1. 二值因变量(如“是否违约”):Logistic 回归(属于 GLM)
因变量为 0/1 型,使用二项分布和logit 链接函数:
* 数据:y(是否违约,0/1)、x1(收入)、x2(负债)
glm y x1 x2, family(binomial) link(logit) robust // robust 选项控制异方差
* 输出结果解读:系数表示自变量对 log(odds) 的边际效应
* 如需边际效应(更易解读),后续可加:
margins, dydx(*) // 计算每个自变量对违约概率的平均边际效应
2. 计数因变量(如“专利数量”):泊松回归(属于 GLM)
因变量为非负整数,使用泊松分布和log 链接函数:
* 数据:y(专利数量)、x1(研发投入)、x2(企业规模)
glm y x1 x2, family(poisson) link(log) robust // log 链接确保预测值非负
* 结果解读:系数表示自变量每增加1单位,y的对数均值变化量(即弹性)
* 转换为发生率比(IRR):
glm y x1 x2, family(poisson) link(log) robust irr // irr 选项直接输出 IRR
3. 非负连续因变量(如“收入”):伽马回归(属于 GLM)
因变量为正连续值且右偏,使用伽马分布和log 链接函数:
* 数据:y(收入,>0)、x1(教育年限)、x2(工作经验)
glm y x1 x2, family(gamma) link(log) robust // 伽马分布适用于右偏连续数据
* 结果解读:系数表示自变量对收入对数均值的影响,类似弹性
4. 普通线性回归(OLS):GLM 的特例
当因变量服从正态分布且使用恒等链接时,GLM 等价于 OLS:
* 数据:y(消费支出)、x1(收入)、x2(家庭规模)
glm y x1 x2, family(gaussian) link(identity) robust // 等价于 reg y x1 x2, robust
四、进阶操作:模型诊断与比较
模型适配性检验:
glm y x1 x2, family(binomial) link(logit) // 估计模型后
estat gof // 拟合优度检验(如Deviance、Pearson卡方)
不同模型的比较:
* 估计两个模型
glm y x1, family(binomial) link(logit) name(model1)
glm y x1 x2, family(binomial) link(logit) name(model2)
lrtest model1 model2 // 似然比检验,比较模型优劣
预测与可视化:
* 对新数据预测
predict y_hat, mu // 预测因变量的均值(基于链接函数反变换)
* 可视化预测结果
scatter y_hat x1, by(x2) title("预测值与x1的关系(按x2分组)")
五、注意事项
- 分布与链接函数的匹配:不同因变量类型对应特定的分布和链接函数(如二项分布通常配 logit 或 probit 链接),错误匹配会导致估计偏误。
- 过度离散问题:计数数据若存在过度离散(方差 > 均值),泊松回归不再适用,需改用
nbreg(负二项回归),它是 GLM 的扩展。 - 边际效应解读:GLM 的系数是对“线性预测器”的影响,需通过
margins 命令转换为对因变量均值的边际效应,更具实际意义。
通过 glm 命令,Stata 可灵活处理多种类型的数据,核心是根据因变量的分布特征选择合适的误差分布和链接函数。如需针对具体数据类型(如有序多分类、删失数据)的模型实现,可以进一步说明场景。