Как рассчитать выживаемость в SAS Guide? - PullRequest
0 голосов
/ 11 апреля 2019

Я хотел бы вычислить формулу, которая является коэффициентом выживаемости, в моем случае я назову ее переменной Z.Я думал об использовании макроса, но я не могу получить легкий способ сделать это.В приведенной ниже таблице у меня есть пример того, как это делается.

предлагается выполнить вычисление Z по идентификатору.

Таким образом, переменная X (i, j) является вероятностью по умолчаниюid i в id_time j, где i = 1, .., 3 и j = 1, .., 4

Y (i, j) = 1 - x (i, j) всегда.

Z (i, j) = Y (i, j-1) * Z (i, j-1) за исключением случаев, когда j = 1, где Z (i, 1) = 1 = 100%.

Если вам, ребята, нужны подробности, просто дайте мне знать.

Вот пример:

id  id_time    x       y    z
1   1      0,010    0,990   1
1   2      0,015    0,985   0,990
1   3      0,020    0,980   0,975
1   4      0,025    0,975   0,956
2   1      0,010    0,990   1
2   2      0,015    0,985   0,990
2   3      0,020    0,980   0,975
2   4      0,020    0,980   0,956
3   1      0,005    0,995   1
3   2      0,010    0,990   0,995
3   3      0,020    0,980   0,985
3   4      0,030    0,970   0,965

1 Ответ

0 голосов
/ 12 апреля 2019

Я делаю это по вашей формуле.

data test;
    format x y 12.3;
    input id: id_time: x: comma9. y: comma9.;
    x = x * 0.001;
    y = y * 0.001;
    cards;
    1   1      0,010    0,990
    1   2      0,015    0,985
    1   3      0,020    0,980
    1   4      0,025    0,975
    2   1      0,010    0,990
    2   2      0,015    0,985
    2   3      0,020    0,980
    2   4      0,020    0,980
    3   1      0,005    0,995
    3   2      0,010    0,990
    3   3      0,020    0,980
    3   4      0,030    0,970
;
run;

data _null_;
    retain Z;
    set test;
    by id notsorted;

    LagY = Lag(y);
    if first.id then LagY = .;
    if first.id then Z = 1;
    if not first.id then Z = round(LagY * Z,0.001);
    put (id id_time x y z)(=);
run;

Выход:

id=1 id_time=1 x=0.010 y=0.990 Z=1
id=1 id_time=2 x=0.015 y=0.985 Z=0.99
id=1 id_time=3 x=0.020 y=0.980 Z=0.975
id=1 id_time=4 x=0.025 y=0.975 Z=0.956
id=2 id_time=1 x=0.010 y=0.990 Z=1
id=2 id_time=2 x=0.015 y=0.985 Z=0.99
id=2 id_time=3 x=0.020 y=0.980 Z=0.975
id=2 id_time=4 x=0.020 y=0.980 Z=0.956
id=3 id_time=1 x=0.005 y=0.995 Z=1
id=3 id_time=2 x=0.010 y=0.990 Z=0.995
id=3 id_time=3 x=0.020 y=0.980 Z=0.985
id=3 id_time=4 x=0.030 y=0.970 Z=0.965
...