Calculando Covarianzas con Visual Basic

De la misma forma que hemos visto cómo calcular Varianzas con Visual Basic, también podemos calcular Covarianzas con Visual Basic, transcribiendo las funciones de Excel o bien el procedimiento seguido por el Análisis de Datos. Para el cálculo de las covarianzas en Visual Basic tenemos 3 funciones.

Si queremos calcular la covarianza de dos variables de una muestra utilizaremos COVARIANZA.M(), para utilizar esta variable con Visual Basic debemos introducir la siguiente instrucción:

ActiveCell.FormulaR1C1 = «=COVARIANCE.S(R[-31]C[-2]:R[-12]C[-2],R[-31]C[-1]:R[-12]C[-1])»

La función a escribir es =COVARIANCE.S() dentro debemos introducir los datos de cada una de las dos variables separadas por una coma. La S es de Sample, muestra en inglés.

Para la covarianza de una población la función a utilizar era COVARIANCE.P(), y nos devolvía la covarianza entre dos variables para toda la población. Esta función se puede reflejar en Visual Basic de la siguiente manera:

  ActiveCell.FormulaR1C1 = «=COVARIANCE.P(R[-30]C[-2]:R[-11]C[-2],R[-30]C[-1]:R[-11]C[-1])»

Debemos escribir =COVARIANCE.P() y una vez más dentro del paréntesis los datos de cada una de las dos variables separados por una coma. La P proviene de Population, población en inglés.

Otra función que se mantiene de versiones anteriores de Excel es COVAR() que nos devuelve también el valor de la covarianza de las dos variables en una población. En Visual Basic esta función se refleja así:

ActiveCell.FormulaR1C1 = «=COVAR(R[-29]C[-2]:R[-10]C[-2],R[-29]C[-1]:R[-10]C[-1])»

Debemos escribir =COVAR() y en el interior del paréntesis los valores de las dos variables separados por una coma.

Como ya vimos, para calcular la covarianza se puede utilizar también la herramienta Análisis de Datos. Este análisis de la covarianza mediante Análisis de Datos se puede reproducir también en Visual Basic. Para ello debemos utilizar la siguiente estructura:

     Application.Run «ATPVBAEN.XLAM!Mcovar», ActiveSheet.Range(«$A$32:$E$51»), _

        ActiveSheet.Range(«$W$47»), «C», False

Vemos que se trata de una aplicación. Debemos tener activado el Análisis de datos en VBA, para poder utilizar esta aplicación en Visual Basic, se activa siguiendo el mismo proceso que para activar la Herramienta de análisis de datos para Excel, o el Solver.

Vemos que la aplicación a utilizar es Mcovar, matríz de covarianzas.

Application.Run «ATPVBAEN.XLAM!Mcovar»,

A continuación tenemos el rango de celdas de donde recoge los valores de las variables de las que queremos conocer las distintas covarianzas entre ellas:

ActiveSheet.Range(«$A$32:$E$51»),

El siguiente fragmento recoge el lugar de salida de la tabla de covarianzas. En este caso es la hoja activa en la celda W47. Pero podemos querer que los datos se coloquen en otra hoja:

     Application.Run «ATPVBAEN.XLAM!Mcovar», ActiveSheet.Range(«$A$32:$E$51»), _

        “”, «C», False

Una hoja nueva sin nombre prefijado en este caso. ,””,

O en un libro nuevo:

     Application.Run «ATPVBAEN.XLAM!Mcovar», ActiveSheet.Range(«$A$32:$E$51»), ,_

       «C», False

En este caso no debemos colocar nada entre las comas: , ,

El siguiente argumento nos indica si las variables están ordenadas por filas o columnas. Si cada columna representa una variable deberemos colocar una “C” de Column, columna en inglés. En cambio si cada fila representa una variable deberemos colocar una “R” de Row, fila en inglés.

Por último debemos indicar si la primera columna (o fila) contiene títulos. En caso que los contenga colocaremos TRUE, y si no los tiene FALSE.

Una vez hayamos rellenado todas las opciones podemos ejecutar la aplicación y obtendremos nuestra matríz de covarianzas. Estas covarianzas se corresponden a covarianzas poblacionales. En la diagonal principal donde calculamos la covarianza de cada variable con ella misma encontramos la varianza poblacional de esa variable.

Deja un comentario