Модель пропорциональных рисков Кокса
Модель пропорциональных рисков Кокса относится к данным о времени жизни или времени отказа. Базовая модель Кокса включает функцию опасности h 0 (t) и коэффициенты модели b такие что для предиктора X
, скорость опасности в момент t
где коэффициенты b не зависят от времени. Функция создания fitcox
выводит как модельные коэффициенты b так и коэффициент опасности h 0 (t) и сохраняет их как свойства в полученной CoxModel
объект.
Полная модель Кокса включает расширения базовой модели, такие как опасности в отношении различных базовых линий или включение переменных стратификации. См. Расширение модели пропорциональных рисков Кокса.
Создайте CoxModel
использование объекта fitcox
.
Baseline
- Базовая опасностьmean(X)
(по умолчанию) | действительный скалярБазовая опасность, заданная при установке модели, задается как действительный скаляр. Модель Кокса является относительной моделью опасности, поэтому ей требуется базовый уровень, на котором можно сравнить опасности данных относительно базового уровня. Значение по умолчанию является mean(X)
(и среднее значение в каждом расслоении для стратифицированных моделей), таким образом, коэффициент опасности в X
является h(t)*exp((X-mean(X))*b)
. Введите 0
чтобы вычислить базовую линию относительно 0
, так что скорость опасности в X
является h(t)*exp(X*b)
. Изменение базовой линии не влияет на коэффициенты.
Типы данных: double
CoefficientCovariance
- Ковариационная матрица для оценок коэффициентовКовариационная матрица для оценок коэффициентов, заданная в виде квадратной матрицы с количеством строк, равным количеству предикторов.
Типы данных: double
Coefficients
- Коэффициенты и соответствующая статистикаКоэффициенты и связанная статистика, заданные как таблица с четырьмя столбцами:
Beta
- Оценка коэффициентов
SE
- Стандартная ошибка оценки коэффициента
zStat
- z statistic
pValue
- p -значение для коэффициента (по сравнению с нулем Beta)
Каждая строка таблицы соответствует одному предиктору.
Чтобы получить любой из этих столбцов в качестве вектора, индексируйте в свойство с помощью записи через точку. Для примера, в coxMdl
объект, вычисленный вектор коэффициента
beta = coxMdl.Coefficients.Beta
Чтобы выполнить другие тесты коэффициентов, используйте linhyptest
.
Типы данных: table
Formula
- Представление модели, используемой в подгонкеПредставление модели, используемой в подгонке, задается как формула в обозначении Уилкинсона. См. Уилкинсон Обозначение. Для примера, чтобы включить несколько предикторов, используйте
'X ~ a + b + … + c'
где каждая из переменных a
, b
, c
представляет один предиктор. Эти переменные являются именами столбцов для таблицы X
.
Hazard
- Предполагаемая базовая совокупная опасностьПредполагаемая базовая совокупная опасность, заданная в виде матрицы double. Совокупная опасность оценивается в точки времени, определенные в обучении.
Hazard
имеет не менее двух столбцов. Первый столбец содержит значения времени, а остальные столбцы содержат совокупную опасность в каждый перечисленный момент времени.
Для нонерализованных моделей, Hazard
имеет два столбца.
Для стратифицированных моделей Hazard
имеет дополнительный столбец для каждой уникальной комбинации уровней расслоения. Различные значения времени в Hazard(:,1)
для каждого расслоения разделяются 0
записи в Hazard(:,2)
. Стратифицированная модель является моделью, обученной с использованием 'Stratification'
аргумент имя-значение.
Теоретически совокупная опасность в момент t составляет -журнал (1 - cdf (t)). Эмпирическая совокупная опасность
где Ri - риск, установленный в момент ti, означающий наблюдения, которые подвержены риску сбоя. См. «Функция частичного правдоподобия».
Типы данных: double
IsStratified
- Индикация того, что модель обучена стратифицированным даннымИндикация того, что модель обучена со стратифицированными данными, заданными как логическое значение (true
или false
).
Типы данных: logical
LikelihoodRatioTestPValue
- P значение, указывающее, что модель значительна относительно нулевой моделиP -значение, указывающее, является ли модель значительной относительно нулевой модели, заданной как действительный скаляр.
Это свойство содержит p-значение выполнения теста отношения правдоподобия против нулевой модели, то есть модели со всеми коэффициентами, равными 0 .
Тест коэффициента правдоподобия сравнивает функцию правдоподобия данных в оценках коэффициентов и при всех коэффициентах, равных 0. Сравнение приводит к тестовой статистике, которая может использоваться, чтобы определить, является ли обученная модель значительной, относительно модели со всеми коэффициентами, равными 0. Нулевая гипотеза заключается в том, что нет различия между нулевой моделью и обученной моделью, поэтому значительное p -значение подразумевает, что обученная модель значительна.
Типы данных: double
LogLikelihood
- Журнал функции правдоподобия при оценках коэффициентовЖурнал функции правдоподобия в оценках коэффициентов, заданная как действительный скаляр.
Типы данных: double
NumPredictors
- Количество предикторовКоличество предикторов (коэффициентов) в модели, заданное в виде положительного целого числа.
Типы данных: double
PredictorNames
- Имена предикторовИмена предикторов, используемых для подгонки модели, заданные как массив ячеек из векторов символов. Если модель обучена на данных в таблице, имена предикторов являются именами столбцов таблицы. В противном случае имена предиктора X1
, X2
и так далее.
Типы данных: cell
ProportionalHazardsPValue
- P значение, указывающее на ковариаты, удовлетворяет предположению пропорциональных рисковP -значение, указывающее, удовлетворяет ли каждый ковариат допущению пропорциональных опасностей, заданному в качестве вектора действительных чисел, с одной записью для каждого предиктора.
Модель Кокса основывается на допущении пропорциональных опасностей, то есть для любых двух точек данных X1 и X2 опасность (X1 )/опасность (X2) является постоянной. Это предположение может быть нарушено, если предикторы зависят от времени. Для примера, если предиктор соответствует возрасту, он обычно становится более опасным, когда возраст увеличивается.
Тест этого предположения использует масштабированные невязки Шенфельда и был выведен Грамбшем и Терно в [1].
Нулевая гипотеза состоит в том, что каждый коэффициент удовлетворяет предположению пропорциональных опасностей. Значительное p -значение подразумевает, что определенный коэффициент нарушает предположение пропорциональной опасности. Тест выполняется для каждого коэффициента, поэтому это свойство является вектором с таким количеством элементов, как количество коэффициентов.
Типы данных: double
ProportionalHazardsPValueGlobal
- P -значение, указывающее на то, что модель удовлетворяет допущению пропорциональных рисковP -значение, указывающее, удовлетворяет ли вся модель допущению пропорциональных опасностей, заданному как действительный скаляр.
Модель Кокса основывается на допущении пропорциональных опасностей, то есть для любых двух точек данных X1 и X2 опасность (X1 )/опасность (X2) является постоянной. Это предположение может быть нарушено, если предикторы зависят от времени. Для примера, если предиктор соответствует возрасту, он обычно становится более опасным, когда возраст увеличивается.
Тест этого предположения использует масштабированные невязки Шенфельда и был выведен Грамбшем и Терно в [1].
Нулевая гипотеза заключается в том, что модель в целом удовлетворяет предположению пропорциональных рисков. Значительное p -значение подразумевает, что вся модель не удовлетворяет предположению пропорциональных опасностей.
Типы данных: double
Residuals
- Невязки различных типовНевязки различных типов, заданные как таблица с семью столбцами, по одному для каждого невязки:
'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)
является i
th- невязки отклонения, M(i)
является i
th 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
- Имя переменной откликаИмя переменной отклика, заданное как вектор символов. Для моделей, где значение отклика находится в таблице, имя переменной отклика является именем соответствующего столбца таблицы. В противном случае ResponseName
является 'T'
.
Типы данных: char
StandardError
- Стандартные ошибки оценок коэффициентовСтандартные ошибки оценок коэффициентов, заданные как вектор действительных чисел. StandardError
- квадратный корень диагонали CoefficientCovariance
матрица.
Типы данных: double
Stratification
- Массив уникальных комбинаций входного расслоенияМассив уникальных комбинаций входа расслоения во время обучения, заданный как один из следующих типов данных.
Числовой массив - все переменные расслоения числовые.
Строковые массивы - Все переменные являются строками.
Массив ячеек из строк - Все переменные являются строками камер.
Категориальный массив - Все переменные категориальны.
Массив ячеек - Переменные являются смешанными типами.
Учитывая некоторые данные 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]) |
Смешанные типы |
| {1 'cat'; 2 'cat'; 1 'dog'; 3 'dog'} |
Типы данных: double
| char
| string
| cell
| categorical
VariableInfo
- Информация о подгонке данныхИнформация о подгонке данных, заданная как таблица с четырьмя столбцами:
Class
- класс предиктора.
Range
- Минимум и максимум предиктора, если он не категориален, или список всех категорий, если предиктор категориален.
InModel
- Логический показатель, указывающий, используется ли предиктор в модели. Переменная отклика не в модели. Переменные предиктора, используемые для обучения, находятся в модели.
IsCategorical
- Логический показатель, указывающий, рассматривался ли предиктор как категориальный во время обучения.
Если у модели нет категориальных предикторов, и для подгонки модели не использовалась формула, количество строк VariableInfo
- количество предикторов модели. В противном случае количество строк совпадает с количеством элементов в PredictorNames
.
Типы данных: table
coefci | Доверительный интервал для коэффициентов модели пропорциональных рисков Кокса |
hazardratio | Оценка опасности модели Кокса относительно базового уровня |
linhyptest | Линейные проверку гипотез на коэффициентах модели Кокса |
plotSurvival | Постройте график функции выживания модели пропорциональных рисков Кокса |
survival | Вычислите выживаемость модели пропорциональных рисков Кокса |
Случайные переменные Вейбула с тем же параметром формы имеют пропорциональные скорости опасности; см. Распределение Вейбула. Скорость опасности с параметром шкалы и параметр формы в момент времени является
.
Сгенерируйте псевдослучайные выборки из распределения Вейбула с параметрами шкалы 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.
[1] Грэмбш, Патриция М. и Терри М. Терно. Пропорциональные тесты опасности и диагностика на основе взвешенных невязок. Биометрика, т. 81, № 3, 1994, стр. 515-526. JSTOR, https://www.jstor.org/stable/2337123
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.