Corrélation spatiale (création d'une boucle?)

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Guinaudeau Benjamin
Messages : 25
Enregistré le : 11 Déc 2010, 09:13

Corrélation spatiale (création d'une boucle?)

Messagepar Guinaudeau Benjamin » 10 Oct 2017, 05:38

Bonjour à tous,

je travaille sur des corrélations entre différentes variables. Il est facile d'agencer une matrice de corrélation avec ggplot cf image ci dessous

Image

mon souci est que mes données sont spatialisées je fais donc des corrélations spatiales avec le spatial pack et la fonction
cor.spatial

Code : Tout sélectionner

read.table("Indic_compilation_100617_final.txt",h=T)
rpt<-read.table("Indic_compilation_100617_final.txt",h=T)

## extracting the coordinates from the camg data set
coords <- rpt[,1:2]
## computing the codispersion coefficient

z<-SpatialPack::cor.spatial(rpt$sa7_1_normal,rpt$sa7_2_normal,coords)
z


mais voilà j'ai plus de 20 variables donc je ne me vois pas répéter manuellement les opérations, de plus j'aimerais aboutir à un graphique du type ggplot mais je ne trouve pas de solution.

Quelqu'un est susceptible de m'orienter sur le sujet ?

merci à vous

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: Corrélation spatiale (création d'une boucle?)

Messagepar Logez Maxime » 10 Oct 2017, 08:19

Bonjour,

tu peux utiliser la fonction combn pour rechercher les combinaisons des variables deux à deux :

Code : Tout sélectionner

c1 <- combn(colnames(rpt[-(1:2)]), 2)
corsp <- numeric(ncol(c1))
for (i in seq_along(corsp)) {
  corsp[i] <- SpatialPack::cor.spatial(rpt[, c1[1,i]],rpt[, c1[2,i]],coords)
}

# ou via un mapply :
corsp <- mapply(function(x, y) SpatialPack::cor.spatial(rpt[, x],rpt[, y],coords), c1[1,], c1[2,])
res <- cbind(as.data.frame(t(c1)), corsp = corsp)
A partir de ce data.frame tu peux faire les représentations graphiques via ggplot2.

Cordialement,
Maxime

Guinaudeau Benjamin
Messages : 25
Enregistré le : 11 Déc 2010, 09:13

Re: Corrélation spatiale (création d'une boucle?)

Messagepar Guinaudeau Benjamin » 17 Oct 2017, 13:28

Bonjour,

super merci je vais tester tout ça !


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité