## Quantile Function Error on a Matrix of Probabilities in Proc IML

Occasional Contributor
Posts: 13

# Quantile Function Error on a Matrix of Probabilities in Proc IML

[ Edited ]
``````/*NORMINV of Random Binomial Probability of Default*/
%let N = 10;
%let M= 3;
proc iml;
call randseed(123);
x = j(&N,&M);
q=j(&N,&M);
p = {.100 .200 .500};
p_mat = repeat(p, &N);
stdev_mat=p_mat#(1-p_mat);
N_mat = repeat(&N, &N, &M);
call randgen(x, "Binomial", p_mat, N_mat);
x=x/&N;/*Random probability of default*/
q = quantile("Normal", x); /*Quantile of the probability
from normal distribution (Distance to default)*/
mean=mean(x);
max=x[<>,];
min=x[><,];
print p,mean,max,min,x,q;
Quit;``````

I have generated random variables using Binnomial distribution and converted them into a matrix of probabilities of default (x=x/&N). Now I want to calculate distance to default by finding the quantile of these probabilities ( matrix q) assuming standard normal distribution. However, I am getting an error on the Quantile function (q) i.e. ERROR: (execution) Invalid argument to function. Please help and thanks in advance.

SAS Super FREQ
Posts: 3,409

## Re: Quantile Function Error on a Matrix of Probabilities in Proc IML

The inverse CDF of 0 is not defined when elements of X are zero. The error is that you are trying to evaluate a function (QUANTILE) for values that are outside the domain of the function, which is (0, 1).

Occasional Contributor
Posts: 13

## Re: Quantile Function Error on a Matrix of Probabilities in Proc IML

Ture. I'll have to try to get around this, perhaps by replacing zeros with infinitesimally small probabilities.

Discussion stats
• 2 replies
• 181 views
• 0 likes
• 2 in conversation