1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
* Тема: Пример проведения анализа выживаемости.
* Ключевые слова: анализ выживаемости, Каплан-Мейер, цензурирование, регрессия Кокса, пропорциональность риска.
* Опубликован: 21.03.2008.
* Автор: Marta Garcia-Granero.
* Перевод: А. Балабанов.
* Размещение: http://www.spsstools.ru/Syntax/SurvivalAnalysis/SurvivalAnalysisExample.txt (.sps).

* Пример проведения анализа выживаемости.

* Размещено в SPSSX-L 13.05.2004. Автор: Marta Garcia-Granero.

* Пример данных (для некоторых случаев изменено количество лейкоцитов)
  из учебника Selvin S (1996) "Statistical analysis of epidemiological data"
  Oxford University Press *
* Время жизни после диагноза для 33 пациентов с острой миелоидной лейкемией *.

DATA LIST FREE /time(F8.1) status auer_r leuko (3 F8.0).
BEGIN DATA
65.0    1 0 2300 156.0 1 0 750 100.0 1 0 4300
134.0   1 0 2600 16.0   1 0 16000 108.0 1 0 10500
121.0   1 0 10000 4.0   1 0 17000 69.0 1 0 5400
143.0   1 0 7000 56.0   1 0 9400 26.0   1 0 32000
22.0    1 0 35000 1.0   1 0 100000 1.0 1 0 130000
5.0     1 0 52000 65.0  1 0 100000 65.0 1 1 3000
17.0    1 1 4000 7.0    1 1 1500 16.0   1 1 9000
22.0    1 1 5300 3.0    1 1 10000 4.0   1 1 19000
2.0     1 1 27000 3.0   1 1 28000 8.0   1 1 31000
4.0     1 1 26000 3.0   1 1 21000 30.0 1 1 79000
4.0     1 1 100000 43.0 1 1 100000 56.0 1 1 4400
END DATA.

VAR LABELS time "Время жизни (недели)"
 /status "Статус цензурирования"
 /auer_r "Миелоидные бласты (Auer Rods)"
 /leuko "Лейкоциты (удельн. число лейкоцитов)".

VALUE LABELS status 0 "Жив" 1 "Умер"
 /auer_r 0 "Присутствуют" 1 "Отсутствуют".

* Анализ Каплан-Мейера (Kaplan-Meier) *.

KM time  BY auer_r  /STATUS=status(1)
  /PRINT TABLE MEAN
  /PLOT SURVIVAL
  /TEST LOGRANK
  /COMPARE OVERALL POOLED .

RANK
  VARIABLES=leuko (A) /NTILES (3) /PRINT=NO
  /TIES=CONDENSE .

VAR LABELS nleuko "Лейкоциты по 3 категориям".
VALUE LABELS nleuko 1 "Наим. треть (<7.000 ед.)"
                    2 "Средн. треть (7.000-27.000 ед.)"
                    3 "Наиб. треть (>27.000 ед.)".

KM time  BY nleuko  /STATUS=status(1)
  /PRINT TABLE MEAN
  /PLOT SURVIVAL
  /TEST LOGRANK
  /COMPARE OVERALL POOLED .

* Попарные сравнения эффектов уровней фактора *.

KM  time  BY nleuko /STATUS=status(1)
  /PRINT NONE
  /TEST LOGRANK
  /COMPARE PAIRWISE POOLED .

* Стратифицированный анализ *.

KM  time  BY  auer_r /STRATA=nleuko /STATUS=status(1)
  /PRINT TABLE MEAN
  /PLOT SURVIVAL
  /TEST LOGRANK
  /COMPARE OVERALL POOLED .

KM  time  BY  nleuko/STRATA=auer_r  /STATUS=status(1)
  /PRINT TABLE MEAN
  /PLOT SURVIVAL
  /TEST LOGRANK
  /COMPARE OVERALL POOLED .

* Комментарий: из графиков можно предположить наличие эффекта взаимодействия между auer_r и числом лейкоцитов *.

* Однофакторная регрессия Кокса (Cox univariate) *.

