survival

Вычислите выживаемость модели пропорциональных рисков Кокса

    Описание

    s = survival(coxMdl) оценивает базовую функцию выживания модели пропорциональных рисков Кокса coxMdl. Функция выживания в момент t - предполагаемая вероятность выживания до времени t. Термин baseline относится к функции выживания на определенном базовом уровне предикторов. Это значение сохранено в coxMdl.Baseline, и значение по умолчанию является средним значением набора данных, используемого для обучения.

    пример

    s = survival(coxMdl,X) оценивает функцию выживания, когда предикторы имеют значения в X. В этом случае s - столбец для каждой строки X.

    пример

    s = survival(coxMdl,X,Stratification) оценивает функцию выживания для заданного значения переменной расслоения Stratification. У вас должна быть одна строка Stratification для каждой строки в X.

    Примечание

    Когда вы обучаете coxMdl использование переменных стратификации и передача переменных предиктора X, survival также требует, чтобы вы передали переменные расслоения.

    пример

    s = survival(___,'Time',T) вычисляет выживание в разы T использование любой комбинации входных аргументов в предыдущих синтаксисах.

    пример

    [s,Tout] = survival(___) также возвращает значения времени Tout при котором вычисляется каждая оценка выживания.

    Примеры

    свернуть все

    Выполните регрессию пропорциональных рисков Кокса на lightbulb набор данных, который содержит моделируемые сроки службы лампочек. Первый столбец данных о лампочках содержит время жизни (в часах) двух разных типов лампочек. Второй столбец содержит двоичную переменную, указывающую, является ли луковица флуоресцентной или раскаленной; 0 указывает, что лампочка флуоресцентна, а 1 указывает, что она накалена. Третий столбец содержит информацию о цензуре, где 0 указывает, что луковица наблюдалась до отказа, и 1 указывает, что наблюдение было подвергнуто цензуре.

    Подгонка модели пропорциональных рисков Кокса на время жизни лампочек с учетом цензуры. Переменная предиктора является типом лампы.

    load lightbulb
    coxMdl = fitcox(lightbulb(:,2),lightbulb(:,1), ...
        'Censoring',lightbulb(:,3));

    Вычислите базовую функцию выживания как функцию времени t, что означает вероятность отказа лампочки через время t. По умолчанию базовая линия вычисляется для среднего значения предиктора, которое в этом случае mean(lightbulb(:,2)) = 0.5. Верните время Tout при котором вычисляется функция выживания.

    [s,Tout] = survival(coxMdl);

    Постройте график выживания как ступенчатый график времени. (Времена Tout также находятся в coxMdl.Hazard(:,1).)

    hold on;
    stairs(Tout,s,'b-')
    xlabel 'Time \it t'
    ylabel 'Probability of failure after time \it t'

    Figure contains an axes. The axes contains an object of type stair.

    Наложите график с функциями выживания для флуоресцентных и лампочек накаливания.

    s_fluorescent = survival(coxMdl,0);
    s_incandescent = survival(coxMdl,1);
    stairs(Tout,s_fluorescent,'r-')
    stairs(Tout,s_incandescent,'k-')
    legend('Baseline','Fluorescent','Incandescent')
    hold off

    Figure contains an axes. The axes contains 3 objects of type stair. These objects represent Baseline, Fluorescent, Incandescent.

    Чтобы создать графики, не создавая предварительно данные о выживании, используйте plotSurvival.

    Загрузите coxModel данные. (Эти моделируемые данные сгенерированы в примере объекта модели пропорциональных опасностей Кокса.) Модель с именем coxMdl имеет три уровня стратификации (1, 2 и 3) и предиктор X с тремя категориальными значениями (1, 1/20 и 1/100).

    load coxModel

    Вычислим функцию выживания для X = 1 на трех уровнях расслоения.

    c1 = categorical(1);
    X = [c1;c1;c1];
    stratification = [1;2;3];
    s = survival(coxMdl,X,stratification);

    Постройте график трех функций выживания. Сначала найдите время для трех уровней расслоения.

    t1 = find(coxMdl.Hazard(:,3) == 1);
    t1 = coxMdl.Hazard(t1,1);
    t2 = find(coxMdl.Hazard(:,3) == 2);
    t2 = coxMdl.Hazard(t2,1);
    t3 = find(coxMdl.Hazard(:,3) == 3);
    t3 = coxMdl.Hazard(t3,1);

    Постройте график выживания для трех уровней. Просмотрите график для значений от 1 до 30.

    plot(t1,s{1},t2,s{2},t3,s{3})
    xlim([1,30])
    legend('Stratification Level 1','Stratification Level 2','Stratification Level 3','Location','northeast')
    xlabel('Time t')
    ylabel('Probability of Survival Past t')

    Figure contains an axes. The axes contains 3 objects of type line. These objects represent Stratification Level 1, Stratification Level 2, Stratification Level 3.

    В качестве альтернативы оцените выживаемость от 1 до 30 раз путем определения Time аргумент.

    t = linspace(1,30,300);
    st = survival(coxMdl,X,stratification,'Time',t);
    figure
    plot(t,st{1},t,st{2},t,st{3})
    legend('Stratification Level 1','Stratification Level 2','Stratification Level 3','Location','northeast')
    xlabel('Time t')
    ylabel('Probability of Survival Past t')

    Figure contains an axes. The axes contains 3 objects of type line. These objects represent Stratification Level 1, Stratification Level 2, Stratification Level 3.

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

    свернуть все

    Подобранная модель пропорциональных рисков Кокса, заданная как CoxModel объект. Создание coxMdl использование fitcox.

    Предикторы для модели, заданные как массив предикторов того же типа, используемых для обучения coxMdl. Каждая строка X представляет один набор предикторов.

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

    Уровень стратификации, заданный как переменная или переменные того же типа, используемые для обучения coxMdl. Задайте одинаковое число строк в Stratification как в X.

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

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

    Пример: 0:40

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

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

    свернуть все

    Оценки выживания, возвращенные как числовой вектор-столбец или массив ячеек с числовыми векторами-столбцами.

    • Для нертифицированной модели, s является отсортированным числовым вектором-столбцом предполагаемых вероятностей.

    • Для стратифицированной модели s - массив ячеек из отсортированных числовых векторов-столбцов из предполагаемых вероятностей для каждого уровня расслоения.

    survival возвращает столбец с оценками выживания для каждой строки X.

    Время для оценок выживания, возвращаемое как одно из следующего.

    • Для нертифицированной модели, Tout - отсортированный числовой вектор-столбец раз в набор обучающих данных.

    • Для стратифицированной модели Tout - массив ячеек из отсортированных числовых векторов-столбцов времени обучения в набор обучающих данных для каждого уровня расслоения.

    The coxMdl.Hazard(:,1) вектор содержит время для как стратифицированных, так и нертифицированных моделей. Для стратифицированных моделей время для различных уровней стратифицирования разделяется записью 0.

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

    Введенный в R2021a