|
|
5#

楼主 |
发表于 2010-8-17 05:22:52
|
只看该作者
Re: Sas help里的一个例子-----用NLP作Maximum Likelihood Weibull Estim
总共19个记录。所以maximize(l1+l2+...+l19);
前17个都是事件(cens = 0),所以 l = - (x_th / sig)**c + log(c) - c*log(sig) + (c-1)*log(x_th) , for i = 1, 2, ..., 17;
后两个是censors(cens = 1),所以 l = - (x_th / sig)**c, for i = 18, 19;
也就是说19个记录生成19个loglikelihood,按照以上的方法。
你的改动有些问题,就是两个censored的值没有考虑其中。
如下的改动应该是等价的:
[code:4m505uxm]proc nlp data=pike tech=tr inest=par1 outest=opar1
outmodel=model cov=2 vardef=n pcov phes;
/* max logf;*/
max s;
parms sig c;
profile sig c / alpha = .9 to .1 by -.1 .09 to .01 by -.01;
x_th = days - theta;
s = - (x_th / sig)**c;
if cens=0 then s + log(c) - c*log(sig) + (c-1)*log(x_th);
/* logf = s;*/
run;[/code:4m505uxm] |
|