我需要修改下面的SAS程序。目前的程序,我每次只能运行一个plots,通过设置“if plots=6;”。如果我运行一个plots,结果如下:
Parameter Estimate Standard Error DF t Value Pr > |t| Alpha Lower Upper Gradient
a -35.7527 52.2230 6 -0.68 0.5191 0.05 -163.54 92.0324 -0.00002
b 0.01587 0.02638 6 0.60 0.5694 0.05 -0.04868 0.08042 -0.03539
alpha 0.3721 0.2290 6 1.63 0.1553 0.05 -0.1882 0.9325 -8.6E-6
我想修改一下这个程序,可以同时运行很多个plots,如10个plots (1,2,3,4,5,6,7,8,9,10) <我的实际数据有上千个plots>. 最后得到一个总结性的结果表,如下(添加了一列“plots”):
Parameter | Estimate | Standard | DF | t Value | Pr>|t| | Alpha | Lower | Upper | Gradient | plots |
a | -35.7527 | 52.223 | 6 | -0.68 | 0.5191 | 0.05 | -163.54 | 92.0324 | -0.00002 | 1 |
b | 0.01587 | 0.02638 | 6 | 0.6 | 0.5694 | 0.05 | -0.04868 | 0.08042 | -0.03539 | 1 |
alpha | 0.3721 | 0.229 | 6 | 1.63 | 0.1553 | 0.05 | -0.1882 | 0.9325 | -8.60E-06 | 1 |
a | -35.7527 | 52.223 | 6 | -0.68 | 0.5191 | 0.05 | -163.54 | 92.0324 | -0.00002 | 2 |
b | 0.01587 | 0.02638 | 6 | 0.6 | 0.5694 | 0.05 | -0.04868 | 0.08042 | -0.03539 | 2 |
alpha | 0.3721 | 0.229 | 6 | 1.63 | 0.1553 | 0.05 | -0.1882 | 0.9325 | -8.60E-06 | 2 |
a | -35.7527 | 52.223 | 6 | -0.68 | 0.5191 | 0.05 | -163.54 | 92.0324 | -0.00002 | 3 |
b | 0.01587 | 0.02638 | 6 | 0.6 | 0.5694 | 0.05 | -0.04868 | 0.08042 | -0.03539 | 3 |
alpha | 0.3721 | 0.229 | 6 | 1.63 | 0.1553 | 0.05 | -0.1882 | 0.9325 | -8.60E-06 | 3 |
a | -35.7527 | 52.223 | 6 | -0.68 | 0.5191 | 0.05 | -163.54 | 92.0324 | -0.00002 | 4 |
b | 0.01587 | 0.02638 | 6 | 0.6 | 0.5694 | 0.05 | -0.04868 | 0.08042 | -0.03539 | 4 |
alpha | 0.3721 | 0.229 | 6 | 1.63 | 0.1553 | 0.05 | -0.1882 | 0.9325 | -8.60E-06 | 4 |
下面是我的SAS程序:
********
proc import out=trees datafile='C:\GNMM_AW\p.gnmmData.dbh91n.ASRD.STD.xls'
dbms=xls replace;
run;
data trees;
set trees;
if plots=6;
*proc print data=trees;
run;
******** FIT GENERALIZED NONLINEAR MIXED MODEL************* ;
proc nlmixed data=trees; parms a=0.1 b=-0.002;
eta = a + b*year;
p_ann_mort = exp(eta)/(1+exp(eta));
p_ann_surv = 1-p_ann_mort;
p_surv = p_ann_surv**yr_interval;
p_mort = 1-p_surv;
mean_mort = live_off*p_mort;
ll=lgamma(1/alpha + n_dead) - lgamma(1 + n_dead) - lgamma(1/alpha)
+ n_dead*log(alpha*mean_mort)
- (1/alpha + n_dead)*log(1 + alpha*mean_mort); * log likelihood function for negative binomial regression ;
model n_dead ~ general(ll);
predict live_off*p_mort out=predobs1;
run;
不知道哪位高手是否有时间帮我修改一下这段程序。
多谢了~



雷达卡



京公网安备 11010802022788号







