Я анализирую данные для исследования, которое оценивает реакцию пациентов на переливания крови с точки зрения анализа крови. Для каждого переливания существует индикаторная переменная, которая отражает, достаточно ли улучшились показатели крови пациента или нет, в зависимости от заранее установленного отключения. Значение 1 указывает недостаточный ответ, а 0 указывает приемлемый ответ.
У каждого пациента зарегистрировано как минимум 2 и до 31 переливания крови, записанных как 31 переменная: T1, T2, ..., T31. Данные выглядят примерно так:
Patient T1 T2 T3 T4 T5 T6 … T31
1 1 1 0 M M M … M "Refractory"
2 0 0 0 0 M M … M "Not refractory"
3 0 0 1 1 0 M … M "Refractory"
4 1 0 0 0 1 1 … 1 "Refractory"
Анализ требует вычисления общего статуса "рефрактерности", который отражает совокупную реакцию на переливания крови. Пациент считается "рефрактерным", если у него было как минимум 2 последовательных переливаний с недостаточным ответом. В противном случае они считаются «невосприимчивыми».
Самый простой, самый простой способ (но не обязательно самый привлекательный), о котором я думал, заключался в использовании комбинаций логических утверждений для проверки всех возможных комбинаций имея два последовательных значения 1, например:
COMPUTE Refractory=
Transfusion.1 and Transfusion.2 or
Transfusion.2 and Transfusion.3 or
Transfusion.3 and Transfusion.4 or
Transfusion.4 and Transfusion.5 or
Transfusion.5 and Transfusion.6 or
Transfusion.6 and Transfusion.7 or
Transfusion.7 and Transfusion.8 or
Transfusion.8 and Transfusion.9 or
Transfusion.9 and Transfusion.10 or
Transfusion.10 and Transfusion.11 or
Transfusion.11 and Transfusion.12 or
Transfusion.12 and Transfusion.13 or
Transfusion.13 and Transfusion.14 or
Transfusion.14 and Transfusion.15 or
Transfusion.15 and Transfusion.16 or
Transfusion.16 and Transfusion.17 or
Transfusion.17 and Transfusion.18 or
Transfusion.18 and Transfusion.19 or
Transfusion.19 and Transfusion.20 or
Transfusion.20 and Transfusion.21 or
Transfusion.21 and Transfusion.22 or
Transfusion.22 and Transfusion.23 or
Transfusion.23 and Transfusion.24 or
Transfusion.24 and Transfusion.25 or
Transfusion.25 and Transfusion.26 or
Transfusion.26 and Transfusion.27 or
Transfusion.27 and Transfusion.28 or
Transfusion.28 and Transfusion.29 or
Transfusion.29 and Transfusion.30 or
Transfusion.30 and Transfusion.31.
Однако вычисление вернуло гораздо больше пропущенных значений, чем ожидалось. Я действительно не знаю, почему это так, но я подозреваю, что это связано с тем, как операторы and
и or
обрабатывают пропущенные значения, а также с тем фактом, что для большинства строк в данных будет много пропущенных значений по характеру записи данных. Следующее missingness карта (производится с использованием R) иллюстрирует это (красный = отсутствует):
1023 * Что бы быть лучше, чтобы вычислить «рефрактерность» статус, а правильно обработки пропущенных значений