【问题标题】:Plotting linear graphs from dummy variables in Stata从Stata中的虚拟变量绘制线性图
【发布时间】:2015-07-03 18:27:11
【问题描述】:

我想按性别绘制我感兴趣的主要变量中 1 和 0 的分数的线性图。

我知道如何使用条形图来做到这一点,无论是使用计数还是均值,但这些命令似乎不适用于双向图表。

谁能给我一个快速指南?

【问题讨论】:

  • 请显示twoway 代码无法获取详细的cmets。但是,一般来说,您需要创建一个平均值,然后绘制它。 1 的分数只是指示变量的平均值,0 的分数是它的补码。
  • 感谢您及时回复尼克。这是我用于条形图的代码,它有效:图表条(平均值)fertzer,over(sexhead2)by(wave)。这里 fertzer 是家庭是否使用化肥的虚拟变量,sexhead2 也是户主是男性还是女性的虚拟变量,wave 是 2011 年和 2012 年调查波次的年份虚拟变量。理想情况下,我想在折线图中使用相同的图,所以我尝试了 graph twoway (mean) fertzer, over(sexhead2) by(wave) 但随后命令说它无法识别变量均值。
  • 确实如此。 twoway 的语法图非常清楚地表明这种语法是不允许的。我会发布一个答案。
  • 您不应在 cmets 中嵌入“长”代码 sn-ps。它不必要地难以阅读。您可以编辑原始帖子并将其包含在其中。这同样适用于答案评论部分中的其他代码。如果您想分享您对问题的解决方案,我相信您可以发布答案(是的,针对您自己的问题)。

标签: graph plot binary stata fractions


【解决方案1】:

OP 在评论中报告说这是有效的:

graph bar (mean) fertzer, over(sexhead2) by(wave)

这里fertzer是一个指示变量(虚拟,所谓的),如果家庭使用化肥,则值为1,否则为0; sexhead2也是户主是男是女的指标,wave是2011年或者2012年。

但尝试使用此语法获取折线图失败:

graph twoway (mean) fertzer, over(sexhead2) by(wave) 

这是这个问题的一个类似物,其语法有效:

sysuse auto, clear 

gen himpg = mpg > 20 

egen mean = mean(himpg), by(foreign rep78) 

line mean rep78, by(foreign) ytitle(fraction with more than 20 miles/gallon) yla(, ang(h)) sort 

twoway connected mean rep78, by(foreign) ytitle(fraction with more than 20 miles/gallon) yla(, ang(h)) sort 

对于twoway,与graph hbargraph bargraph dot 不同,您必须在绘图之前将均值创建为新变量。 twoway 不提供诸如 (mean) 之类的语法。

【讨论】:

  • 因为我们使用的是“by”,所以我们有 2011 年和 12 年的并排图表。但是,我想在同一个图表中绘制使用肥料的男性和女性的分数,并标记我的 x 轴作为年份(波浪),男性和女性在同一张图中有不同的线条。这就是我使用的:egen mean=mean(fertzer), by(wave sexhead2) line mean sexhead2, by(wave) ytitle(fraction of families using soil) sort twoway connected mean sexhead2, by(wave) ytitle(fraction of families使用肥料)排序,这给了我
  • 尼克,我想我找到了我要找的东西。这是我所拥有的:tw(如果 sexhead2 ==1 的连接平均波)///(如果 sexhead2 ==0 的连接平均波),ytitle(使用肥料的家庭比例)
猜你喜欢
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 2019-01-25
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多