/* ** max1.e - A Tobit Model ** */ library maxlik; #include maxlik.ext; maxset; proc lpr(x,z); local t,s,m,u; s = x[4]; if s <= 1e-4; retp(error(0)); endif; m = z[.,2:4]*x[1:3,.]; u = z[.,1] ./= 0; t = z[.,1]-m; retp(u.*(-(t.*t)./(2*s)-.5*ln(2*s*pi)) + (1-u).*(ln(cdfnc(m/sqrt(s))))); endp; x0 = { 1, 1, 1, 1 }; __title = "tobit example"; output file = max1.out reset; call maxprt(maxlik("tobit",0,&lpr,x0)); output off;