【问题标题】:Stata plot with information from multiple variables包含来自多个变量的信息的统计图
【发布时间】:2020-08-06 11:37:23
【问题描述】:

我有 10 个二进制变量 - var1、var2、...、var10 对某个问题回答“是”或“否”(1 或 0),但条件不同。我想在 stata 中创建一个条形图,向我显示对每个变量回答“否”的人的比例(单个图)。我怎样才能做到这一点?如果我对频率使用常规 barplot 命令

graph bar, over(varlist) 

我收到一个错误,因为over() 只接受一个变量,而不是一个 varlist。这样的事情在 R 或 Python 中很容易做到,但我不确定如何在 stata 中做到这一点。我的数据如下所示:

   +-------------------------------+
   | id    var1   var2   var3      |
   |-------------------------------|    
1. |  1    0       0         1     |
2. |  2    1       1         1     |
3. |  3    0       1         1     |
   +-------------------------------+

如上所述,每个人都回答了 3 个问题(更确切地说,同一个问题以三种不同的方式呈现)“是”或“否”。我想生成一个带有三个条(“var1”、“var2”、“var3”)的条形图,每个代表对问题回答“否”的人的比例(在示例中分别为 0.67、0.33 和 0)数据)。

【问题讨论】:

  • 我会尽量取悦每个人,说我没有投反对票,但这样做的人有案子。如果没有可重复的示例,这不是一个好问题。

标签: plot stata


【解决方案1】:

这里没有可重现的数据示例。 Stata 标签 wiki 对如何给出数据示例有非常详细的建议。

在我写作时,直接绘制零的分数不会产生任何对我来说显而易见的技巧,但这里有一个解决方法。 10 个变量的原理与此处发明的四变量示例的原理没有什么不同。主要思想是graph hbar(或graph bargraph dot)的默认值是显示均值,二元变量的均值是一个比例。

clear 
set seed 2803
set obs 10 
forval j = 1/4 { 
    generate var`j' = runiform() > (`j' * 0.2) 
}

forval j = 1/4 { 
    generate nvar`j' = 1 - var`j'
    label var nvar`j' "var`j'"
}

graph hbar nvar* , ascategory ytitle(fraction of Nos) name(G1, replace)

statplot nvar*, ytitle(fraction of Nos) name(G2, replace)

statplot 解决方案(取决于使用ssc install statplot 安装该命令)只是一种替代方案。个人认为这里的直接结果比默认的graph hbar更接近文明图。但原则上并没有什么不同,您可以通过直接为graph hbar 拼出更多选项来更接近。

使用graph hbar 而不是graph bar 是个人选择。但是,如果您的真实数据有变量标签或更长的名称,那么为 10 个变量以可读方式显示的空间可能是中等规模的交易。

【讨论】:

  • 哦,对不起,这是我第一次发布关于 stata 的帖子。我需要提供什么样的数据示例?
  • 明白,但正如 Stata 标签维基解释的那样。已经详细解释的我就不写了。
  • 现在好吗?
  • 是的,您已经给出了示例数据。不,从某种意义上说,任何人都必须在它成为 Stata 数据之前对其进行编辑。本质上,命令dataex 的存在是为了提供数据示例(最坏的情况是您需要使用ssc install dataex 安装它)。
猜你喜欢
  • 2020-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
相关资源
最近更新 更多