Создайте модель пропорциональных рисков Кокса
fitcox
функция создает модель пропорциональных опасностей Кокса для данных о жизни. Базовая модель Кокса включает функцию опасности h 0 (t) и коэффициенты модели b такие что для предиктора X
, скорость опасности в момент t
где коэффициенты b не зависят от времени. fitcox
выводит как модельные коэффициенты b так и коэффициент опасности h 0 (t) и сохраняет их как свойства в полученной CoxModel
объект.
Полная модель Кокса включает расширения базовой модели, такие как опасности в отношении различных базовых линий или включение переменных стратификации. См. Расширение модели пропорциональных рисков Кокса.
coxMdl = fitcox(
изменяет подгонку с помощью одной или нескольких X
,T
,Name,Value
)Name,Value
аргументы. Например, когда данные включают цензуру (значения, которые не наблюдаются), Censoring
аргумент задает данные цензуры.
Случайные переменные Вейбула с тем же параметром формы имеют пропорциональные скорости опасности; см. Распределение Вейбула. Скорость опасности с параметром шкалы и параметр формы в момент времени является
.
Сгенерируйте псевдослучайные выборки из распределения Вейбула с параметрами шкалы 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
Найдите частоту опасности лампочек накаливания по сравнению с флуоресцентными лампочками путем оценки .
hr = exp(coxMdl.Coefficients.Beta)
hr = 112.8646
Оценка коэффициента опасности = 112.8646, что означает, что предполагаемая опасность для лампочек накаливания в 112.86 раз превышает опасность для лампочек флуоресценции. Малое значение coxMdl.Coefficients.pValue
указывает на незначительную вероятность того, что два типа лампочек имеют одинаковые скорости опасности, что означало бы Beta
= 0.
X
- Значения предиктораПредикторные значения, заданные как матрица или таблица.
Матрица содержит по одному столбцу для каждого предиктора и по одной строке для каждого наблюдения.
Таблица содержит по одной строке для каждого наблюдения. Таблица может также содержать данные времени, а также предикторы.
По умолчанию, если данные предиктора находятся в таблице, fitcox
принимает, что переменная категориальна, если это логический вектор, категориальный вектор, символьный массив, строковые массивы или массив ячеек из векторов символов. Если данные предиктора являются матрицей, fitcox
принимает, что все предикторы непрерывны. Чтобы идентифицировать любые другие предикторы как категориальные предикторы, задайте их с помощью CategoricalPredictors
аргумент имя-значение.
Если X
, T
, значение 'Frequency'
, или значение 'Stratification'
содержит NaN
значения, затем fitcox
удаляет строки с NaN
значения от всех данных при подборе модели Кокса.
Типы данных: double
| table
| categorical
T
- Время проведения событияX
| формулу в обозначении Уилкинсона для табличных X
Время события, заданное как одно из следующих:
Реальный вектор-столбец.
Действительная матрица с двумя столбцами, представляющими начальное и стоповое время.
Имя столбца в таблице 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
.'Beta'
- Начальные значения коэффициентов0.01/std(X)
(по умолчанию) | числовой векторНачальные значения коэффициентов, заданные как числовой вектор значений коэффициентов. Эти значения инициируют итерации максимизации вероятностей, выполненные fitcox
.
Типы данных: double
'Baseline'
— X
значения, при которых вычислить базовую опасностьmean(X)
, по умолчанию для непрерывных предикторов | 0
, по умолчанию для категориальных предикторов | действительный скаляр | действительный вектор-строка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
'CategoricalPredictors'
- Категориальный список предикторов'all'
Категориальный список предикторов, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
Вектор положительных целых чисел | Каждый элемент в векторе является индексом значением, соответствующим столбцу данных предиктора (X ), которая содержит категориальную переменную. |
Логический вектор | A true запись означает, что соответствующий столбец данных предиктора (X ) - категориальная переменная. |
Матрица символов | Каждая строка матрицы является именем предиктора, переменной в таблице X . Имена должны совпадать с записями в PredictorNames . Дополните имена дополнительными пробелами, чтобы каждая строка матрицы символов имела одинаковую длину. |
Строковые массивы или массив ячеек векторов символов | Каждый элемент массива является именем предиктора, переменной в таблице X . Имена должны совпадать с записями в PredictorNames . |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице, fitcox
принимает, что переменная категориальна, если это логический вектор, категориальный вектор, символьный массив, строковые массивы или массив ячеек из векторов символов. Если данные предиктора являются матрицей, fitcox
принимает, что все предикторы непрерывны. Чтобы идентифицировать любые другие предикторы как категориальные предикторы, задайте их с помощью 'CategoricalPredictors'
аргумент имя-значение.
Для идентифицированных категориальных предикторов, fitcox
создает фиктивные переменные. fitcox
создает одну переменную с меньшим количеством манекенов, чем количество категорий. Для получения дополнительной информации смотрите Автоматическое создание переменных манекена.
Пример: 'CategoricalPredictors','all'
Типы данных: single
| double
| logical
| char
| string
| cell
'Censoring'
- Показатель цензурыX
Индикатор цензуры, заданный как логический вектор с одинаковым числом строк, как X
или имя столбца в таблице X
. Используйте 1 для наблюдений, которые подвергаются правильной цензуре, и 0 для наблюдений, которые полностью наблюдаются. По умолчанию все наблюдения наблюдаются полностью. Для получения примера смотрите Модель пропорциональных опасностей Кокса для цензурированных данных.
Пример: 'Censoring',cens
Типы данных: logical
'Frequency'
- Частота или веса наблюденийЧастота или веса наблюдений, заданные как массив того же размера, что и T
содержит неотрицательные скалярные значения. Массив может содержать целочисленные значения, соответствующие частотам наблюдений или неотрицательные значения, соответствующие весам наблюдений.
Значение по умолчанию является 1 на строку X
и T
.
Если X
, T
, значение 'Frequency'
, или значение 'Stratification'
содержит NaN
значения, затем fitcox
удаляет строки с NaN
значения от всех данных при подборе модели Кокса.
Пример: 'Frequency',w
Типы данных: double
'OptimizationOptions'
- Параметры управления алгоритмомПараметры управления алгоритмом для итерационного алгоритма fitcox
используется для оценки решения, заданного как структура. Создайте эту структуру с помощью statset
. Для имен параметров и значений по умолчанию смотрите следующую таблицу или введите statset('fitcox')
.
В таблице «допуск завершения» означает, что, если внутренние итерации вызывают изменение заданного значения меньше, чем допуск, итерации останавливаются.
Поле в структуре | Описание | Значения |
---|---|---|
Display | Количество информации, возвращенной в командную строку |
|
MaxFunEvals | Максимальное количество вычислений функции | Положительное целое число; по умолчанию является 200 |
MaxIter | Максимальное количество итераций | Положительное целое число; по умолчанию является 100 |
TolFun | Допуск на прекращение при изменении вероятности; см. Модель пропорциональных рисков Кокса | Положительная скалярная величина; по умолчанию является 1e-8 |
TolX | Допуск завершения для изменения параметра (оценка предиктора) | Положительная скалярная величина; по умолчанию является 1e-8 |
Пример: 'OptimizationOptions',statset('TolX',1e-6,'MaxIter',200)
'PredictorNames'
- Имена переменных предиктораИмена переменных предиктора, заданные как строковые массивы уникальных имен или массив ячеек из уникальных векторов символов. Функциональность '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
'Stratification'
- Переменные стратификации[]
(по умолчанию) | матрица реальных значений | имя столбца в таблице X
| массив категориальных переменныхПеременные стратификации, заданные как матрица вещественных значений, имя столбца в таблице X
, или массив категориальных переменных. Матрица должна иметь одинаковое число строк как T
, с каждой строкой, соответствующей наблюдению.
Значение по умолчанию []
не является переменной расслоения.
Если X
, T
, значение 'Frequency'
, или значение 'Stratification'
содержит NaN
значения, затем fitcox
удаляет строки с NaN
значения от всех данных при подборе модели Кокса.
Пример: 'Stratification',Gender
Типы данных: single
| double
| char
| string
| categorical
'TieBreakMethod'
- Метод обработки связанного времени отказа'breslow'
(по умолчанию) | 'efron'
Метод обработки связанного времени отказа, заданный как 'breslow'
(метод Бреслоу) или 'efron'
(метод Эфрона). Смотрите функцию частичного правдоподобия для связанных событий.
Пример: 'TieBreakMethod','efron'
Типы данных: char
| string
coefci
| CoxModel
| coxphfit
| hazardratio
| linhyptest
| plotSurvival
| survival
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.