CoxModel

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

Описание

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

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

где коэффициенты b не зависят от времени. Функция создания fitcox выводит как модельные коэффициенты b так и коэффициент опасности h 0 (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 statistic

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

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

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

beta = coxMdl.Coefficients.Beta

Чтобы выполнить другие тесты коэффициентов, используйте linhyptest.

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

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

'X ~ a + b + … + c'

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

Предполагаемая базовая совокупная опасность, заданная в виде матрицы double. Совокупная опасность оценивается в точки времени, определенные в обучении.

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

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

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

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

H0^(t)=tith0^(ti)=tit1jRiexp(β·xj),

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 'Martingale' - Остаток мартингале для точки X(i) является delta(i) – CoxSnell(i), где delta(i) указывает, X(i) умер, и CoxSnell(i) - невязка Кокса-Снелла в i. Невязка мартингале может рассматриваться как различие между истинным количеством смертей для 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 является

babtb-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