我有一个包含2个变量,收入和出生年份的各个人的数据集。我想制作一个折线图,其中x轴为出生年份,y轴为当年出生人口的平均收入值。
尽我所能,我无法让它发挥作用。我尝试使用twoway
命令,甚至尝试制作直方图,但都没有计算均值。我该如何编码呢?有没有办法可以创建另一个变量来存储每年对应的所有平均值?
答案 0 :(得分:1)
这种猫绝对有不止一种方法,但这里有两种我经常使用的方法。就个人而言,我更喜欢使用回归,但您也可以使用扩展生成(egen
),如Roberto在帖子的评论中建议的那样。有时,如果数据很大,egen
方法需要一段时间才能呈现(尽管有一些技巧可以避免这种情况,但我不会进入)。
以下是一些类似于您的数据的示例:
/* Get some data */
webuse set "http://www.stata-press.com/data/musr"
webuse "mus02psid92m.dta", clear
/* (1) With egen */
bysort age: egen mean_earnings_by_age = mean(earnings)
twoway (connected mean_earnings_by_age age)
/* (2) Using Regression */
regress earnings i.age
margins age
marginsplot, noci
/* Check that (1) and (2) are the same */
marginsplot, noci addplot(connected mean_earnings_by_age age)
webuse set // reset webuse to default