1
votes

Package R eulerr - Affiche un mauvais diagramme euler

J'essaye de créer un diagramme d'Euler avec le package R eulerr. J'utilise le code suivant:

        original fitted residuals regionError
A             15     15         0       0.004
B              0      0         0       0.000
C             19     19         0       0.005
D             13     13         0       0.003
A&B            4      4         0       0.001
A&C           14     14         0       0.003
A&D            4      4         0       0.001
B&C            2      0         2       0.022
B&D            0      0         0       0.000
C&D            3      3         0       0.001
A&B&C         11     11         0       0.003
A&B&D          2      2         0       0.000
A&C&D          1      1         0       0.000
B&C&D          0      0         0       0.000
A&B&C&D        3      3         0       0.001

diagError: 0.022 
stress:    0.004 

J'obtiens le résultat suivant: entrez la description de l'image ici Mais le tracé d'Euler qui en résulte est faux:

  • Tout B ne doit pas être inclus dans A
  • B doit être égal à 22 au total (sur l'image, il ne montre qu'un nombre total de 20)
  • C doit être 53 au total (et non 51)

Comment puis-je résoudre ce problème ou s'agit-il d'une erreur de package?

Le diagramme d'erreur est le suivant: Erreur de région: Erreur de région Résidus:

 Résiduels Malheureusement, le diagramme résiduel ne montre pas les résidus. Néanmoins, les observations manquantes sont indiquées dans la statistique résiduelle "normale" ci-dessous.

vd <- euler(c(A = 54, B = 22, C = 53, D= 26 ,"A&B" = 20, "A&C" = 29, "A&D"=10, "B&C" = 16, "B&D"=5, "C&D"=7,"A&B&C" = 14, "A&B&D"=5, "A&C&D"=4, "B&C&D"=3,"A&B&C&D"=3),input = c("union"), shape="ellipse")

plot(vd, labels = c("A", "B", "C","D"), main = "Databases",Count=TRUE, quantities = TRUE)


2 commentaires

La documentation dit que "avec trois ensembles ou plus se croisant, exactement Euler les diagrammes sont souvent impossibles. Dans de tels cas, eulerr tente de fournir une bonne approximation en réglant numériquement les paramètres des ellipses ou des cercles pour minimiser l'erreur dans le diagramme résultant. " C'est peut-être l'un de ces cas impossibles. La documentation indique également que «les statistiques résiduelles et de qualité d'ajustement sont fournies pour évaluer si le diagramme résultant peut être fiable» - les avez-vous vérifiées?


Merci! Cela semble être l'un des cas imbossibles. Les statistiques sur les résidus et la qualité de l'ajustement montrent les résultats affichés dans mon premier message.


3 Réponses :


3
votes

La raison pour laquelle certaines zones sont laissées de côté est simple: le diagramme est inexact et il manque certaines zones. Il n'y a pas de place pour mettre l'étiquette pour B&C , c'est pourquoi il manque 2 unités à B et C. Il n'y a probablement aucun moyen (ou du moins eulerr ne peut pas le trouver) de représenter parfaitement votre combinaison avec un diagramme d'Euler en utilisant des ellipses. Vous devez soit accepter que ce soit inexact, soit essayer une autre solution.

De même, le tracé des résidus ne peut pas afficher graphiquement les résidus manquants car aucune zone ne les représente. Je suis, en passant, l'auteur de ce paquet et j'ai quelque chose de mieux en tête pour le tracé résiduel qui afficherait également les zones manquantes, mais je n'ai pas encore eu le temps de l'implémenter.


0 commentaires

3
votes

En ce qui concerne la résolution du problème, cela dépend du niveau de précision souhaité. À partir de l'algorithme nVenn , j'ai créé le package nVennR pour créer diagrammes d'Euler quasi proportionnels. Avec les mises en garde mentionnées dans le lien, vous pouvez représenter un plus grand nombre d'ensembles et afficher la taille relative de chaque région. Dans votre exemple,

library(nVennR)
myV <- createVennObj(nSets = 4, sNames = c('A', 'B', 'C', 'D'), sSizes = c(0, 26, 53, 7, 22, 5, 16, 3, 54, 10, 29, 4, 20, 5, 14, 3))
myV <- plotVenn(nVennObj = myV)

Et le résultat serait: Diagramme d'Euler

En fonction de vos besoins, cela peut ne pas être satisfaisant. La proportionnalité est dans l'aire des cercles, pas des régions (vous pouvez voir que la région 1, 2, 3, 4 - A & B & C & D - a un espace vide. Cependant, cette stratégie surmonte les limitations des formes régulières dans ces représentations mentionnées par Johan Larsson. Si vous êtes intéressé, vous trouverez plus de détails dans la vignette .


0 commentaires

0
votes

Euler peut se tromper dans un certain nombre d'instances, par exemple:

vd <- euler(c(A=23578,B=30492,C=63610,"A&B"=563,"A&C"=624,"B&C"=1600,"A&B&C"=308))
plot(vd, labels = c("1", "2", "3"), main = "overlap", cex=2)

affiche un diagramme sans régions qui se chevauchent pour les trois catégories.

Je pense que c'est simplement un outil inexact à utiliser.


0 commentaires