exponenta event banner

выживание

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

    Описание

    s = survival(coxMdl) оценивает базовую функцию выживания модели пропорциональных рисков Кокса coxMdl. Функция выживания в момент времени t - оценочная вероятность выживания до времени t. Термин «базовый уровень» относится к функции выживания на определенном исходном уровне предикторов. Это значение хранится в 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 - массив ячеек отсортированных векторов числовых столбцов времени обучения в наборе обучения для каждого уровня стратификации.

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

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

    Представлен в R2021a