/* ** maxgrd.e ** */ library maxlik; #include maxlik.ext; maxset; proc lpsn(b,z); local m; m = z[.,2:4]*b; retp(z[.,1].*m-exp(m)); endp; proc lgd(b,z); local zi; zi = z[.,2:4]; retp((z[.,1]-exp(zi*b)).*zi); endp; proc hsgd(b,z); local zi; zi = z[.,2:4]; retp(-zi'*(exp(zi*b).*zi)); endp; x0 = { .41187, .83872, .49165 }; @ ML estimates @ _mlgdprc = &lgd; _mlhsprc = &hsgd; output file = maxgrd.out reset; { x,f0,g,h,retcode } = maxgrd("psn",0,&lpsn,x0); output off;