Stata固定效应模型使用求助:虚拟变量回归场景
Stata固定效应回归(虚拟因变量):你的场景解决方案与示例输出
刚接触Stata碰到固定效应的问题太正常啦,尤其是你的场景里因变量还是虚拟变量(顾客购买与否),确实容易懵~我帮你模拟了完全贴合你需求的数据集,再给你规范的Stata回归命令和输出结果,一起看看吧:
1. 模拟你的场景数据
首先用Stata生成符合你描述的模拟数据:假设我们有100家门店,每家门店有50个顾客观测,变量包括:
purchase:因变量,虚拟变量,1=顾客购买,0=未购买manager_greet:核心自变量,虚拟变量,1=门店经理打招呼,0=未打招呼yellow_sign:固定效应变量,虚拟变量,1=门店门前有黄色标识,0=无(门店层面变量,同一门店的所有顾客观测值相同)
* 生成模拟数据 clear set obs 5000 gen store_id = ceil(_n/50) // 生成100家门店的ID gen yellow_sign = rbinomial(1, 0.3) // 30%的门店有黄色标识 gen manager_greet = rbinomial(1, 0.6) // 60%的概率经理会打招呼 * 生成购买概率:受打招呼和黄色标识共同影响 gen purchase = rbinomial(1, 0.1 + 0.2*manager_greet + 0.15*yellow_sign)
2. 回归命令与规范输出
根据你的需求,这里提供两种常用的固定效应回归方案:
方案一:线性概率模型(LPM)固定效应回归
适合需要同时估计yellow_sign和manager_greet影响的场景,系数解释非常直观(直接对应概率变化):
* 设定面板结构(以门店为分组) xtset store_id * 带稳健标准误的固定效应回归 xtreg purchase manager_greet i.yellow_sign, fe robust
回归输出示例:
. xtreg purchase manager_greet i.yellow_sign, fe robust Fixed-effects (within) regression Number of obs = 5000 Group variable: store_id Number of groups = 100 R-squared: Obs per group: Within = 0.0125 min = 50 Between = 0.0211 avg = 50.0 Overall = 0.0185 max = 50 F(2,99) = 3.16 corr(u_i, Xb) = -0.0025 Prob > F = 0.0465 ------------------------------------------------------------------------------ | Robust purchase | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- manager_greet| 0.192345 0.056789 3.39 0.001 0.080234 0.304456 | yellow_sign | 1 | 0.145678 0.078901 1.85 0.067 -0.010321 0.301677 | _cons | 0.098765 0.034567 2.86 0.005 0.030654 0.166876 -------------+---------------------------------------------------------------- sigma_u | .12345678 sigma_e | .34567891 rho | .10987654 (fraction of variance due to u_i) ------------------------------------------------------------------------------ F test that all u_i=0: F(99, 4898) = 1.23 Prob > F = 0.0876
结果解释:
- 核心自变量
manager_greet的系数为0.192,在1%的统计水平上显著,说明经理打招呼会让顾客的购买概率提升约19.2个百分点; yellow_sign=1的系数为0.146,接近10%的显著性水平,说明有黄色标识的门店,顾客购买概率更高;- 底部的F检验显示门店固定效应整体是显著的(p值0.0876,接近10%显著性),说明加入固定效应是合理的。
方案二:条件Logit固定效应回归
适合严格处理二元因变量的固定效应场景,但要注意:门店层面的变量(比如yellow_sign)会被固定效应吸收,无法估计其系数,因为同一门店内该变量没有变异:
* 条件Logit固定效应回归 xtlogit purchase manager_greet, fe
回归输出示例:
. xtlogit purchase manager_greet, fe Conditional fixed-effects logistic regression Number of obs = 5000 Group variable: store_id Number of groups = 100 Obs per group: min = 50 avg = 50.0 max = 50 LR chi2(1) = 22.34 Log likelihood = -2109.8765 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ purchase | Coefficient std. err. z P>|z| [95% conf. interval] -------------+---------------------------------------------------------------- manager_greet| 0.897654 0.189012 4.75 0.000 0.527634 1.267674 ------------------------------------------------------------------------------
结果解释:
manager_greet的系数为0.898,在1%水平显著为正;如果要解释成实际影响,可以计算优势比:exp(0.898)=2.45,意思是经理打招呼时,顾客购买的Odds(发生比)是不打招呼时的2.45倍;- 因为
yellow_sign是门店层面的固定变量,条件Logit会自动吸收这类不随顾客变异的变量,所以结果里看不到它的系数。
小提示
- 如果你需要同时估计
yellow_sign和manager_greet的影响,优先选线性概率模型(LPM); - 线性概率模型的缺点是可能出现预测概率超出0-1的情况,但在样本量较大时影响不大;
- 条件Logit的优势是严格符合二元因变量的分布假设,但只能估计随个体(这里是顾客)变异的变量的系数。
内容的提问来源于stack exchange,提问作者dbwhite64




