2015-11-23 6 views
-1

J'essaie de calculer la covariance d'une matrice qui a deux vecteurs colinéaires. J'ai lu que c'était impossible avec la fonction "cov" de R.Covariance avec des vecteurs colinéaires

Une fonction différente existe-t-elle sur R pour calculer la covariance d'une matrice qui a deux vecteurs colinéaires (puisqu'elle fonctionne sur Matlab et Excel).

Merci d'avance pour vos réponses

Répondre

2

S'il vous plaît envisager de fournir un exemple reproductible avec un échantillon de vos données et le code correspondant. D'une manière générale, une matrice de covariance peut être créé avec l'utilisation du code ci-dessous:

# Vectors 
V1 <- c(1:4) 
V2 <- c(4:8) 
V3 <- runif(n = 4) 
V4 <- runif(n = 4) 

#create matrix 
M <- cbind(V1,V2, V3, V4) 

# Covariance 
cov(M) 

Je devine que vous pouvez obtenir l'erreur suivante:

number of rows of result is not a multiple of vector length (arg 1)

Vous pouvez d'abord essayer d'utiliser la cov fonction comme discuté here.

+0

La fonction "cov" ne me donne pas d'erreur mais le déterminant de la matrice covariante est toujours 0 lorsque deux colonnes de la matrice initiale sont colinéaires ... – willo

+0

@willo Jetez un oeil à [cette discussion] (http: //stats.stackexchange.com/questions/50318/how-to-avoid-0-determinant-when-sample-covariance-matrix-has-very-small-values) en traitant du 0 déterminant. Il me semble que votre question concerne plus les aspects statistiques du travail que vous êtes prêt à entreprendre qu'avec ** R ** en tant que tel. Pour des alternatives à la fonction 'cov' vous pouvez jeter un oeil à' corpcor' [package] (https://cran.r-project.org/web/packages/corpcor/corpcor.pdf). – Konrad