exponenta event banner

fitcox

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

Описание

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

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

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

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

coxMdl = fitcox(X,T) возвращает объект модели пропорциональных рисков Кокса coxMdl использование значений предиктора X и время событий T.

пример

coxMdl = fitcox(X,T,Name,Value) изменение посадки с использованием одного или нескольких Name,Value аргументы. Например, когда данные включают цензуру (значения, которые не соблюдаются), Censoring указывает данные, подвергнутые цензуре.

Примеры

свернуть все

Случайные величины Вейбулла с одним и тем же параметром формы имеют пропорциональные коэффициенты опасности; см. Распределение Вейбулла. Коэффициент опасности с параметром шкалы 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.

Входные аргументы

свернуть все

Предикторные значения, указанные как матрица или таблица.

  • Матрица содержит один столбец для каждого предиктора и одну строку для каждого наблюдения.

  • Таблица содержит по одной строке для каждого наблюдения. Таблица также может содержать временные данные, а также предикторы.

По умолчанию, если данные предиктора находятся в таблице, fitcox предполагает, что переменная категорична, если она является логическим вектором, категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей, fitcox предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью CategoricalPredictors аргумент «имя-значение».

Если X, T, значение 'Frequency', или значение 'Stratification' содержит NaN значения, затем fitcox удаляет строки с NaN значения из всех данных при подборе модели Кокса.

Типы данных: double | table | categorical

Время события, указанное как одно из следующих:

  • Вектор вещественного столбца.

  • Вещественная матрица с двумя столбцами, представляющими время начала и окончания.

  • Имя столбца в таблице X.

  • Формула в нотации Уилкинсона для таблицы X. Например, чтобы указать, что столбцы таблицы 'x' и 'y' находятся в модели, используйте

    'T ~ x + y'

    Смотри Нотацию Уилкинсона.

Для векторных или матричных записей - количество строк T должно совпадать с количеством строк X.

Используйте форму из двух столбцов T подгонка модели с изменяющимися во времени коэффициентами. См. Модель пропорциональных рисков Кокса с зависимыми от времени ковариатами.

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: подгонка данных с цензурированными значениями cens, указать 'Censoring',cens.

Начальные значения коэффициентов, заданные как числовой вектор значений коэффициентов. Эти значения инициируют итерации максимизации вероятности, выполняемые fitcox.

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

X значения, при которых вычисляется базовая опасность, заданная как действительный скаляр или вектор строки. Если Baseline - вектор строки, его длина - количество предикторов, поэтому для каждого предиктора существует одна базовая линия.

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

Для выявленных категориальных предикторов fitcox создает фиктивные переменные. fitcox создает на одну фиктивную переменную меньше числа категорий. Дополнительные сведения см. в разделе Автоматическое создание фиктивных переменных.

Пример: 'Baseline',0

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

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

СтоимостьОписание
Вектор положительных целых чиселКаждая запись в векторе является значением индекса, соответствующим столбцу данных предиктора (X), которая содержит категориальную переменную.
Логический векторA true ввод означает, что соответствующий столбец данных предиктора (X) - категориальная переменная.
Символьная матрицаКаждая строка матрицы является именем предикторной переменной в таблице X. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину.
Строковый массив или массив ячеек символьных векторовКаждый элемент массива является именем переменной предиктора в таблице X. Имена должны соответствовать записям в PredictorNames.
'all'Все предикторы категоричны.

По умолчанию, если данные предиктора находятся в таблице, fitcox предполагает, что переменная категорична, если она является логическим вектором, категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей, fitcox предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».

Для выявленных категориальных предикторов fitcox создает фиктивные переменные. fitcox создает на одну фиктивную переменную меньше числа категорий. Дополнительные сведения см. в разделе Автоматическое создание фиктивных переменных.

Пример: 'CategoricalPredictors','all'

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

Индикатор цензуры, заданный как логический вектор с тем же количеством строк, что и X или имя столбца в таблице X. Используйте 1 для наблюдений с правильной цензурой и 0 для наблюдений с полным соблюдением. По умолчанию все наблюдения полностью соблюдаются. Пример см. в разделе Модель пропорциональных рисков Кокса для данных с цензурой.

Пример: 'Censoring',cens

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

Частота или вес наблюдений, указанный как массив того же размера, что и T содержит неотрицательные скалярные значения. Массив может содержать целочисленные значения, соответствующие частотам наблюдений, или неотрицательные значения, соответствующие весам наблюдений.

Значение по умолчанию - 1 на строку X и T.

Если X, T, значение 'Frequency', или значение 'Stratification' содержит NaN значения, затем fitcox удаляет строки с NaN значения из всех данных при подборе модели Кокса.

Пример: 'Frequency',w

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

Параметры управления алгоритмом для итеративного алгоритма fitcox использует для оценки решения, указанного как структура. Создать эту структуру с помощью statset. Имена параметров и значения по умолчанию см. в следующей таблице или введите statset('fitcox').

В таблице «допуск окончания» означает, что если внутренние итерации вызывают изменение указанного значения меньше, чем допуск, итерации прекращаются.

Поле в структуреОписаниеЦенности
DisplayОбъем информации, возвращенной в командную строку
  • 'off' - Нет (по умолчанию)

  • 'final' - Окончательный выход

  • 'iter' - Вывод на каждой итерации

MaxFunEvalsМаксимальное количество оценок функцийПоложительное целое число; по умолчанию - 200
MaxIterМаксимальное количество итерацийПоложительное целое число; по умолчанию - 100
TolFunДопуск прекращения на изменение вероятности; см. модель пропорциональных рисков КоксаПоложительный скаляр; по умолчанию - 1e-8
TolXДопуск окончания для изменения параметра (оценка предиктора)Положительный скаляр; по умолчанию - 1e-8

Пример: 'OptimizationOptions',statset('TolX',1e-6,'MaxIter',200)

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

  • Если вы поставляете X в качестве числового массива, то можно использовать 'PredictorNames' назначение имен переменным предиктора в X.

    • Порядок имен в PredictorNames должен соответствовать порядку столбцов X. То есть PredictorNames{1} является именем X(:,1), PredictorNames{2} является именем X(:,2)и так далее. Также, size(X,2) и numel(PredictorNames) должно быть равным.

    • По умолчанию PredictorNames является {'X1','X2',...}.

  • Если вы поставляете X в качестве таблицы, то можно использовать 'PredictorNames' чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitcox использует только переменные предиктора в PredictorNames и переменная времени во время обучения.

    • PredictorNames должен быть подмножеством X.Properties.VariableNames и не может включать имя переменной времени T.

    • По умолчанию PredictorNames содержит имена всех переменных предиктора.

    • Укажите предикторы для обучения с помощью 'PredictorNames' или формула в нотации Уилкинсона, но не обе.

Пример: 'PredictorNames',{'Sex','Age','Weight','Smoker'}

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

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

Дефолт [] не является переменной стратификации.

Если X, T, значение 'Frequency', или значение 'Stratification' содержит NaN значения, затем fitcox удаляет строки с NaN значения из всех данных при подборе модели Кокса.

Пример: 'Stratification',Gender

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

Метод обработки времени связанного отказа, указанный как 'breslow' (метод Бреслоу) или 'efron' (метод Эфрона). См. раздел Функция частичного правдоподобия для связанных событий.

Пример: 'TieBreakMethod','efron'

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

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