如何在面板数据模型中识别观测值较少的组别?——Stata xtlogit随机效应模型实操问询
解决Stata面板数据中排除观测值少的组别问题
我来给你一步步搞定这个需求,操作起来很直观:
1. 先计算每个组的观测数量
首先我们给每个countrycode组生成一个变量,存储该组的总观测数:
bysort countrycode: gen obs_count = _N
这里bysort countrycode是按国家代码分组,_N是Stata内置的表示每组观测数的参数,生成的obs_count变量会给每组的所有观测值都标记上该组的总观测数。
2. 检查并筛选掉观测数不足的组
如果你想先确认哪些组只有1个观测值,可以先运行这条命令查看:
list countrycode obs_count if obs_count == 1
确认无误后,我们直接保留观测数大于1的组:
keep if obs_count > 1
如果之后你想调整筛选阈值(比如排除观测数少于5的组),只需要把>1改成>4这类对应的数值就行。
3. 重新确认面板设置并估计模型
因为我们修改了数据集,最好重新确认一下面板设置:
xtset countrycode year
现在就可以正常运行你的随机效应logit模型了:
xtlogit 因变量 自变量列表, re
替代方案:直接在模型中加条件(无需生成变量)
如果你不想修改原始数据集,也可以直接在xtlogit命令里加筛选条件,一步完成:
bysort countrycode: xtlogit 因变量 自变量列表 if _N > 1, re
不过这种方式每次运行模型都要带上这个条件,如果你需要多次分析,还是先清理数据集更高效。
内容的提问来源于stack exchange,提问作者KC15
相关产品推荐
相关产品推荐

