全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2988 9
2010-07-01
我用SAS做了一下生存时间数据的模拟,用两种方法,一是Log-rank,一是基于秩次的kruskal wallis h test ,结果前者的type I error 显著大于后者,这是为什么??难道是后一种方法更好??
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-7-1 22:13:10
发模型和程序探讨。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-1 22:33:23
标题党呀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-2 07:49:21
程序如下:
data a;                                                                                                                                 
do n=1 to 1000;                                                                                                                        
group=1;                                                                                                                                
do i = 1 to 5;                                                                                                                          
status=round(ranuni(20100628),1);                                                                                                      
surtime = ranexp(20100628) / 0.02;                                                                                                      
if surtime >50 then do;                                                                                                                 
surtime=50;                                                                                                                             
status=0;                                                                                                                              
end;                                                                                                                                    
output;                                                                                                                                 
end;                                                                                                                                    
end;                                                                                                                                    
run;                                                                                                                                    
                                                                                                                                       
                                                                                                                                       
data b;                                                                                                                                
do n=1 to 1000;                                                                                                                        
group=2;                                                                                                                                
do i = 1 to 5;                                                                                                                          
status=round(ranuni(20100629),1);                                                                                                      
surtime = ranexp(20100629) / 0.02;                                                                                                      
if surtime >50 then do;                                                                                                                 
surtime=50;                                                                                                                             
status=0;                                                                                                                              
end;                                                                                                                                    
output;                                                                                                                                 
end;                                                                                                                                    
end;                                                                                                                                    
run;                                                                                                                                    
                                                                                                                                       
                                                                                                                                       
data c;                                                                                                                                
do n=1 to 1000;                                                                                                                        
group=3;                                                                                                                                
do i = 1 to 5;                                                                                                                          
status=round(ranuni(20100630),1);                                                                                                      
surtime = ranexp(20100630) / 0.02;                                                                                                      
if surtime >50 then do;                                                                                                                 
surtime=50;                                                                                                                             
status=0;                                                                                                                              
end;                                                                                                                                    
output;                                                                                                                                 
end;                                                                                                                                    
end;                                                                                                                                    
run;                                                                                                                                    
                                                                                                                                       
data d;                                                                                                                                 
set a b c;                                                                                                                              
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-2 07:49:49
接上:
/*拆分为1000个数据集*/                                                                                                                  
%macro test;                                                                                                                           
data                                                                                                                                    
  %do i=1 %to 1000;                                                                                                                     
    n&i                                                                                                                                 
  %end;                                                                                                                                 
  ;                                                                                                                                    
set d;                                                                                                                                 
%do i=1 %to 1000;                                                                                                                       
  if n=&i then output n&i;                                                                                                              
%end;                                                                                                                                   
run;                                                                                                                                    
%mend test;                                                                                                                             
%test;                                                                                                                                 
                                                                                                                                       
/*两种检验方法*/                                                                                                                        
                                                                                                                                       
%macro test1;                                                                                                                           
%do i=1 %to 1000;                                                                                                                       
/*Wilcoxon test*/                                                                                                                       
proc npar1way data=n&i WILCOXON;                                                                                                        
class group;                                                                                                                           
var surtime;                                                                                                                           
output out=wilcoxon&i (keep=P_KW );                                                                                                     
PROC APPEND BASE=wilcoxon force;                                                                                                        
run; quit;                                                                                                                              
                                                                                                                                       
/*Log-Rank test*/                                                                                                                       
ods listing close ;                                                                                                                     
ods output homtests=life&i;                                                                                                            
proc lifetest data=n&i method=lt;                                                                                                      
time surtime * status(0);                                                                                                               
strata group;                                                                                                                           
data life&i (keep= test ProbChiSq);                                                                                                     
set life&i;                                                                                                                             
if test='Log-Rank';                                                                                                                     
PROC APPEND BASE=lifetest force;                                                                                                        
run;quit;                                                                                                                              
ods listing;                                                                                                                           
%end;                                                                                                                                   
%mend test1;                                                                                                                           
%test1;                                                                                                                                 
                                                                                                                                       
/*找出P<=0.05的观测*/                                                                                                                  
data wilcoxon;                                                                                                                          
set wilcoxon;                                                                                                                           
if P_KW<=0.05 ;                                                                                                                        
run;                                                                                                                                    
                                                                                                                                       
                                                                                                                                       
data lifetest;                                                                                                                          
set lifetest;                                                                                                                           
if ProbChiSq<=0.05;                                                                                                                     
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-2 07:55:01
3# BraveMadMan
我不是标题党
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群