Анализ качественных переменных

Команда tabulate

Команда tabulate с одной переменной дает простую таблицу (аналогично команде tab1, смотри ниже), а с двумя переменными она дает кросс-табуляцию. В следующем примере вы увидите, как можно использовать три опции - column запрашивает расчет и распечатку процентов по отношению к сумме в столбце; chi2 – это тест χ2 test, а exact a заказывает расчет точного теста Фишера:

 tabulate rating type , column chi2 exact

.

 > tabulation of rating by type 

-

 quality | type of wine

 rating | 1 red 2 white 3 rosé 4 undeter | Total

--------------+--------------------------------------------+----------

 1. poor | 4  1 1 0 | 6 

 | 25.00 9.09  20.00 0.00 | 17.14 

--------------+--------------------------------------------+----------

  (Part of output omitted)

--------------+--------------------------------------------+----------

 4. excellent | 2 1 0 1 | 4 

 | 12.50 9.09  0.00 33.33 | 11.43 

--------------+--------------------------------------------+----------

 Total | 16  11 5 3 | 35 

 | 100.00 100.00  100.00 100.00 | 100.00 

 Pearson chi2(9) = 6.9131 Pr = 0.646

 Fisher's exact = 0.653

Вы можете запросить также и кросс-табуляцию для трех переменных (это двойная кросс-табуляция для каждого значения, например переменной nation) при помощи следующей команды:

 bysort nation: tabulate rating type

Команда tab1 [R]

tab1 распечатывает простую таблицу (частотную таблицу) для одной или более переменных:

 tab1 rating type (table for type not shown)

.

-> tabulation of rating 

 quality |

 rating | Freq.  Percent Cum.

--------------+-----------------------------------

 1. poor | 6  17.14 17.14

2. acceptable | 9 25.71 42.86

 3. good | 16  45.71 88.57

 4. excellent | 4 11.43 100.00

--------------+-----------------------------------

 Total | 35 100.00

 tab2 [R]

В то время как команда tabulate позволяет использовать только две переменных, tab2 позволяет использовать большое количество переменных. Команда выглядит так:

 tab2 rating type nation

при этом создаются три двойных кросс-таблуляции, по одной для каждой из комбинаций переменных. Но будьте внимательны: с этой командой вы можете легко привести к созданию громадного количества таблиц.

 Команда foreach [P]

Представьте, что вы хотите создать 10 двойных кросс-таблуляций: каждую для переменной q1-q10 в зависимости от переменной sex. Используя команду tabulate,  вы должны создать и ввести 10 команд для того, чтобы получить желаемый результат. Если вы вызовете команду tab2 с 11 переменными, вы получите 55 таблиц: все возможные комбинации 11 переменных. Команда  foreach (смотри раздел 15.7) позволяет вам обойти эту проблему: 

 foreach Q of varlist q1-q10 {

 tabulate `Q' sex

}

Локальная macro Q заменяет q1 и q10, генерирует, таким образом, 10 команд:

 tabulate q1 sex

 tabulate q2 sex  и т.д.

 Команда tabi [R]

tabi это так называемая «немедленная” команда (смотри раздел 15.5), которая позволяет вам анализировать таблицу без создания набора данных. Просто введите содержимое ячеек таблицы, разграничивая строки при помощи \ (косая черта):

 tabi 10 20 \ 17 9 , chi exact

.

 | col

 row | 1 2 |  Total

-----------+----------------------+----------

 1 | 10 20 |  30 

 2 | 17 9 |  26 

-----------+----------------------+----------

 Total | 27  29 | 56 

 Pearson chi2(1) = 5.7308 Pr = 0.017

 Fisher's exact = 0.031

 1-sided Fisher's exact = 0.016

 Семейство команд epitab [ST]

Команды в семействе epitab предназначены для выполнения стратифицированного анализа. Ниже я демонстрирую применение команды cc.

 cc case exposed , by(age) woolf

.

 Maternal age | OR [95% Conf. Interval] M-H Weight

----------------+-------------------------------------------------

 <35 | 3.394231  .9048403 12.73242 .7965957 (Woolf)

 35+ | 5.733333  .5016418 65.52706 .1578947 (Woolf)

----------------+-------------------------------------------------

 Crude | 3.501529  1.110362 11.04208 (Woolf)

 M-H combined | 3.781172 1.18734 12.04142 

------------------------------------------------------------------

est of homogeneity (M-H) chi2(1) = 0.14 Pr>chi2 = 0.7105

T

 Test that combined OR = 1:

 Mantel-Haenszel chi2(1) = 5.81

 Pr>chi2 = 0.0159

Все процедуры выполняют стратифицированный анализ (анализ по Mantel-Haenszel). 

cc рассчитывает отношение шансов для каждой страты и общее отношение шансов по Mantel-Haenszel. Кроме того, проводится тест гомогенности, который отвечает на вопрос, насколько индивидуальное отношение шансов может отражать общее отношение шансов.

Команда

Показатель связи

Немедленная команда

ir

iri

cs

Когортные исследования: Отношения риска, различия риска

csi

cc

Исследования по типу случай-контроль: отношение шансов

cci

tabodds

Отношение шансов, несколько уровней воздействия. Тест на тенденции

 

mhodds

Отношение шансов, несколько уровней воздействия. Тест на тенденции

 

mcc

Отношение шансов (парные исследования по типу случай-контроль)

mcci

Если вы хотите стратифицировать ваши данные более, чем по одной переменной наиболее полезной может оказаться следующая команда:

 egen racesex=group(race sex)

 cc case exposed , by(racesex)

Немедленные команды не выполняют стратифицированный анализ, примером является cci. Просто введите четыре ячейки таблицы (a b c d) стандартной четырехпольной таблицы (2×2): 

 cci 10 20 17 9 , woolf