exponenta event banner

CoxModel

Модель пропорциональных рисков Кокса

Описание

Модель пропорциональных рисков Кокса относится к данным о сроке службы или времени отказа. Базовая модель Кокса включает в себя функцию h0 (t) опасности и коэффициенты b модели так, что для предсказателяX, степень опасности в момент времени t

h (Xi, t) = h0 (t) exp[∑j=1pxijbj],

где коэффициенты b не зависят от времени. Функция создания fitcox выводит как коэффициенты модели b, так и степень опасности h0 (t) и сохраняет их как свойства в результирующемCoxModel объект.

Полная модель Кокса включает расширения к базовой модели, такие как опасности в отношении различных исходных линий или включение переменных стратификации. См. Расширение модели пропорциональных рисков Кокса.

Создание

Создать CoxModel объект с использованием fitcox.

Свойства

развернуть все

Базовый риск, определяемый при установке модели, указывается как реальный скаляр. Модель Кокса является моделью относительного риска, поэтому для нее требуется базовая линия, на которой сравниваются опасности данных относительно базовой линии. Значение по умолчанию: mean(X) (и среднее в каждой стратификации для стратифицированных моделей), поэтому уровень опасности на X является h(t)*exp((X-mean(X))*b). Войти 0 для вычисления базовой линии относительно 0, таким образом, уровень опасности на X является h(t)*exp(X*b). Изменение базовой линии не влияет на коэффициенты.

Типы данных: double

Ковариационная матрица для оценок коэффициентов, заданная как квадратная матрица с числом строк, равным числу предикторов.

Типы данных: double

Коэффициенты и соответствующие статистические данные, указанные в виде таблицы с четырьмя столбцами:

  • Beta - Оценка коэффициента

  • SE - Стандартная погрешность оценки коэффициента

  • zStat - z статистика

  • pValue - p-значение коэффициента (по сравнению с нулевой бета-величиной)

Каждая строка таблицы соответствует одному предиктору.

Чтобы получить любой из этих столбцов в виде вектора, выполните индексирование в свойство с помощью точечной нотации. Например, в coxMdl объект, оцененный вектор коэффициента

beta = coxMdl.Coefficients.Beta

Для выполнения других тестов коэффициентов используйте linhyptest.

Типы данных: table

Представление модели, используемой при посадке, указанное как формула в нотации Уилкинсона. Смотри Нотацию Уилкинсона. Например, чтобы включить несколько предикторов, используйте

'X ~ a + b + … + c'

где каждая из переменных a, b, c представляет один предиктор. Эти переменные являются именами столбцов для таблицы X.

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

Hazard имеет не менее двух столбцов. Первый столбец содержит значения времени, а остальные столбцы содержат совокупный риск в каждый указанный момент времени.

  • Для нестратифицированных моделей Hazard имеет два столбца.

  • Для стратифицированных моделей Hazard имеет дополнительный столбец для каждой уникальной комбинации уровней стратификации. Различные значения времени в Hazard(:,1) для каждой стратификации разделяются 0 записи в Hazard(:,2). Стратифицированная модель - это модель, обученная с использованием 'Stratification' аргумент «имя-значение».

Теоретически кумулятивная опасность в момент времени t равна -log (1 - cdf (t)). Эмпирическая совокупная опасность

H0 ^ (t) =∑ti≤th0^ (ti) =∑ti≤t1∑j∈Riexp (β· xj),

где Ri - риск, установленный во время ti, то есть наблюдения, которые подвержены риску неудачи. См. раздел Функция частичного правдоподобия.

Типы данных: double

Указание на то, что модель обучена стратифицированным данным, заданным как логическое значение (true или false).

Типы данных: logical

P-значение, указывающее, является ли модель значимой относительно нулевой модели, заданной как действительный скаляр.

Это свойство содержит p-значение выполнения теста отношения правдоподобия относительно нулевой модели, то есть модели со всеми коэффициентами, равными 0.

Тест отношения правдоподобия сравнивает функцию правдоподобия данных при оценках коэффициентов и при этом все коэффициенты равны 0. Сравнение дает тестовую статистику, которую можно использовать для определения того, является ли обученная модель значимой относительно модели со всеми коэффициентами, равными 0. Нулевая гипотеза заключается в том, что нет разницы между нулевой моделью и обученной моделью, поэтому значительное значение p подразумевает, что обученная модель является значимой.

Типы данных: double

Логарифм функции правдоподобия при оценках коэффициентов, заданных как действительный скаляр.

Типы данных: double

Число предикторов (коэффициентов) в модели, указанное как положительное целое число.

Типы данных: double

Имена предикторов, используемых для соответствия модели, заданные как клеточный массив символьных векторов. Если модель обучена данным в таблице, имена предикторов являются именами столбцов таблицы. В противном случае имена предикторов: X1, X2и так далее.

Типы данных: cell

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

Модель Кокса опирается на предположение о пропорциональных опасностях, то есть для любых двух точек данных X1 и X2 опасность (X1 )/опасность (X2) постоянна. Это предположение может быть нарушено, если предикторы зависят от времени. Например, если предиктор соответствует возрасту, он обычно становится более опасным с увеличением возраста.

