根据另一个变量的中位数创建一个二元变量,按两个变量分组

Posted

技术标签:

【中文标题】根据另一个变量的中位数创建一个二元变量,按两个变量分组【英文标题】:Creating a binary variable based on the median of another variable, grouping by two variables 【发布时间】:2022-01-17 23:40:26 【问题描述】:

在Stata中,我想根据另一个变量unemp的中值创建一个二进制变量median_unemp,将中值的计算按regionyear分组。也就是说,median_unemp 在特定观察的失业率大于该地区和观察年份的失业率中位数时为 1(否则为 0)。

下面的代码会根据整个数据集生成我的变量,但我希望按子组计算中位数(通过regionyear):

webuse productivity.dta, clear
summarize unemp, detail
gen median_response = r(p50)
gen median_unemp = (unemp>=median_response)
replace median_unemp =. if unemp==.

在仔细检查数据后,我想知道 unempfor 我的数据集的观察 1(即在 region=1 和 year=1970 中)是否大于 median_unemp 的值(针对region=1 和year=1970 计算)等等。如果大于中位数,则median_unemp==1。如果低于中位数,则median_unemp==0。

【问题讨论】:

【参考方案1】:
webuse productivity.dta, clear
egen median_unemp = median(unemp), by(region year)
gen high_unemp = (unemp >= median_unemp) if unemp < .

在此数据集中,unemp 没有缺失值,但分离缺失值是一种很好的做法。每个中位数是 9 个值中的第 5 个,因此留出平局 4 个值将小于中位数,5 个大于或等于中位数。

【讨论】:

以上是关于根据另一个变量的中位数创建一个二元变量,按两个变量分组的主要内容,如果未能解决你的问题,请参考以下文章

按一个变量排序,按另一个分组,然后在 R 中的 SQL Query 中选择第一行

二元变量的散点图 (ggplot)

二元隐函数 数值求解

如何在Likert量表上测量的自变量应该在二元逻辑回归中作为连续变量或序数变量来处理?

将 MIB 变量标签连接到 Prometheus 中其他两个 MIB 变量的另一个查询结果

创建一个新变量,它是python中另一个变量的每周最小值/最大值