I m having issues with this, I have to compute numerical integral using if else statement
Data sim;
Input A B C Beta P;
cards;
1 2 3 0.5 0
2 3 4 0.5 1
3 4.5 3 0.5 1
3 5 6 0.5 0
;
Run;
proc iml;
use sim;
read all var _NUM_ into DM;
close;
A = DM[,1]; B = DM[,2]; C = DM[,3]; Beta = DM[,4]; P = DM[,5];
n = nrow(DM);
start Func(x) global( Beta_i, C_i , P_i);
if P_i=0 then do;
return( exp(-x)*exp(2-x +Beta_i*C_i)#(cdf("Normal", x-2+Beta_i*C_i + A_i)-cdf("Normal", x-1+C_i + A_i)) );
end;
else do;
return( exp(-x)*exp(4-x +Beta_i*C_i)#(cdf("Normal", x-4 +Beta_i*C_i + A_i)-cdf("Normal", x-1+C_i + A_i)) );
end;
finish;
answer = j(nrow(DM),1);
do i = 1 to nrow(DM);
Beta_i = Beta; C_i = C; P_i=P; /* set global variables */
call quad(result, "Func", A || B,);
answer = result;
end;
create kaplan1n var{A B C Beta P Answer };
append;
quit;