Тест этого предположения использует масштабированные остатки Шенфельда и был получен Grambsch и Therneau в [1].

Нулевая гипотеза заключается в том, что каждый коэффициент удовлетворяет предположению о пропорциональных опасностях. Значительное значение p подразумевает, что конкретный коэффициент нарушает предположение о пропорциональных опасностях. Тест выполняется для каждого коэффициента, поэтому это свойство является вектором с таким количеством элементов, как количество коэффициентов.

Типы данных: double

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

Модель Кокса опирается на предположение о пропорциональных опасностях, то есть для любых двух точек данных X1 и X2 опасность (X1 )/опасность (X2) постоянна. Это предположение может быть нарушено, если предикторы зависят от времени. Например, если предиктор соответствует возрасту, он обычно становится более опасным с увеличением возраста.

Тест этого предположения использует масштабированные остатки Шенфельда и был получен Grambsch и Therneau в [1].

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

Типы данных: double

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

  • 'CoxSnell' - Остатки Кокса-Снелла для наблюдения X(i) определяются как совокупная опасность в момент времени i (cumHazard(i)) умножается на опасность X(i): csres(i) = cumHazard(i) * exp(X(i) * Beta). Бета - подходящий бета-вектор, хранящийся в Coefficients.

  • 'Deviance' - Остаточное отклонение определяется с использованием остаточного отклонения мартингала следующим образом: D(i) = sign(M(i))*sqrt(–2*[M(i) + delta(i)*log(delta(i)–M(i)))], где D(i) является iостаточное отклонение, M(i) является iостаточное значение martingale и delta(i) указывает, является ли точка данных i умер или нет.

  • 'Martingale' - Остаточное значение мартингала для точки X(i) является delta(i) – CoxSnell(i), где delta(i) указывает, если X(i) умер, и CoxSnell(i) - остаток Кокса-Снелла при i. Остаточное значение martingale можно рассматривать как разницу между истинным числом смертей для X(i) минус ожидаемое количество смертей на основе модели.

  • 'Schoenfeld' - Остатки Шенфельда определяются как: scres(i,j) = X(i,j) – M(Beta,i,j), где X(i,j) является j-й элемент наблюдения i, и M(Beta,i,j) является ожидаемым значением X(i,j), учитывая количество живых наблюдений, оставшихся на момент времени i. Остатки Шенфельда можно рассматривать как разницу между истинными мертвыми наблюдениями во время i и как модель ожидает мертвого наблюдения во время i, учитывая оставшиеся живые наблюдения. Остатки вычисляются для каждого ковариата, поэтому они имеют столько же столбцов, сколько и количество изученных параметров. Остатки действительны только для времени и наблюдений, в которых были смерти. Для любых цензурированных наблюдений соответствующий остаток равен NaN.

  • 'ScaledSchoenfeld' - Масштабированные остатки Шенфельда - это остатки Шенфельда, масштабированные дисперсией усвоенных коэффициентов. Как и остатки Шенфельда, масштабированные остатки не определены для наблюдений и времен, в которые не было смертей; остаточное значение в такой точке равно NaN.

  • 'Score' - Остатки баллов определяются как: scores(i,t) = integral_{0}^{t}(X(i,u) – Xbar(u)) dScres(i,u), где Schres(i) - остаток Шенфельда при наблюдении i, и Xbar - среднее значение наблюдений, которые еще живы во время u. Остатки вычисляются для каждого ковариата, поэтому они имеют столько же столбцов, сколько и количество изученных параметров.

  • 'ScaledScore' - Масштабированные остатки оценки - это остатки оценки, масштабированные ковариацией подобранных коэффициентов.

Residuals имеет то же количество строк, что и данные обучения.

Типы данных: table

Имя ответной переменной, указанное как символьный вектор. Для моделей, где значение ответа находится в таблице, имя переменной ответа является именем соответствующего столбца таблицы. В противном случае ResponseName является 'T'.

Типы данных: char

Стандартные погрешности оценок коэффициентов, определяемые как действительный вектор. StandardError - квадратный корень диагонали CoefficientCovariance матрица.

Типы данных: double

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

  • Числовой массив - все переменные стратификации являются числовыми.

  • Массив строк - все переменные являются строками.

  • Массив строк ячеек - все переменные являются строками ячеек.

  • Категориальный массив - все переменные категоричны.

  • Массив ячеек - переменные являются смешанными типами.

Учитывая некоторые данные X и T, в следующей таблице приведены примеры того, что Stratification содержит.

Входные данныеПримерРезультирующая стратификация
Дважды mdl = fitcox(X,T,'Stratification',[1 2; 1 2; 2 2; 2 2]); [1 2; 2 2]
Последовательностьmdl = fitcox(X,T,'Stratification',["cat";"dog";"dog";"bird"]);["cat"; "dog"; "bird"]
Строка ячейкиmdl = fitcox(X,T,'Stratification',{'cat';'dog';'dog';'bird'});{'cat';'dog';'bird'}
Категоричныйmdl = fitcox(X,T,'Stratification',categorical([1;2;3;4]));categorical([1;2;3;4])
Смешанные типы

