#stata
#stata
Вопрос:
У меня есть следующие результаты, которые я хотел бы поместить в Stata и выполнить некоторый анализ:
Есть ли способ, которым я могу сгенерировать набор данных для этих данных в Stata, чтобы было соответствующее количество наблюдений, позволяющих мне запускать tabodds
или подобное?
Ответ №1:
Возможно, это то, что вы ищете.
clear
set obs 6
gen region = word("`c(ALPHA)'", ceil(_n / 2))
bysort region : gen control = _n - 1
label define casecontrol 1 "Control" 0 "Case"
label values control casecontrol
local expandlist 708 1392 946 2086 328 996
gen exp = real(word("`expandlist'", _n))
expand exp
drop exp
tab region control
Результат:
. tab region control
| control
region | Case Control | Total
----------- ---------------------- ----------
A | 708 1,392 | 2,100
B | 946 2,086 | 3,032
C | 328 996 | 1,324
----------- ---------------------- ----------
Total | 1,982 4,474 | 6,456
Комментарии:
1. Большое спасибо @Wouter, это очень помогло, и я смог выполнить свой тест хи-квадрат тренда. Тем не менее, я изо всех сил пытаюсь применить это к другим ситуациям — как мне адаптировать его для таблицы 2×2 (скажем, двоичная переменная, а не 3 региона)? Я попытался изменить область сортировки на что-то вроде _n / 2 или _n — 2, но это явно неправильно.
2. Самое главное — установить правильное количество начальных наблюдений, по одному для каждой комбинации переменных. Итак, 2×2 подразумевает
set obs 4
. Простое изменение этого уже сработало бы. Если вам нужна индикаторная переменная 0 1 вместо области A B, вы можете изменитьgen region = word("`c(ALPHA)'", ceil(_n / 2))
ее на что-то вродеgen region = mod(_n, 2)