El script comienza con un DATA STEP para simular una variable Y siguiendo una distribución binomial negativa con parámetros Mu y Kappa definidos. La simulación utiliza las funciones RANGAM y RANPOI. Luego, se emplea PROC GLIMMIX para estimar los parámetros de la distribución binomial negativa a partir de los datos generados. Se utilizan los pasos PROC PRINT y PROC MEANS para mostrar los valores reales y estimados de Mu, Kappa, la media y la varianza, lo que permite una comparación.
Análisis de datos
Type : CREATION_INTERNE
Los datos se generan internamente a través de un DATA STEP que simula una distribución binomial negativa. No se requiere ningún conjunto de datos externo.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA STEP genera 2000 observaciones de una variable 'Y' siguiendo una distribución binomial negativa. Los parámetros Mu (media=30) y Kappa (dispersión=0.1) se definen, así como una semilla para la reproducibilidad. Las funciones RANGAM (para la distribución Gamma) y RANPOI (para la distribución de Poisson) se utilizan para la simulación. También se calcula la varianza teórica.
¡Copiado!
data one;
Mu = 30;
Kappa = 0.1;
alpha = 1 / kappa;
beta = kappa * mu;
n = 2000;
seed = 1917;
Variance = mu * ( 1 + mu*kappa);
do id=1 to n;
u = beta * rangam( seed, alpha );
Y = ranpoi( seed, u );
end;
keep Mu Kappa Variance id y;
run;
1
DATA one;
2
Mu = 30;
3
Kappa = 0.1;
4
alpha = 1 / kappa;
5
beta = kappa * mu;
6
n = 2000;
7
seed = 1917;
8
Variance = mu * ( 1 + mu*kappa);
9
DO id=1 to n;
10
u = beta * rangam( seed, alpha );
11
Y = ranpoi( seed, u );
12
END;
13
keep Mu Kappa Variance id y;
14
RUN;
2 Bloque de código
PROC GLIMMIX
Explicación : Este bloque utiliza PROC GLIMMIX para estimar los parámetros Mu y Kappa de la distribución binomial negativa a partir de los datos generados 'one'. La opción `dist=negbin` especifica la distribución, y `link=identity` el enlace. La instrucción ODS se utiliza para capturar las estimaciones de los parámetros en el conjunto de datos 'parms' y suprimir la salida estándar durante la ejecución del procedimiento.
¡Copiado!
*--- Get estimates of Mu and Kappa using PROC GLIMMIX;
ods select none;
ods output ParameterEstimates=parms;
proc glimmix data=one;
model y = / dist=negbin link=identity s;
run;
ods select all;
1
*--- Get estimates of Mu and Kappa using PROC GLIMMIX;
2
ods select none;
3
ods OUTPUT ParameterEstimates=parms;
4
PROC GLIMMIXDATA=one;
5
model y = / dist=negbin link=identity s;
6
RUN;
7
ods select all;
3 Bloque de código
PROC PRINT
Explicación : Este bloque configura la salida HTML y muestra los valores iniciales (verdaderos) de Mu y Kappa utilizados para la generación de datos, extraídos del primer registro del conjunto de datos 'one'.
¡Copiado!
ods html;
title "True Mu and Kappa of Y's iid Negative-binomial(Mu, Kappa)";
proc print data=one noobs;
where id = 1;
var Mu Kappa;
run;
1
ods html;
2
title "True Mu and Kappa of Y's iid Negative-binomial(Mu, Kappa)";
3
PROC PRINTDATA=one noobs;
4
where id = 1;
5
var Mu Kappa;
6
RUN;
4 Bloque de código
PROC PRINT
Explicación : Este bloque muestra las estimaciones de Mu y Kappa obtenidas por PROC GLIMMIX, almacenadas en el conjunto de datos 'parms'.
¡Copiado!
title "Estimated Mu and Kappa using PROC GLIMMIX";
proc print data=parms noobs;
var Effect Estimate;
run;
1
title "Estimated Mu and Kappa using PROC GLIMMIX";
2
PROC PRINTDATA=parms noobs;
3
var Effect Estimate;
4
RUN;
5 Bloque de código
DATA STEP
Explicación : Este simple DATA STEP renombra la variable 'Mu' a 'Mean' en el conjunto de datos 'one' para una mayor claridad en las visualizaciones subsiguientes.
¡Copiado!
data one;
set one;
rename Mu = Mean;
run;
1
DATA one;
2
SET one;
3
rename Mu = Mean;
4
RUN;
6 Bloque de código
PROC PRINT
Explicación : Este bloque muestra la media (Mean) y la varianza (Variance) teóricas de la distribución binomial negativa, calculadas y almacenadas durante la generación de datos.
¡Copiado!
title "True Mean and Variance of Y's iid Negative-binomial(Mu, Kappa)";
proc print data=one noobs;
where id = 1;
var Mean Variance;
run;
1
title "True Mean and Variance of Y's iid Negative-binomial(Mu, Kappa)";
2
PROC PRINTDATA=one noobs;
3
where id = 1;
4
var Mean Variance;
5
RUN;
7 Bloque de código
PROC MEANS
Explicación : Este bloque utiliza PROC MEANS para calcular y mostrar la media y la varianza observadas de la variable 'Y' a partir de los datos generados. Esto permite comparar las estadísticas reales de la muestra con los valores teóricos y estimados. La instrucción `ods html close` cierra el archivo de salida HTML.
¡Copiado!
title "Estimated Mean and Variance";
proc means data=one n mean var maxdec=2;
var y;
run;
ods html close;
1
title "Estimated Mean and Variance";
2
PROC MEANSDATA=one n mean var maxdec=2;
3
var y;
4
RUN;
5
ods html close;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.