График Stata с информацией из нескольких переменных - PullRequest
0 голосов
/ 06 августа 2020

У меня есть 10 двоичных переменных - var1, var2, ..., var10, отвечающих «да» или «нет» (1 или 0) на определенный вопрос, но при других условиях. Я хочу создать гистограмму в статистике, которая показывает мне долю людей, которые ответили «нет» для каждой из переменных (один график). Как я могу это сделать? Если я использую обычную команду barplot для частот

graph bar, over(varlist) 

, я получаю сообщение об ошибке, потому что over() принимает только одну переменную, а не список переменных. Что-то вроде этого довольно легко сделать в 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, соответственно, в примере данные).

1 Ответ

1 голос
/ 06 августа 2020

Здесь нет воспроизводимого примера данных. В вики-странице тегов Stata есть очень подробные советы о том, как давать примеры данных.

Построение доли нулей напрямую не приводит к какой-либо уловке, очевидной для меня, когда я пишу, но вот обходной путь. Принципы для 10 переменных не отличаются от принципов для примера с четырьмя переменными, изобретенного здесь. Основная идея заключается в том, что по умолчанию graph hbar (или graph bar или graph 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 переменных может быть средней сделкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...