Statistical programming, matrix languages, and more

Mistake in my computation

Accepted Solution Solved
Reply
Super Contributor
Posts: 303
Accepted Solution

Mistake in my computation


data kaplan;

input time survival1;

cards;

4 .6

5 .55

6 .3

7 .1

9  0

;

run;

proc iml;

use kaplan;

read all  var{TIME SURVIVAL1} into DM;

close;

SURVIVAL1 = DM[,2]; TIME = DM[,1];

n = nrow(DM);

   

segment = J(nrow(DM),1,1); *print segment;

SS=J(nrow(survival1),1,1);

do i = 1 to n ;

if 1=n then SS=0;

else if  i< n-1 then SS=SURVIVAL1-SURVIVAL1[i+1];

end;

TT=J(nrow(time),1,1);

do i = 1 to n;

if 1=n then TT=0;                    

else if i < n-1  then TT=time[i+1]-time;

end;

create kaplann var{time  survival1 SS TT };

append;

quit;

data kaplan_sum;

set kaplann;

sur_time=SS*TT;

drop time  survival1;

run;

proc print data=kaplan_sum;

run;



This output is wrong, there is supposed to be just 4 observations. The 4th and fifth observation for SS is wrong.


SS= (.6-.55)+(.55-.3)+(.3-.1)+(.1-0)

TT= (5-4)+(6-5)+((7-6)+(9-7))

This is wrong.

i   SS  TT  TT*SS

10.0510.05
20.2510.25
30.2010.20
41.0011.00
51.0011.00

This is how the correct output is supposed to look like;

SS= (.6-.55)+(.55-.3)+(.3-.1)+(.1-0)

TT= (5-4)+(6-5)+((7-6)+(9-7))

  

i    SS   TT       SS*TT

1

0.05

1

        0.05

2

0.25

1

       0.25

3

0.20

1

       0.20

4

0.1

2

       0.2


Accepted Solutions
Solution
‎07-14-2013 11:43 AM
Super Contributor
Posts: 303

Re: Mistake in my computation

proc iml;

use kaplan;

read all  var{TIME SURVIVAL1} into DM;

close;

SURVIVAL1 = DM[,2]; TIME = DM[,1];

n = nrow(DM);

  

segment = J(nrow(DM),1,1); *print segment;

SS=J(nrow(survival1),1,1);

do i = 1 to n ;

if i=n then SS=0;

else if  i< n-1 then SS=SURVIVAL1-SURVIVAL1[i+1];

end;

TT=J(nrow(time),1,1);

do i = 1 to n;

if i=n then TT=0;                   

else if i < n-1  then TT=time[i+1]-time;

end;

create kaplann var{time  survival1 SS TT };

append;

quit;

data kaplan_sum;

set kaplann;

sur_time=SS*TT;

drop time  survival1;

run;

proc print data=kaplan_sum;

run;

View solution in original post


All Replies
Super Contributor
Posts: 303

Re: Mistake in my computation

ANSWER

Solution
‎07-14-2013 11:43 AM
Super Contributor
Posts: 303

Re: Mistake in my computation

proc iml;

use kaplan;

read all  var{TIME SURVIVAL1} into DM;

close;

SURVIVAL1 = DM[,2]; TIME = DM[,1];

n = nrow(DM);

  

segment = J(nrow(DM),1,1); *print segment;

SS=J(nrow(survival1),1,1);

do i = 1 to n ;

if i=n then SS=0;

else if  i< n-1 then SS=SURVIVAL1-SURVIVAL1[i+1];

end;

TT=J(nrow(time),1,1);

do i = 1 to n;

if i=n then TT=0;                   

else if i < n-1  then TT=time[i+1]-time;

end;

create kaplann var{time  survival1 SS TT };

append;

quit;

data kaplan_sum;

set kaplann;

sur_time=SS*TT;

drop time  survival1;

run;

proc print data=kaplan_sum;

run;

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 253 views
  • 0 likes
  • 1 in conversation