Ejemplo de uso de distribuciones multivariadas

Este código también está disponible en: Deutsch English Français
Nivel de dificultad
Principiante
Publicado el :
El script comienza utilizando `PROC IML` para simular 100 observaciones a partir de una distribución normal bivariada con una media y una matriz de covarianza especificadas. Los datos simulados se guardan luego en un conjunto de datos SAS© llamado `inputdata`. Luego, se utiliza `PROC MCMC` para ajustar un modelo normal multivariado bayesiano a estos datos. Se especifican distribuciones a priori (normal multivariada para la media `mu` e inversa Wishart para la matriz de covarianza `Sigma`). El procedimiento ejecuta 3000 iteraciones de la cadena de Markov Monte Carlo (MCMC) para muestrear las distribuciones a posteriori de los parámetros del modelo.
Análisis de datos

Type : CREACIÓN_INTERNA


Los datos `inputdata` se generan internamente por `PROC IML` a partir de una distribución normal multivariada simulada.

1 Bloque de código
PROC IML Data
Explicación :
Este bloque `PROC IML` inicializa un generador de números aleatorios (`call randseed(1)`), simula 100 observaciones (`N = 100`) de una distribución normal bivariada con una media {1 2} y una matriz de covarianza específica, luego calcula y muestra las medias y las matrices de covarianza de las muestras. Finalmente, crea un conjunto de datos SAS llamado `inputdata` a partir de los datos simulados con las columnas 'x1' y 'x2'.
¡Copiado!
1title 'An Example that Uses Multivariate Distributions';
2PROC IML;
3 N = 100;
4 Mean = {1 2};
5 Cov = {2.4 3, 3 8.1};
6 call randseed(1);
7 x = RANDNORMAL( N, Mean, Cov );
8 
9 SampleMean = x[:];
10 n = nrow(x);
11 y = x - repeat( SampleMean, n );
12 SampleCov = y`*y / (n-1);
13 PRINT SampleMean Mean, SampleCov Cov;
14 
15 cname = {"x1", "x2"};
16 create inputdata from x [colname = cname];
17 append from x;
18 close inputdata;
19QUIT;
2 Bloque de código
PROC MCMC
Explicación :
Este bloque `PROC MCMC` ajusta un modelo normal multivariado a los datos `inputdata` generados previamente. Especifica las variables de datos (`x1`, `x2`), los parámetros a estimar (`mu` y `Sigma`), y define distribuciones a priori para estos parámetros: una distribución normal multivariada para `mu` (con media `mu0` y matriz de covarianza `Sigma0` de una gran varianza) y una distribución inversa Wishart para `Sigma` (con 2 grados de libertad y matriz de escala `S` que es la matriz identidad). El procedimiento ejecuta 3000 iteraciones de la cadena de Markov Monte Carlo (MCMC) para la inferencia bayesiana de los parámetros, y la salida se limita a las estadísticas resumidas e intervalos creíbles (`ods select PostSumInt`).
¡Copiado!
1PROC MCMC DATA=inputdata seed=17 nmc=3000 diag=none;
2 ods select PostSumInt;
3 array DATA[2] x1 x2;
4 array mu[2];
5 array Sigma[2,2];
6 array mu0[2] (0 0);
7 array Sigma0[2,2] (100 0 0 100);
8 array S[2,2] (1 0 0 1);
9 parm mu Sigma;
10 prior mu ~ mvn(mu0, Sigma0);
11 prior Sigma ~ iwish(2, S);
12 model DATA ~ mvn(mu, Sigma);
13RUN;
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.
Información de copyright : S A S S A M P L E L I B R A R Y


Documentación relacionada

Aucune documentation spécifique pour cette catégorie.