COXREG
  time /STATUS=status(1)
  /CONTRAST (auer_r)=Indicator(1)
  /METHOD=ENTER auer_r
  /PRINT=CI(95)
  /CRITERIA=PIN(.05) POUT(.10) ITERATE(20) .

COXREG
  time /STATUS=status(1)
  /METHOD=ENTER leuko
  /PRINT=CI(95)
  /CRITERIA=PIN(.05) POUT(.10) ITERATE(20) .

* Комментарий: увеличение риска, связанное с изменением в количестве лейкоцитов на единицу, весьма небольшое, 
  так что лучше работать с тысячами: *.

COMPUTE thouleuk = leuko / 1000 .
EXECUTE .

COXREG
  time /STATUS=status(1)
  /METHOD=ENTER thouleuk
  /PRINT=CI(95)
  /CRITERIA=PIN(.05) POUT(.10) ITERATE(20) .

* Используем модель регрессии Кокса с главными эффектами, с пошаговым исключением переменных (BSTEP(LR)),
  но с параметрами PIN(1)и POUT(1), которые, на самом деле, обеспечивают включение в модель всех запрошенных переменных и не
  допускают исключения. Это позволяет нам получить скорректированные проверки на основе отношения правдоподобия
  (LR adjusted tests), которые лучше (в смысле большей чувствительности), чем критерий Вальда (Wald tests)*.

COXREG
  time  /STATUS=status(1)
  /CONTRAST (auer_r)=Indicator(1)
  /METHOD=BSTEP(LR) auer_r thouleuk
  /PRINT=CI(95)
  /CRITERIA=PIN(1) POUT(1) ITERATE(20) .


* Модель с эффектом взаимодействия *.

COXREG
  time  /STATUS=status(1)
  /CONTRAST (auer_r)=Indicator(1)
  /METHOD=BSTEP(LR) auer_r thouleuk auer_r*thouleuk
  /PRINT=CI(95)
  /CRITERIA=PIN(1) POUT(1) ITERATE(20) .

* Графическое представление эффекта взаимодействия: *.

COMPUTE hr=EXP(1.924*auer_r + 0.022*thouleuk -0.022*auer_r*thouleuk).
* (коэффициенты выше взяты из выдачи предыдущей процедуры) *.
EXEC.
GRAPH /SCATTERPLOT(BIVAR)=thouleuk WITH hr BY auer_r.

* График можно отредактировать вручную: добавить на них линии, соединяющие точки в 2-х подгруппах *.

* Дополнения: проверка предположения о пропорциональности риска (пропорциональной интенсивности) *.

* (а) График LML (Log минус Log) (для случая качественных предикторов (факторов) или категоризованных количественных предикторов) *.

* Если мы попробуем построить график LML таким образом: *.

COXREG
  time /STATUS=status(1)
  /PATTERN BY auer_r
  /CONTRAST (auer_r)=Indicator(1)
  /METHOD=ENTER auer_r
  /PLOT LML.

* Мы ВСЕГДА будем наблюдать на нём абсолютную пропорциональность, т.к. на нём высвечиваются ОЦЕНЁННЫЕ показатели LML,
  а не НАБЛЮДАЕМЫЕ.

* Правильный способ такой: *.
COXREG
  time  /STATUS=status(1)  /STRATA=auer_r
  /PLOT LML.

* Это даст нам наблюдаемые значения LML для обеих групп, а не те, которые были предсказаны
  регрессионной моделью, в которую уже были заложены предположения о пропорциональности влияния факторов
  с течением времени *.

* (б) Для количественных предикторов проверку правильности предположения о пропорциональности можно провести
  с помощью регрессии Кокса с временнОй ковариатой. Причём ковариату, зависящую от времени, можно вычислить
  разными способами. Например, используя показатель времени жизни, либо логарифм этого значения в выражении при
  расчёте T_COV_ *.


COXREG
  time  /STATUS=status(1)
  /METHOD=BSTEP(LR) T_COV_ thouleuk
  /PRINT=CI(95)
  /CRITERIA=PIN(1) POUT(1) ITERATE(20) .


* Собственная значимость проверки на основе макс. правдоподобия (p-value) =0.781 (незначимо),
 так что можно заключить, что предположение о пропорциональности риска для лейкоцитов не нарушено *.