nkwilling 发表于 2010-6-17 13:55 
因为我不知道你的数据集,所以无法测试.不过我想,上面已经说的很清楚了
数据就是我这个帖子1楼的样子。我选取了部分数据,但是应该可以做测试了。
按照你给我的回复,我修改了我的程序。但是还是弄不出来结果。
我的程序如下:
proc import out=trees datafile='C:\Users\zjian\Desktop\Data_R\Rates\PSP_Rates_GNMM\psp_dbh200.allPlots.xls'
dbms=excel2000 replace;
run;
%macro t;
%do i=1 %to plot_class;
data trees;
set trees;
* stdyear=year-1960; * stdyear is a standardized version of year, ranging from 0 to 49;
if plot=i;
*proc print data=trees;
run;
title 'GENERALIZED NONLINEAR MIXED MODEL, WITH YEAR';
ods output test&i.=res;
proc nlmixed data=trees;
parms a=0 b=0;
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;
%end i;
%mend t;
%t;
请大家再帮我看看啊~
多谢!