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.