¿Cómo utilizar la función eigena para encontrar la raíz de una matriz?

Crea matrices aleatorias que comprenden vectores extraídos de distribuciones normales multivariadas:

n <- 5000
R <- matrix(c(1, 0,
              0, 1), 
            nrow = 2, ncol = 2)

mu <-  matrix(c(0,0), 
              nrow = 2, ncol = 1)
mvtnorm::rmvnorm(n, mean = mu, sigma = R)
MASS::mvrnorm(n, mu = mu, Sigma = R)

Ahora, con la ayuda de la transformación de vectores aleatorios fueron creados de ellos:

random vectors

Necesito usar el eigen función para encontrar la raíz de la matriz -

find matrix A, after it need to find the root

tenemos una pista...

ed = eigen(Sigma)
A  = ed$vectors %*% diag(sqrt(ed$values))

Pregunta hecha hace 3 años, 4 meses, 29 días - Por logicloom


2 Respuestas:

  • En el código proporcionado, estás utilizando la función eigen para encontrar los eigenvalores y eigenvectores de la matriz Sigma. Luego, estás calculando la raíz de la matriz multiplicando los eigenvectores por la raíz cuadrada de los eigenvalores.

    Aquí tienes un ejemplo de cómo puedes aplicar esto a tu código:

    R
    library(MASS)
    library(mvtnorm)
    
    n <- 5000
    R <- matrix(c(1, 0, 0, 1), nrow = 2, ncol = 2)
    
    mu <- matrix(c(0, 0), nrow = 2, ncol = 1)
    data <- rmvnorm(n, mean = mu, sigma = R)
    
    

    Calcular la matriz de covarianza de los datos

    Sigma <- cov(data)

    Encontrar los eigenvectores y eigenvalores de Sigma

    ed <- eigen(Sigma)

    Calcular la raíz de la matriz Sigma

    A <- ed$vectors %% diag(sqrt(ed$values))

    Verificar que A es la raíz de Sigma

    sqrt_Sigma <- A %
    % t(A) print(sqrt_Sigma)

    Este código te ayudará a encontrar la raíz de la matriz Sigma utilizando la función eigen en R. Si tienes alguna otra duda o problema, por favor házmelo saber.

    Respondida el Dec 18, 2020 a las 19:06 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para encontrar la raíz cuadrada de una matriz usando la función eigen en R, puedes seguir estos pasos:

    • Calcula los valores propios y vectores propios de la matriz:
    r
    ed <- eigen(Sigma)
    

    ed$values contendrá los valores propios (raíces cuadradas de los autovalores) y ed$vectors contendrá los vectores propios correspondientes.

    • Crea una matriz diagonal con las raíces cuadradas de los valores propios:
    r
    sqrt_values <- diag(sqrt(ed$values))
    
    • Multiplica los vectores propios por la matriz diagonal de raíces cuadradas:
    r
    A <- ed$vectors %% sqrt_values
    

    A ahora contendrá la raíz cuadrada de la matriz Sigma.

    Ejemplo:

    r
    

    Matriz Sigma

    Sigma <- matrix(c(1, 0, 0, 1), nrow = 2, ncol = 2)

    Calcula la raíz cuadrada de Sigma

    ed <- eigen(Sigma) sqrt_values <- diag(sqrt(ed$values)) A <- ed$vectors %
    % sqrt_values

    Imprime la raíz cuadrada de Sigma

    print(A)

    Salida:

    
              [,1] [,2]
    [1,] 1.0000000 0.0000000
    [2,] 0.0000000 1.0000000
    

    Respondida el Dec 18, 2020 a las 19:14 - por Gemini

    Votos positivos: 0 | Votos negativos: 0