Code covered by the BSD License  

Highlights from
Logrank

4.5

4.5 | 2 ratings Rate this file 16 Downloads (last 30 days) File Size: 4.17 KB File ID: #22317
image thumbnail

Logrank

by Giuseppe Cardillo

 

04 Dec 2008 (Updated 22 Sep 2011)

Comparing survival curves of two groups using the log rank test

| Watch this File

File Information
Description

Comparison of two survival curves can be done using a statistical hypothesis test called the log rank test. It is used to test the null hypothesis that there is no difference between the population survival curves (i.e. the probability of an event occurring at any time point is the same for each population). This function use the Kaplan-Meier procedure to estimate the survival function, so it is mandatory to download
KMPLOT (http://www.mathworks.com/matlabcentral/fileexchange/22293).

My profile on LinkedIN http://it.linkedin.com/in/giuseppecardillo

Required Products Statistics Toolbox
MATLAB release MATLAB 7.6 (R2008a)
Other requirements KMPLOT (http://www.mathworks.com/matlabcentral/fileexchange/22293).
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (22)
19 May 2009 En Bl

I get this error:
Matrix dimensions must agree.

Error in ==> logrank at 157
    K=find((table12(:,1)<table(c(I),1) & table12(:,1)>=table(J,1)),1,'last');

I debugged it and J=[] .

22 May 2009 Giuseppe Cardillo

Perhaps, if you email me the data I can understand the error. I think that your input data matrix are in a wrong format.

30 May 2009 En Bl

Here is the data:
x1 =
3010 1
1733 1
2797 1
334 0
3678 1
3314 1
4378 1
3253 1
1672 0
3709 1
1642 1
3040 1
2827 1
 and x2 =
1955 1
1808 1
2037 1
3136 1
938 0
3497 1
2858 1
3832 1
3256 0
2933 0
5054 1
927 0
3795 0
4155 1
3304 0

sorry for the late reply.

08 Jun 2009 Giuseppe Cardillo

I have corrected the bug and uploaded the new version. Anyway, with all these censored data, it is difficult to assess differences....

12 Jun 2009 En Bl

Thanks.

08 Sep 2009 the cyclist

It seems to me that this function does not work for the case when none of the data are censored. (That shouldn't be a problem, should it?) For example, using only the first columns of your sample x1 and x2:

>> logrank(x1(:,1),x2(:,1))

causes a crash for me.

09 Sep 2009 Giuseppe Cardillo

You are partially right. If you use only the first column, the routine crashes because the informations in the second column are mandatory. If you want no censored data:
>> x1(:,2)=0; x2(:,2)=0; logrank(x1,x2);

Anyway, a bug was present but I fixed it and upload the new version.

09 Sep 2009 the cyclist

Thanks for the really quick reply. I appreciate it.

However, the program still crashes for me, with the same error, when I try the syntax you suggest. Maybe the version on the File Exchange is not quite the same as yours?

09 Sep 2009 Giuseppe Cardillo

At the moment, there is not on FEX the new uploaded file (this takes 1-2 days). If you contact me in private, I'll send you the file as an attach

30 Apr 2010 J Rey  
30 Apr 2010 J Rey

Beautiful, thanks for sharing this. If we use your software for a journal purpose, what reference should we use?

03 May 2010 Giuseppe Cardillo

Thank you for your comment. If you type on matlab "help logrank" you'll find the reference.

11 Mar 2011 Sven

Excellent submission - thank you. One note: the outputs to the function [T1,T2] are actually cleared during computation, so an error is thrown if output is requested. To conform a little bit to the MATLAB stats package, I suggest the following changes:

Line one should change to:
function [h,p] = logrank(varargin)

and the end of the function should set h as follows:
h = p<alpha;

The help section could then say:
% Displays:
% Kaplan-Meier plot
% Log-rank statistics
% Outputs:
% H : statistical significance (true if P<ALPHA)
% P : P-value for log-rank test

14 Mar 2011 Giuseppe Cardillo

Dear Sven, thank you for your email.
T1 and T2 are cleared because they don't appear in the output. As everybody can see in the figure (without downloading the function) logrank always prints all needed output parameters. Logrank recalls another function that is kmplot: this function can give back T1 (if you want). Anyway this possibility is hidden because usually you are only interested to the plot.

21 Sep 2011 the cyclist

I notice that in the call to kmplot [lines 96-97] in current version, the hard-coded value 0.05 is used, even if alpha is specified differently as an input. Is that correct?

22 Sep 2011 Giuseppe Cardillo

Yes it is. The 0.05 put in that lines is a dummy variable. Infact, in that lines logrank invokes kmplot to compute needed tables (i didnt want to duplicate code). If you look inside kmplot it is commented that a piece of code id jumped whan invoked by logrank and in that piece of code alpha is used to compute the confidence interval of survival curve (that is useless in logrank).

22 Sep 2011 sunbb

Is there a way to retrieve the Hazard ratio from the output of Logrank or Kmplot function?

22 Sep 2011 Giuseppe Cardillo

I have just uploaded a new version of KMPLOT and LOGRANK that compute hazard rate and hazard ratio

25 Jan 2012 Abhijit

I'm sorry, but using your software I do not get the p-value for the log-rank test that is consistent with the results of either R or Stata (both of which match). For the test data supplied with the function, I get a p-value of 0.0193, whereas you're getting a p-value of 0.01529. The KM curves are the same, but there is apparently something wrong in your logrank computation.

28 Jan 2012 Nitin

I also am having trouble with this function.. the p-values are always slightly off (usually a little higher than what I get using other programs)

03 Feb 2012 the cyclist

The logrank calculation here is correct. This code applies the Yates correction in the calculation of the z-score. (Line 207 of my version of the code.) I get 0.0193 from this code when I remove the Yates correction.

04 Feb 2012 Giuseppe Cardillo

the cyclist is right. He did a perfect explanation

Please login to add a comment or rating.
Updates
05 Dec 2008

changes in help section for correct citation

08 Jun 2009

correction when the first value is censored

28 Jul 2009

Correction to avoid NaN in Standard error computation

09 Sep 2009

Correction of a bug that occurs when data are not censored

23 Dec 2009

Changes in description

25 Feb 2010

Changes in code to solve an incompatibility with Mac (Thanks to Tim the cyclist)

09 Dec 2010

correction in p-value computation (thanks to Prof. Brani Vidakovic)

22 Sep 2011

hazard ratio added

Tag Activity for this File
Tag Applied By Date/Time
logrank test Giuseppe Cardillo 04 Dec 2008 16:02:05
kaplanmeier Giuseppe Cardillo 04 Dec 2008 16:02:05
survival function Giuseppe Cardillo 04 Dec 2008 16:02:05
statistics Cristina McIntire 05 Dec 2008 14:33:08
probability Cristina McIntire 05 Dec 2008 14:33:08
kaplanmeier Kwok Chong 28 Oct 2010 11:36:13
hazard rate Giuseppe Cardillo 22 Sep 2011 15:44:55
hazard ratio Giuseppe Cardillo 22 Sep 2011 15:44:55

Contact us at files@mathworks.com