Stata 如何为最高四分位数的观测值生成累积变量

Stata 如何为最高四分位数的观测值生成累积变量,stata,Stata,我有4个变量 高度 重量 臂长 腿的长度 我想创建一个变量(new_var),它是一个汇总数字,等于我的观察值落入每个变量的最高四分位数的次数 sysuse auto, clear gen score = 0 quietly foreach v in trunk displacement length weight { su `v', detail noisily di "`v'{col 20}" r(p75) replace score = cond(m

我有4个变量

  • 高度
  • 重量
  • 臂长
  • 腿的长度
我想创建一个变量(
new_var
),它是一个汇总数字,等于我的观察值落入每个变量的最高四分位数的次数

sysuse auto, clear 

gen score = 0 

quietly foreach v in trunk displacement length weight { 
    su `v', detail 
    noisily di "`v'{col 20}" r(p75)
    replace score = cond(missing(`v'), ., score + (`v' > r(p75))) 
} 

tab score 
例如,如果您在上述一个(且仅一个)变量中得分最高的四分位,则您在
new\u var
中的值将为一。如果你在两个变量中得分最高(第二个和第五个变量是第一个和第二个变量并不重要),那么你在
new\u var
中的得分将是2,依此类推。有几种可能的组合


其思想是将参与者得分最高的四分位数的变量数相加,以创建一个汇总数。

您可以创建所有名为score的零变量,并在每次观察值位于变量的前四分位数时向其添加1:

sysuse auto, clear
gen score = 0
foreach var of varlist price mpg weight headroom {
    xtile q = `var', nq(4)
    replace score = score + cond(q==4,1,0)
    drop q
} 
tab score

您可以创建所有名为score的零变量,并在每次观察值位于变量的前四分位时向其添加1:

sysuse auto, clear
gen score = 0
foreach var of varlist price mpg weight headroom {
    xtile q = `var', nq(4)
    replace score = score + cond(q==4,1,0)
    drop q
} 
tab score

如果您只想知道值是否高于上四分位,则可以直接使用
summary
。注意任何变量上缺少的值

sysuse auto, clear 

gen score = 0 

quietly foreach v in trunk displacement length weight { 
    su `v', detail 
    noisily di "`v'{col 20}" r(p75)
    replace score = cond(missing(`v'), ., score + (`v' > r(p75))) 
} 

tab score 

如果您只想知道值是否高于上四分位,则可以直接使用
summary
。注意任何变量上缺少的值

sysuse auto, clear 

gen score = 0 

quietly foreach v in trunk displacement length weight { 
    su `v', detail 
    noisily di "`v'{col 20}" r(p75)
    replace score = cond(missing(`v'), ., score + (`v' > r(p75))) 
} 

tab score