En un sólo paso DATA quiero mostraros las funciones más habituales para generar números aleatorios con SAS. Una entrada para que os copiéis el código y lo analicéis con SAS. Quiero que sirva de guía para que recordéis las funciones más empleadas, además será muy útil para los que se estén iniciando en el uso de SAS:
data aleatorios;
drop a b raiz n p;
raiz=20;
do i=1 to 2000;
* DISTRIBUCIÓN UNIFORME;
uniforme = ranuni(raiz);
* ALEATORIO ENTRE 2 NUMEROS;
a=2; b=10;
aleatorio_entre = a+(b-a)*ranuni(raiz);
* NORMAL(0,1);
normal = rannor(raiz);
* NORMAL(a,b);
normal_a_b = b*rannor(raiz)+a;
* POISSON MEDIA a;
poisson = ranpoi(raiz,a);
*BINOMIAL TAMAÑO n Y PROBABILIDAD p;
n=10; p=0.5;
binomial_n_p = ranbin(raiz,n,p);
* EXPONENCIAL 1;
exponencial_1 = ranexp(raiz);
* GAMMA(a);
gamma_l = rangam(raiz,a);
* VALORES ALEATORIOS ENTRE 1 Y 5 CON PROBABILIDADES p1 p2 ...;
valores = rantbl(raiz,0.3,0.1,0.2,0.2,0.6);
output;
end;run;
Que funcion trae incorporado SAS para generar números aleatorios de una distribucíon pareto?
Hola, función no hay. He estado mirando la posibilidad de programarlo con BASE y el tema me supera (de momento). Sigo intentándolo. ¿Has probado R?
Para Andrés:
distribución acumulada CDF(‘PARETO’,x,a)
distribución de probabilidad
PDF(‘PARETO’,x,a)
Saludos
No sabía que existía esa función, pero insisto en el uso de R:
library(VGAM)
alfa = 2; k = exp(0.8)
datos1 = data.frame(aleat = rpareto(n=100,
location=alfa, shape=k))
minimo = 100; maximo = 200; k = exp(1)
datos2 = data.frame(aleat = rtpareto(n=100,
lower=minimo, upper=maximo, shape=k))
Creo que se puede hacer incluso sin conocer K. PEro no estoy seguro.
Buenos días,
Cómo se puede generar un listado de números aleatorios, balanceados en secuencias de 4, por ejemplo?
Gracias,
Hola, ¿eso como es? ¿Puedes poner un ejemplo?
Buenos días,
Me gustaria generar un listado de números aleatórios para los hijos de las vacas. Necessito un pedigree con vaca, cría, padre (de la vaca) y madre (de la vaca). Gracias por su ayuda.