Re: Mathematica code for survival functions
- To: mathgroup at smc.vnet.net
- Subject: [mg78316] Re: [mg78212] Mathematica code for survival functions
- From: Darren Glosemeyer <darreng at wolfram.com>
- Date: Thu, 28 Jun 2007 04:24:38 -0400 (EDT)
- References: <200706260809.EAA03911@smc.vnet.net>
Coleman, Mark wrote: > Greetings, > > Is anyone on MathGroup aware of Mathematica code that generates either > Kaplan-Meier survival curves or life-table survival curves? Thanks. > > Best regards, > Mark > > Here is a function that will give the Kaplan Meier fit as a Piecewise function. The first three arguments are lists of equal length for the times, survivor counts, and death counts. Your data may require some processing to get it into that form. In[1]:= KMFit[times_, survivors_, deaths_, var_] := Piecewise[ MapThread[{#1, #2 <= var < #3} &, {Join[{1}, With[{list = (survivors - deaths)/survivors}, FoldList[Times, First[list], Drop[list, 1]]]], Join[{0}, times], Join[times, {Infinity}]}]] Here is an example based on data from Table 1.4 in The Statistical Analysis of Failure Time Data by Kalbfleisch and Prentice. In[2]:= t = {143, 164, 188, 190, 192, 206, 209, 213, 216, 220, 227, 230, 234, 246, 265, 304}; In[3]:= s = {19, 18, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 3, 2, 1}; In[4]:= d = {1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; In[5]:= KMFit[t, s, d, x] 18 17 Out[5]= Piecewise[{{1, 0 <= x < 143}, {--, 143 <= x < 164}, {--, 164 <= x < 188}, 19 19 15 14 13 > {--, 188 <= x < 190}, {--, 190 <= x < 192}, {--, 192 <= x < 206}, 19 19 19 12 11 10 > {--, 206 <= x < 209}, {--, 209 <= x < 213}, {--, 213 <= x < 216}, 19 19 19 9 63 27 > {--, 216 <= x < 220}, {---, 220 <= x < 227}, {--, 227 <= x < 230}, 19 152 76 45 9 3 > {---, 230 <= x < 234}, {--, 234 <= x < 246}, {--, 246 <= x < 265}, 152 38 19 3 > {--, 265 <= x < 304}}] 38 Darren Glosemeyer Wolfram Research
- References:
- Mathematica code for survival functions
- From: "Coleman, Mark" <Mark.Coleman@LibertyMutual.com>
- Mathematica code for survival functions