fitcox

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

Описание

fitcox функция создает 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 Пропорциональная Модель Опасностей.

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

пример

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

Примеры

свернуть все

Случайные переменные 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.

Входные параметры

свернуть все

Значения предиктора в виде матрицы или таблицы.

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

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

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

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

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

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

  • Действительный вектор-столбец.

  • Действительная матрица с двумя столбцами, представляющими запуск и времена остановки.

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

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

    'T ~ x + y'

    Смотрите обозначение Уилкинсона.

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

Используйте форму 2D столбца T подбирать модель с изменяющимися во времени коэффициентами. Смотрите Cox Пропорциональная Модель Опасностей с Зависящими от времени Ковариантами.

Типы данных: 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) это содержит категориальную переменную.
Логический векторtrue запись означает что соответствующий столбец данных о предикторе (X) категориальная переменная.
Символьная матрицаКаждая строка матрицы является именем переменного предиктора в таблице X. Имена должны совпадать с записями в PredictorNames. Заполните имена дополнительными пробелами, таким образом, каждая строка символьной матрицы имеет ту же длину.
Массив строк или массив ячеек из символьных векторовКаждым элементом в массиве является имя переменного предиктора в таблице X. Имена должны совпадать с записями в PredictorNames.
'all'Все предикторы являются категориальными.

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

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

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

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

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

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

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

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

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

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

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

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

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

В таблице, "допуск завершения" означает это, если внутренние итерации вызывают изменение в объявленной стоимости меньше, чем допуск, остановка итераций.

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

  • 'final' — Окончательный результат

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

MaxFunEvalsМаксимальное количество вычислений функцииПоложительное целое число; значением по умолчанию является 200
MaxIterМаксимальное количество итерацийПоложительное целое число; значением по умолчанию является 100
TolFunДопуск завершения на изменении в вероятности; смотрите Cox Пропорциональная Модель ОпасностейПоложительная скалярная величина; значением по умолчанию является 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, с каждой строкой, соответствующей наблюдению.

[] по умолчанию не переменная стратификации.

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

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

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

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

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

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

Введенный в R2021a