4 votos

Creación de una matriz de covarianza

Digamos que tienes la correlación de x,y y tienes las desviaciones estándar de x e y , como encontrarías entonces la covarianza de x,y usando la correlación de x,y y la desviación estándar de x,y .

La razón por la que me gustaría saber esto es que me gustaría tomar una matriz de correlación y las desviaciones estándar de todas las variables y utilizarla para crear una matriz de covarianza .

Gracias por su tiempo, su ayuda será muy apreciada

8voto

Valometrics.com Puntos 631

aquí es cómo obtener la matriz de covarianza de las correlaciones:
enter image description here

2voto

Chris Mc Puntos 31

La relación entre covarianza, desviación estándar y correlación es:

$$ corr(x,y) = \frac{cov(x,y)}{\sigma_x \sigma_y}$$

Así que para construir tu matriz tendrás las varianzas en la diagonal:

$$ cov(x,x) = corr(x,x) \times \sigma_x \times \sigma_x = 1 \times \sigma_x^2 = \sigma_x^2 $$

Y para las covarianzas:

$$ cov(x,y) = corr(x,y) \times \sigma_x \times \sigma_y $$

Aquí hay un ejemplo con los cálculos en python:

import numpy as np
import pandas as pd
x = np.random.randint(1,4,20)
y = np.random.randint(1,4,20)
pd.DataFrame({'x': x, 'y': y}).describe()

enter image description here

std_x, std_y = pd.DataFrame({'x': x, 'y': y}).describe().loc['std']
corr_xy = np.corrcoef(x,y)[0][1]
print(f"Correlation between x and y: {corr_xy}")
var_x = std_x**2
print(f"Variance of x: {var_x}")
var_y = std_y**2
print(f"Variance of y: {var_y}")
cov_xy = corr_xy * std_x * std_y
print(f"Covariance between x and y: {cov_xy}")

Lo que daría como resultado:

Correlation between x and y: -0.20037977722310454
Variance of x: 0.6421052631578946
Variance of y: 0.7263157894736844
Covariance between x and y: -0.13684210526315793

Aunque podrías obtener estos valores directamente con Numpy:

cov = np.cov(x,y)
print(cov)

[[ 0.64210526 -0.13684211]
[-0.13684211 0.72631579]]

O usando pandas:

pd.DataFrame({'x': x, 'y': y}).cov()

enter image description here

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X