Alguna vez habréis calculado un percentil en Excel o en R y os saldrá distinto de SAS. Esto se debe a que los métodos de cálculo son distintos; tanto R como Excel utilizan el mismo método consistente en una interpolación en función de la distancia entre los registros que dan la posición del percentil. SAS dispone de 5 métodos distintos para calcular el percentil y por defecto emplea el número 5, y ninguno de los 4 métodos restantes es el que utilizan R o Excel. Pero podemos programar el método de un modo sencillo; cuesta más entender por qué no lo implementa SAS que calcularlo. A continuación tenéis una sencilla macro que calcula el percentil con el método de Excel:

%macro percentil_excel(ds /* DATOS DE ENTRADA */
	,varib     /* VARIABLE SOBRE LA QUE SE CALCULA */
	,percentil /* PERCENTIL DESEADO */);

%global pct;

proc sort data=&ds. (keep=&varib.) out=intermedio; 
  by &varib.; 
run;

data _null_;
 	datossid = open('intermedio');
 	no = attrn(datossid, 'nobs');
 	call symput ("obs", compress(no));
 	datossid = close(datossid);
run;

* POSICIÓN (P*(N-1)/100)+1;
data _null_;
  pos = (&percentil. * (&obs. - 1) / 100) + 1;
  call symput ('entera', int(pos));
  call symput ('decimal', mod(pos, 1));
run;

* APROXIMACION X(p) = X[k] + d(X[k + 1] - X[k]);
data _1;
  set intermedio;
  if _n_ = &entera. or _n_ = &entera. + 1;
run;

proc transpose data=_1 out=_1; 
run;

data _1;
  set _1;
  d = col2 - col1;
  percentil = col1 + &decimal. * (col2 - col1);
  call symput('pct', round(percentil, 0.0001));
run;

proc delete data=_1 intermedio; 
run;
%mend;

%percentil_excel(DATOS, x, 0.5);

%put &pct.;

Una breve explicación: creamos una tabla sólo con la variable que deseamos analizar, determinamos el número de observaciones de la tabla y la posición donde debe caer el percentil como (percentil * (observaciones – 1)) / 100 + 1. Sacamos justo los puntos $k$ y $k + 1$ y realizamos la interpolación en función de la distancia de esos dos puntos para obtener la macrovariable pct que tiene el resultado que deseamos. Espero que os sea de utilidad. Saludos.