Stata: Как я могу сгенерировать набор данных из результатов исследования «случай-контроль»?

#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)