%macro dose_resp_ss(L0,alpha0,beta0,L1=&L0,alpha1=&alpha0, beta1=&beta0,Lby=1,alphaby=1,betaby=1,q=0.05); data ss; do L=&L0 to &L1 by &Lby; do alpha=&alpha0 to &alpha1 by &alphaby; do beta=&beta0 to &beta1 by &betaby; ea=exp(alpha); w0=ea/((1+ea)**2); w1=(beta*(ea-ea**2)/((1+ea)**3)); w2=((beta**2)*ea*(1-4*ea+(ea**2))/((1+ea)**4)); N=((probit(1-&q/2)**2)*(w0+1.5*w2)) / ((L**2)*((w0+1.5*w2)*(w0+0.5*w2)-w1**2)); output; end;end;end; run; proc print noobs; var L alpha beta N; run; %mend;