Stata | Тест разницы коэффициентов групповой регрессии

В этом блоге представлено сравнение того, существует ли значительная разница в размере коэффициента между двумя в одной и той же переменной после выполнения групповой регрессии, когда настройки модели двух выборочных групп одинаковы. Если коэффициенты существенно различаются, это означает, что они существенно различаются в экономическом смысле.

Поскольку данные, которые мы часто используем, являются панельными данными, и мы часто сталкиваемся со стеной в тесте на разницу коэффициентов из-за контроля многих фиксированных эффектов, поэтому этот блог основан на панельных данных компании в качестве примера, предполагая, что поощрение заработной платы (x) обсуждается. Это помогает улучшить корпоративную эффективность (y) и контролировать переменные корпоративных характеристик ($z), добавляя фиксированные эффекты года (year), отрасли (ind), компании (фирмы) и группируя на уровне компании.

Основная регрессионная модель выглядит следующим образом:

reghdfe y x $z, absorb(year ind firm) vce(cluster firm) 

Групповая регрессия заключается в изучении государственных предприятий (государственных1) и негосударственные предприятия (государственные0) Существует ли существенная разница в коэффициенте регрессии стимула заработной платы (x) к корпоративной эффективности (y).

В этой статье в основном представлены следующие методы:
I. Добавление элементов перекрестного умножения
II. Тест на основе модели SUR
III. Комбинированный тест
IV. Самостоятельное написание программы
V. Расчет вручную

В этой статье в основном рассказывается о процессе, а не конкретно о принципах.Подробности см. в следующих материалах
1. Стата: Как проверить разницу коэффициентов между группами после регрессии?
2. По одной и той же модели с тремя разными выборками тест разницы между коэффициентами регрессии
3. Stata: сделай сам тест разницы коэффициентов между группами - bootstrap-bdiff

I. Присоединяйтесь к элементу перекрестного умножения

*-I.加入交乘项
//最严格的系数差异性检验:假设其他控制变量在两组之间的不存在系数差异
**生成交乘项变量
xtset stkcd year
gen x_state = x*state

**加入产权性质(state)和交乘项(x_state)进行回归
reghdfe y x state x_state $z, absorb(year ind firm) vce(cluster firm)  

II. Тест на основе модели SUR

*-II.基于 SUR 模型的检验
//假设条件也比较宽松:回归时要保持二者回归变量一致,且固定效应多的时候需要去中心化(运行速度的考虑)
**固定效应处理
xtset stkcd year
tab year,gen(y_)  // 年度固定效应
tab ind,gen(i_)  // 行业固定效应

foreach var of varlist y x $z i_* y_* {
    
    	
	egen double `var'_0 = mean(`var'), by(firm)
	replace `var' = `var'-`var'_0 
	drop `var'_0 
	}  // 企业固定效应太多维,所以在企业层面进行去中心化来控制企业固定效应,加快运行速度
	
**分组回归并进行差异性检验
reg y x $z i_* y_*  if state==1
est store SOE

reg y x $z i_* y_*  if state==0
est store NonSOE

suest SOE NonSOE, vce (cluster firm)
test [SOE_mean]x=[NonSOE_mean]x

III. Комбинированное испытание

*-III.组合检验
//条件最为宽松:原始样本是从母体中随机抽取的,适用于各种命令(reg、xtreg、logit、ivregress)

**-方式I
**固定效应处理
xtset stkcd year
tab year,gen(y_)  // 年度固定效应
tab ind,gen(i_)  // 行业固定效应

foreach var of varlist y x $z i_* y_* {
    
    	
	egen double `var'_0 = mean(`var'), by(firm)
	replace `var' = `var'-`var'_0 
	drop `var'_0 
	}  // 企业固定效应太多维,所以在企业层面进行去中心化来控制企业固定效应,加快运行速度
	
**分组回归并进行差异性检验
bdiff, group(state) model(xtreg y x $z i_* y_*, cluster(firm)) reps(1000) seed(10101) first detail 

**-方式II
xtset stkcd year
bdiff, group(state) model(reghdfe y x $z, absorb(year ind firm) vce(cluster firm)) reps(1000) seed(10101) first detail 

IV. Напишите свою программу

*-IV.自己编写程序
//基于bdiff的原理,进行撰写,可以灵活运用自己回归的方式
**编写程序
capture program drop bse
program bse, eclass
xtset stkcd year

**-分组回归
reghdfe y x $z if state==1, absorb(year indid firm) vce(cluster firm) 
scalar b1= _b[x]

reghdfe  y x $z if state==0, absorb(year indid firm) vce(cluster firm) 
scalar b2= _b[x]

**-计算组间系数差异
scalar diff= b1- b2
 
**-将组间系数差存储在矩阵中,设置列名方便调取
matrix b = diff
matrix colnames b = diff

**-将组间系数差矩阵返回 e()
ereturn post b
ereturn display
end

**运行程序进行检验
bse // 运行程序
bootstrap _b[diff], reps(500) seed(1234) saving(diff,replace) nowarn : bse // 循环500次抽样
use diff,clear
count if _bs_1>0
local num = r(N)
local p = `num'/_N
if `p'>0.5 {
	local p = 1-`p'
	}
dis "y:`p'" // 不对diff的分布进行预先假设来检验“H0:diff=0

V. Ручной расчет

*-V.手动计算
**分组回归
xtset stkcd year

reghdfe y x $z if state==1, absorb(year indid firm) vce(cluster firm) 
est store SOE

reghdfe  y x $z if state==0, absorb(year indid firm) vce(cluster firm) 
est store NonSOE

**计算Z统计量
Z = (β1 = β2)/(Var(β1)+Var(β2))1/2  // (这里的1/2是指对(Var(β1)+Var(β2))开根号的意思!!!)
//其中β1 和 β2 是系数大小, Var(β1) 和Var(β2) 分别是两者的方差,更准确的写法是标准差(回归后系数的标准误)的平方,平方不好打出来,就用方差。

// 求出Z值后查Z统计量分布表,几个常用的临界值是Z=1.65对应p<0.1,Z=1.96对应p<0.05,Z=2.58对应p<0.01。如果你计算的Z值小于1.65,那连最宽松的p<0.1都不满足,无法说明两个系数具有显著差异。

//如果计算的z是负值,根据 P(-x)=1=p(x)

Guess you like

Origin blog.csdn.net/Claire_chen_jia/article/details/125963657