|||
最近要用到存活分析(Survival analysis), 但是很头疼, 因为假如第5天有10个蜜蜂死了,
原来的SAS要把数据打10次! (change all "," to ";" in SAS.
input treatment$ day censor bee#,
control 1 1 1
control 1 1 2
control 5 1 3
control 5 1 4
control 5 1 5
control 5 1 6
control 5 1 7
control 5 1 8
control 5 1 9
control 5 1 10
control 5 1 11
control 5 1 12
control 5 1 13
想用一个Loop
input treatment$ day dead censor;
control 5 10 1
这一句就可以顶10句,那样我的Excel数据可以很快变成SAS的数据了。
但是SAS好久没有用LOOP了, 只好在网上讨论。 今天终于可以工作了!
××××SAS Code×××××××××××××××××
DATA survival;
input treatment $ day dead censor;
Do bee=1 to dead;
output;
end;
DATALINES;
gfp 24 1 1
gfp 48 2 1
gfp 96 3 1
gfp 96 20 0
rpl8 24 5 1
rpl8 48 12 1
rpl8 96 25 1
rpl8 96 3 0
;
RUN;
proc print; run;
proc lifetest plot=(s) graphics;
time day*censor(0); strata treatment;
run;
Proc print打印出来的结果是我所要的:
Obs treatment day dead censor bee
1 gfp 24 1 1 1
2 gfp 48 2 1 1
3 gfp 48 2 1 2
4 gfp 96 3 1 1
5 gfp 96 3 1 2
6 gfp 96 3 1 3
7 gfp 96 20 0 1
8 gfp 96 20 0 2
9 gfp 96 20 0 3
10 gfp 96 20 0 4
11 gfp 96 20 0 5
12 gfp 96 20 0 6
13 gfp 96 20 0 7
14 gfp 96 20 0 8
15 gfp 96 20 0 9
16 gfp 96 20 0 10
17 gfp 96 20 0 11
18 gfp 96 20 0 12
19 gfp 96 20 0 13
20 gfp 96 20 0 14
21 gfp 96 20 0 15
22 gfp 96 20 0 16
23 gfp 96 20 0 17
24 gfp 96 20 0 18
25 gfp 96 20 0 19
26 gfp 96 20 0 20
27 rpl8 24 5 1 1
28 rpl8 24 5 1 2
29 rpl8 24 5 1 3
30 rpl8 24 5 1 4
31 rpl8 24 5 1 5
32 rpl8 48 12 1 1
33 rpl8 48 12 1 2
34 rpl8 48 12 1 3
35 rpl8 48 12 1 4
36 rpl8 48 12 1 5
37 rpl8 48 12 1 6
38 rpl8 48 12 1 7
39 rpl8 48 12 1 8
40 rpl8 48 12 1 9
41 rpl8 48 12 1 10
42 rpl8 48 12 1 11
43 rpl8 48 12 1 12
44 rpl8 96 25 1 1
45 rpl8 96 25 1 2
46 rpl8 96 25 1 3
47 rpl8 96 25 1 4
48 rpl8 96 25 1 5
49 rpl8 96 25 1 6
50 rpl8 96 25 1 7
51 rpl8 96 25 1 8
52 rpl8 96 25 1 9
53 rpl8 96 25 1 10
54 rpl8 96 25 1 11
55 rpl8 96 25 1 12
56 rpl8 96 25 1 13
57 rpl8 96 25 1 14
58 rpl8 96 25 1 15
59 rpl8 96 25 1 16
60 rpl8 96 25 1 17
61 rpl8 96 25 1 18
62 rpl8 96 25 1 19
63 rpl8 96 25 1 20
64 rpl8 96 25 1 21
65 rpl8 96 25 1 22
66 rpl8 96 25 1 23
67 rpl8 96 25 1 24
68 rpl8 96 25 1 25
69 rpl8 96 8 0 1
70 rpl8 96 8 0 2
71 rpl8 96 8 0 3
8行的数据变成71行了! 省略8倍的工作量。
结果也是正确的:
Test of Equality over Strata
Test Chi-Square DF Chi-Square Pr
Log-Rank 21.5285 1 〈.0001
Wilcoxon 19.0001 1 〈.0001
-2Log(LR) 15.1797 1 〈.0001
存活分析本来是用来跟踪2个不同处理(如药, 和对照)的群体的生存情况的, 但是也可以用来分析行为, 例如
2组不同处理的蜜蜂回巢的情况, 因为回巢与时间有关, 所以存活分析比只用最后的数据更好。因为最后的数据只
有一个比例, 有可能中间两个组有差别, 但是最后没有了, 那么存活分析可以发现差别, 但是G-test不会发现。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-25 13:14
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社