Модель пропорциональных рисков Кокса
Модель пропорциональных рисков Кокса относится к данным о сроке службы или времени отказа. Базовая модель Кокса включает в себя функцию h0 (t) опасности и коэффициенты b модели так, что для предсказателяX, степень опасности в момент времени t
exp[∑j=1pxijbj],
где коэффициенты b не зависят от времени. Функция создания fitcox выводит как коэффициенты модели b, так и степень опасности h0 (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 статистика
pValue - p-значение коэффициента (по сравнению с нулевой бета-величиной)
Каждая строка таблицы соответствует одному предиктору.
Чтобы получить любой из этих столбцов в виде вектора, выполните индексирование в свойство с помощью точечной нотации. Например, в coxMdl объект, оцененный вектор коэффициента
beta = coxMdl.Coefficients.Beta
Для выполнения других тестов коэффициентов используйте linhyptest.
Типы данных: table
Formula - Представление модели, используемой в подгонкеПредставление модели, используемой при посадке, указанное как формула в нотации Уилкинсона. Смотри Нотацию Уилкинсона. Например, чтобы включить несколько предикторов, используйте
'X ~ a + b + … + c'
где каждая из переменных a, b, c представляет один предиктор. Эти переменные являются именами столбцов для таблицы X.
Hazard - Расчетная базовая кумулятивная опасностьОценочная базовая кумулятивная опасность, указанная как двойная матрица. Кумулятивная опасность оценивается в моменты времени, определенные в ходе обучения.
Hazard имеет не менее двух столбцов. Первый столбец содержит значения времени, а остальные столбцы содержат совокупный риск в каждый указанный момент времени.
Для нестратифицированных моделей Hazard имеет два столбца.
Для стратифицированных моделей Hazard имеет дополнительный столбец для каждой уникальной комбинации уровней стратификации. Различные значения времени в Hazard(:,1) для каждой стратификации разделяются 0 записи в Hazard(:,2). Стратифицированная модель - это модель, обученная с использованием 'Stratification' аргумент «имя-значение».
Теоретически кумулятивная опасность в момент времени t равна -log (1 - cdf (t)). Эмпирическая совокупная опасность
β· xj),
где 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) постоянна. Это предположение может быть нарушено, если предикторы зависят от времени. Например, если предиктор соответствует возрасту, он обычно становится более опасным с увеличением возраста.
Тест этого предположения использует масштабированные остатки Шенфельда и был получен Grambsch и Therneau в [1].
Нулевая гипотеза заключается в том, что каждый коэффициент удовлетворяет предположению о пропорциональных опасностях. Значительное значение p подразумевает, что конкретный коэффициент нарушает предположение о пропорциональных опасностях. Тест выполняется для каждого коэффициента, поэтому это свойство является вектором с таким количеством элементов, как количество коэффициентов.
Типы данных: double
ProportionalHazardsPValueGlobal - P-значение, указывающее, что модель удовлетворяет предположению о пропорциональных опасностяхP-значение, указывающее, удовлетворяет ли вся модель предположению о пропорциональных опасностях, указанному как действительный скаляр.
Модель Кокса опирается на предположение о пропорциональных опасностях, то есть для любых двух точек данных X1 и X2 опасность (X1 )/опасность (X2) постоянна. Это предположение может быть нарушено, если предикторы зависят от времени. Например, если предиктор соответствует возрасту, он обычно становится более опасным с увеличением возраста.
Тест этого предположения использует масштабированные остатки Шенфельда и был получен Grambsch и Therneau в [1].
Нулевая гипотеза заключается в том, что модель в целом удовлетворяет предположению о пропорциональных опасностях. Значительное значение p подразумевает, что вся модель не удовлетворяет предположению о пропорциональных опасностях.
Типы данных: double
Residuals - Остатки различных типовОстатки различных типов, определенные как таблица с семью столбцами, по одному для каждого остатка:
'CoxSnell' - Остатки Кокса-Снелла для наблюдения 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остаточное отклонение, M(i) является iостаточное значение martingale и delta(i) указывает, является ли точка данных i умер или нет.
'Martingale' - Остаточное значение мартингала для точки X(i) является delta(i) – CoxSnell(i), где delta(i) указывает, если X(i) умер, и CoxSnell(i) - остаток Кокса-Снелла при i. Остаточное значение martingale можно рассматривать как разницу между истинным числом смертей для 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.