CoxModel

Cox пропорциональная модель опасностей

Описание

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

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

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

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

Создание

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

Свойства

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

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

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

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

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

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

  • Beta — Содействующая оценка

  • SE — Стандартная погрешность содействующей оценки

  • zStat — z статистическая величина

  • pValuep - значение для коэффициента (по сравнению с нулевой Бетой)

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

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

beta = coxMdl.Coefficients.Beta

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

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

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

'X ~ a + b + … + c'

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

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

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

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

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

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

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

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

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

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

Типы данных: логический

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 'CoxSnell' — Остаточные значения Поводка Cox для наблюдения 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невязка отклонения th, M(i) iневязка мартингала th и delta(i) указывает если точка данных i умерший или нет.

  • 'Martingale' — Невязка мартингала для точки X(i) delta(i) – CoxSnell(i), где delta(i) указывает если X(i) умерший, и CoxSnell(i) невязка Поводка Cox в i. Невязка мартингала может быть просмотрена как различие между истинным количеством смертельных случаев для X(i) минус ожидаемое количество смертельных случаев на основе модели.

  • 'Schoenfeld' — Остаточные значения Шенфельда заданы как: scres(i,j) = X(i,j) – M(Beta,i,j), где X(i,j) jэлемент th наблюдения 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 содержит.

Входные данныеПримерПолучившаяся стратификация
'double' 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Доверительный интервал для Cox пропорциональные коэффициенты модели опасностей
hazardratioОцените опасность модели Cox относительно базовой линии
linhyptestЛинейная гипотеза тестирует на коэффициентах модели Cox
plotSurvivalПостройте функцию выживания Cox пропорциональная модель опасностей
survivalВычислите выживание Cox пропорциональная модель опасностей

Примеры

свернуть все

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

babtb-1.

Сгенерируйте псевдослучайные выборки от распределения Weibull с масштабными коэффициентами 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"]);

Соответствуйте регрессии Cox к данным.

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

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

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

load lightbulb

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

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] Grambsch, Патрисия М. и Терри М. Терно. Пропорциональные Тесты Опасностей и Диагностика На основе Взвешенных Остаточных значений. Biometrika, издание 81, № 3, 1994, стр 515–526. JSTOR, https://www.jstor.org/stable/2337123.

Введенный в R2021a