P.E. 11: SIMULANDO DATOS DE UNA DISTRIBUCIÓN NORMAL MULTIVARIANTE

En esta entrada, veremos cómo generar datos a partir de una distribución normal multivariante con una matriz de correlaciones predeterminada. Esta simulación será de gran utilidad para facilitar la comprensión de los métodos del análisis multivariante.

Lo ilustramos siguiendo las explicaciones de soporte de IBM SPSS Statistics que se pueden encontrar aquí.

Para generar un conjunto de datos procedentes de una Distribución Normal Multivariante a través de la sintaxis de SPSS, el ejemplo sigue los siguientes pasos:

1) Genera un conjunto de variables con distribución normal que, en principio, no deben presentar correlación significativa.

2) Las transforma a través del procedimiento de componentes principales, extrayendo tantos factores como número de variables consideradas (5 en el ejemplo), guardando los resultados. Este paso garantiza que las variables son ortogonales y que, más adelante podremos transformarlas mediante un conjunto de combinaciones lineales recogidas en un matriz, de modo que presenten las medias y matriz de varianzas-covarianzas deseadas.

3) A través de la sintaxis específica para matrices, lo primero que hace es considerar las variables resultado del paso anterior como una matriz. A continuación especifica la matriz de correlaciones deseada, sobre la que calcula la descomposición de Cholesky. Por el medio realiza algunas comprobaciones para garantizar el buen comportamiento de la matriz correlaciones (que es invertible) .

4) Calcula la matriz que contiene las nuevas variables "newx" aplicando una transformación lineal a partir de la descomposición anterior.

5) Aplica un cambio de origen y escala a las nuevas variables (en este caso las desplaza 100 unidades y las multiplica por factor 15, de modo que todas tienen las misma media y varianza. Recordemos que los cambios de origen y escala afectan a la matriz de varianzas-covarianzas pero no a la matrix de correlaciones.

6) Guarda las nuevas variables en el visor de datos, cerrando las transformaciones bajo el comando matrix.

En caso de que queramos aplicar transformaciones diferentes (de origen y escala) a cada una de las variables, podemos hacerlo dentro del procedimiento "matrix" o aplicando cambios de origen y escala diferentes para cada nueva variable, una vez cerrado el procedimiento matrix obviando previamente la línea " compute newx=newx*15 + 100. " mediante la inserción de un asterisco (*) al inico. Tales transformaciones se harían, por ejemplo, a través del comando " compute nr3=nr3*cambio_escala + cambio_origen. " que ilustra cómo transformar la variable nr3 mediante un cambio de origen y escala arbitrario.

Author's photo

Jesús Bescos

I have worked in the areas of Information, Decisioning Systems, Data Analysis, and Predictive Analytics for more than 20 years. I’ve a Master Degree in Public Economics, and a Ph.D. in Applied Economics.
Over the course of my professional activity I have had the privilege of Teaching and practicing Statistics, joining the Predictive Analytics software industry (SPSS, now part of IBM company), working for a Global Information Services player (Experian) and setting up my own practice.
My professional career has evolved around the connexion of data with effective actions, for various business environments demanding the combined use of analysis and technology in different roles and positions requiring the management of products, consultancy, and sales.