Bonjour,
Lorsque je réalise une ANOVA, certains coefficients ne sont pas calculés avec pour cause : "5 not defined because of singularities"
Quelle est la cause de cette erreur ? Comment la résoudre ?
Merci d'avance.
Version imprimable
Bonjour,
Lorsque je réalise une ANOVA, certains coefficients ne sont pas calculés avec pour cause : "5 not defined because of singularities"
Quelle est la cause de cette erreur ? Comment la résoudre ?
Merci d'avance.
Hello,
Voici une piste. Les problèmes de singularité se produisent généralement lorsque, dans la matrice d'entrées, au moins une variable est «presque» linéairement dépendante à une autre. Dans ce cas, il n'est pas possible d'inverser la matrice. Je suppose donc que l'algorithme anova doit réaliser une inversion de matrice et qu'il n'y arrive pas.
Voici un exemple (un peu extrême):
Code:
1
2
3
4
5
6
7
8
9 A <- matrix(runif(16),ncol=4) print(A) invA <- solve(A) # Ici l'inversion de la matrice ne pose pas de problème. print(invA) B <- A B[,4] <- 10*B[,3] print(B) # On peut voir que les colonnes 3 et 4 sont linéairement dépendantes. invB <- solve(B) ## Erreur dans solve.default(B) : le système est numériquement singulier
Bonjour Hoccha,
Tout d'abord merci pour ton explication ! J'ai bien compris le problème de mon jeu de données. Il est vrai qu'il compte pas mal de 0 ce qui complique mon affaire... (je te le mets en pièce jointe).
J'aimerais tester taille~mi*pois*oeuf*detr pour avoir le coeff qui m'intéresse mi:pois:oeuf:detr mais il fait parti des manquants pour cause de singularités...
Tu connais un moyen de s'en sortir ? Passer sur un autre type de test peut-être ?
Merci pour ton aide !