Ai-je bien répondu? - Vous souhaitez tester s'il existe une différence statistiquement significative entre les deux conditions?
Perhabs vegan :: adonis () est quelque chose pour vous? Je ne sais pas si c'est ce que vous cherchez.
Il fonctionne sur la matrice de distance et compare les distances à l'intérieur d'une condition plus grandes qu'entre les conditions. Par exemple, dans un NMDS, vous verriez une séparation claire des deux conditions.
Voici un exemple de code:
df <- data.frame(cond = rep(c("A", "B"), each = 100),
v1 <- jitter(rep(c(20, 100), each = 100)),
v2 <- jitter(rep(c(0, 80), each = 100)),
v3 <- jitter(rep(c(40, 5), each = 100)),
v4 <- jitter(rep(c(42, 47), each = 100)),
v5 <- jitter(rep(c(78, 100), each = 100)),
v6 <- jitter(rep(c(10, 100), each = 100)))
# PCA
require(vegan)
pca <- rda(df[ ,-1], scale = TRUE)
ssc <- scores(pca, display = "sites")
ordiplot(pca, type = "n")
points(ssc[df$cond == "A", ], col = "red", pch = 16)
points(ssc[df$cond == "B", ], col = "blue", pch = 16)
# NMDS
nmds <- metaMDS(df[ ,-1], distance = "euclidian")
nmsc <- scores(nmds, display = "sites")
ordiplot(nmds, type = "n")
points(nmsc[df$cond == "A", ], col = "red", pch = 16)
points(nmsc[df$cond == "B", ], col = "blue", pch = 16)
# use adonis to test if there is a difference between the conditions
adonis(df[ ,-1] ~ df[ ,1], method = "euclidean")
## There is a statistically significant difference between the two conditions
Test de permutation
Pour tester directement l'hypothèse nulle, utilisez un test de permutation.
Laissez le premier PC en étatA Explique a<100% de variance, et le premier PC en état B Explique b<100% de variance. Votre hypothèse est queb>a , afin que nous puissions définir c=b−a comme la statistique d'intérêt, et l'hypothèse est que c>0 . L'hypothèse nulle à rejeter est quec=0 .
Pour effectuer le test de permutation, prenez votreN=200+200 des échantillons des deux conditions, et les diviser au hasard en conditions A et B . Comme le fractionnement est aléatoire, il ne devrait pas y avoir de différence dans la variance expliquée après cela. Pour chaque permutation, vous pouvez calculerc , répétez ce processus plusieurs fois (par exemple, 10000 ) fois, et obtenir la distribution des c sous l'hypothèse nulle de ctrue=0 . Comparer votre valeur empiriquec avec cette distribution donnera un p -valeur.
Bootstrapping
Pour obtenir l'intervalle de confiance surc , utilisez le bootstrapping.
Dans l'approche d'amorçage, vous sélectionneriez au hasardN=200 échantillons avec remplacement des échantillons existantsA et un autre N=200 de B . Calculerc et répétez-le plusieurs fois (disons, 10000 ) fois. Vous allez obtenir une distribution bootstrap duc valeurs, et ses intervalles de centile vont correspondre aux intervalles de confiance de la valeur empirique c . Vous pouvez donc estimer lap -value en regardant quelle partie de cette distribution se situe au-dessus 0 .
Le test de permutation est un moyen plus direct (et probablement moins reposant sur des hypothèses) de tester l'hypothèse nulle, mais le bootstrap a l'avantage supplémentaire de fournir un intervalle de confiance surc .
la source
Ce n'est qu'un aperçu de l'idée. La proportion de variance est définie comme
oùλi sont les valeurs propres de la matrice de covariance. Maintenant, si nous utilisons à la place les valeurs propres de la matrice de corrélation,λ1+...+λ6=6 , puisque la somme des valeurs propres d'une matrice est égale à la trace de la matrice, et pour les matrices de corrélation, la trace est la somme de celles.
Donc, si nous utilisons les matrices de corrélation, nous devons tester des hypothèses sur la différence de deux valeurs propres maximales d'échantillons de matrices de corrélation. Il est certainement possible de trouver dans la littérature la distribution asymptotique de la valeur propre maximale de la matrice de corrélation. Le problème se réduit donc à une sorte de test t apparié ou non apparié.
la source