data = table(X,T,[1;2;1;3],{'cat';'cat';'dog';'dog'},'VariableNames',{'X','T','S1','S2');

mdl = fitcox(data,'T','Stratification',{'S1','S2'});

{1 'cat'; 2 'cat'; 1 'dog'; 3 'dog'}

Типы данных: double | char | string | cell | categorical

Информация о данных фитинга, заданная как таблица с четырьмя столбцами:

  • Class - Класс предиктора.

  • Range - минимум и максимум предиктора, если он не категоричен, или список всех категорий, если предиктор категоричен.

  • InModel - логический индикатор, указывающий, используется ли предиктор в модели. Переменная ответа отсутствует в модели. Переменные предиктора, используемые для обучения, находятся в модели.

  • IsCategorical - Логическое указание, рассматривался ли предиктор как категоричный во время тренировки.

Если у модели нет категориальных предикторов, и формула не использовалась для соответствия модели, количество строк VariableInfo - количество предикторов модели. В противном случае количество строк совпадает с количеством элементов в PredictorNames.

Типы данных: table

Функции объекта

coefciДоверительный интервал для коэффициентов модели пропорциональных рисков Кокса
hazardratioОценка опасности модели Кокса относительно базовой линии
linhyptestТесты линейной гипотезы по коэффициентам модели Кокса
plotSurvivalГрафик функции выживания модели пропорциональных рисков Кокса
survivalРасчет выживаемости модели пропорциональных рисков Кокса

Примеры

свернуть все

Случайные величины Вейбулла с одним и тем же параметром формы имеют пропорциональные коэффициенты опасности; см. Распределение Вейбулла. Коэффициент опасности с параметром шкалы a и параметром формы b в момент времени t равен

бабтб-1.

Создание псевдослучайных выборок из распределения Вейбулла с параметрами масштаба 1, 5 и 1/3 и с одним и тем же параметром формы B.

rng default % For reproducibility
B = 2;
A = ones(100,1);
data1 = wblrnd(A,B);
A2 = 5*A;
data2 = wblrnd(A2,B);
A3 = A/3;
data3 = wblrnd(A3,B);

Создайте таблицу данных. Предикторами являются три типа переменных: 1, 2 или 3.

predictors = categorical([A;2*A;3*A]);
data = table(predictors,[data1;data2;data3],'VariableNames',["Predictors" "Times"]);

Подгонка регрессии Кокса к данным.

mdl = fitcox(data,"Times")
mdl = 
Cox Proportional Hazards regression model:

                     Beta        SE        zStat       pValue  
                    _______    _______    _______    __________

    Predictors_2    -3.5834    0.33187    -10.798    3.5299e-27
    Predictors_3     2.1668    0.20802     10.416    2.0899e-25

rates = exp(mdl.Coefficients.Beta)
rates = 2×1

    0.0278
    8.7301

Выполнить регрессию пропорциональных рисков Кокса на lightbulb набор данных, содержащий смоделированное время жизни лампочек. Первый столбец данных по лампочке содержит срок службы (в часах) двух различных типов лампочек. Второй столбец содержит двоичную переменную, указывающую, является ли колба флуоресцентной или накаливающей; 0 означает, что лампа является флуоресцентной, а 1 означает, что она является накаливающей. Третий столбец содержит информацию о цензуре, где 0 указывает, что лампочка наблюдалась до отказа, а 1 указывает, что наблюдение было подвергнуто цензуре.

Загрузить lightbulb набор данных.

load lightbulb

Подберите модель пропорциональных рисков Кокса для срока службы лампочек с учетом цензуры. Переменная предиктора - тип колбы.

coxMdl = fitcox(lightbulb(:,2),lightbulb(:,1), ...
    'Censoring',lightbulb(:,3))
coxMdl = 
Cox Proportional Hazards regression model:

           Beta       SE      zStat       pValue  
          ______    ______    ______    __________

    X1    4.7262    1.0372    4.5568    5.1936e-06

Определите степень опасности ламп накаливания по сравнению с люминесцентными ламп, оценив exp (Beta).

hr = exp(coxMdl.Coefficients.Beta)
hr = 112.8646

Оценка коэффициента опасности составляет eBeta = 112,8646, что означает, что расчетная опасность для ламп накаливания в 112,86 раза превышает опасность для люминесцентных ламп. Малое значение coxMdl.Coefficients.pValue указывает на незначительную вероятность того, что два типа лампочек имеют одинаковые коэффициенты опасности, что будет означать Beta = 0.

Ссылки

[1] Грамбш, Патрисия М. и Терри М. Терно. Тесты и диагностика пропорциональных рисков на основе взвешенных остатков. Биометрика, том 81, № 3, 1994, стр. 515-526. JSTOR, https://www.jstor.org/stable/2337123.

Представлен в R2021a