comparaison de plusieurs moyennes de deux groupes?

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

Thomas Rulleau
Messages : 7
Enregistré le : 15 Avr 2021, 08:30

comparaison de plusieurs moyennes de deux groupes?

Messagepar Thomas Rulleau » 15 Avr 2021, 09:17

Bonjour à tous,
Désolé du message, mais je bloque sur un script... J'ai fait le MOOC R, j'utilisais statistica il y a peu, je progresse, mais j'ai encore des progrès à faire...
et je m'énerve sur ce script R.

J'ai à comparer deux groupes (sain versus patho) sur différents tests cliniques avec des données numériques continues.

Je voulais faire un test de comparaison. Je peux comparer les moyennes une a une avec un t test. Ça c'est ok.

Je voulais voir aussi s'il y avait des interactions, je pensais donc faire une régression linéaire. êtes vous ok?
J'ai donc fait :
Script <- lm (groupe ~ valeur 1 + valeur 2 +...., data= dataframe)
Mais ça ne fonctionnait pas, avec ce retour : Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : NA/NaN/Inf dans 'y'

Du coup, je le demande si je ne monte pas mon script dans le mauvais sens,
Faut-il écrire:
Script <- lm ( valeur 1 + valeur 2 +.... ~groupe, data= dataframe)
Là ça fonctionne, mais j'ai un doute sur ce que je calcule en fait...

Merci de vos lumières, si vous pouvez m'aider !
Thomas

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Pierre-Yves Berrard » 15 Avr 2021, 09:22

Bonjour,
La première syntaxe a l'air correcte.
Le message en rouge est relativement explicite : il y a des valeurs manquantes ou issues de divisions par zéro dans une colonne (probablement `groupe`).
PY

Thomas Rulleau
Messages : 7
Enregistré le : 15 Avr 2021, 08:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Thomas Rulleau » 15 Avr 2021, 09:27

merci de ce retour. Mes groupes sont répartis en deux modalités ("controle" et "deficient"). Je n'ai pas de valeur manquante, ni division... Je suis désolé de la trivialité probable de ma question.
Ma fonction describe donne ça :

Factor
groupe controle deficient
Count 30 30
Percent 50 50
Mode >1 mode



Je ne sais pas si ça aide?

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Pierre-Yves Berrard » 15 Avr 2021, 09:54

Il faudrait un extrait de vos données nous permettant de reproduire l'erreur.
PY

Thomas Rulleau
Messages : 7
Enregistré le : 15 Avr 2021, 08:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Thomas Rulleau » 15 Avr 2021, 10:10

merci encore de ce retour.
La fonction "describe(result)" donne celà. Dois-je mettre plus de données pour que ça soit plus clair? N'hésitez pas à me redire comment éclaircir.

Code : Tout sélectionner

Description of result

 Numeric
               mean      sd     min  median   max valid.n
X             40.50   26.68    1.00   40.50    80      60
groupe12       1.50    0.50    1.00    1.50     2      60
Moyenne_acc    0.72    0.15    0.40    0.70     1      60
Moyenne_TR  4575.35 2278.15 1571.00 4067.50 12282      60
MM_D           7.75    3.57    2.00    8.00    16      60
VMIQ.ext      57.47   26.46   24.00   51.00   120      60
VMIQ.int      67.00   32.42   24.00   60.00   120      60
QuickDash     28.57   10.53   11.00   31.50    52      60
MMSE          26.85    2.11   24.00   27.00    30      60
QuickDash2    39.97   23.92    0.00   46.50    93      60

 Factor
         
groupe    controle deficient
  Count         30        30
  Percent       50        50
Mode >1 mode

Thomas Rulleau
Messages : 7
Enregistré le : 15 Avr 2021, 08:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Thomas Rulleau » 15 Avr 2021, 10:31

et mon script sur cette partie :

Code : Tout sélectionner

GuiLM_groupe <- lm(groupe ~ Moyenne_acc + Moyenne_TR + MM_D + VMIQ.ext + VMIQ.int + MMSE, data = result)
summary(GuiLM_groupe)


avec cette réponse :
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : NA/NaN/Inf dans 'y'


merci encore pour votre aide !

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Mickael Canouil » 15 Avr 2021, 10:52

Bonjour,

Vous n'avez toujours pas fourni un extrait de votre jeux de données comme suggéré par Pierre-Yves.
Veuillez suivre le lien de son message et lire celui-ci pour que nous puissions véritablement vous aider.

Cordialement,1
Mickaël
mickael.canouil.fr | rlille.fr

Thomas Rulleau
Messages : 7
Enregistré le : 15 Avr 2021, 08:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Thomas Rulleau » 15 Avr 2021, 11:39

merci pour ces retours. Désolé, je pensais que ça serait plus lisible en tableau. Je refais la manip avec les conseil
Je suis donc sur un dataframe de 30 sujets de deux groupes en "factor" ( "deficient" et "controle") avec ce jeu de données :

Code : Tout sélectionner

Result < - structure(list(X = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L,
24L, 25L, 26L, 27L, 28L, 29L, 30L, 51L, 52L, 53L, 54L, 55L, 56L,
57L, 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L,
70L, 71L, 72L, 73L, 74L, 75L, 76L, 77L, 78L, 79L, 80L), groupe = c("controle",
"controle", "controle", "controle", "controle", "controle", "controle",
"controle", "controle", "controle", "controle", "controle", "controle",
"controle", "controle", "controle", "controle", "controle", "controle",
"controle", "controle", "controle", "controle", "controle", "controle",
"controle", "controle", "controle", "controle", "controle", "deficient",
"deficient", "deficient", "deficient", "deficient", "deficient",
"deficient", "deficient", "deficient", "deficient", "deficient",
"deficient", "deficient", "deficient", "deficient", "deficient",
"deficient", "deficient", "deficient", "deficient", "deficient",
"deficient", "deficient", "deficient", "deficient", "deficient",
"deficient", "deficient", "deficient", "deficient"), groupe12 = c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Dessus_acc = c(0.73,
0.93, 0.93, 0.9, 1, 0.93, 0.7, 0.67, 0.7, 0.8, 0.9, 0.97, 0.76,
0.7, 0.53, 0.87, 0.57, 0.9, 0.3, 1, 0.7, 0.87, 0.5, 0.93, 0.7,
0.73, 0.83, 1, 0.76, 0.97, 0.66, 0.73, 0.9, 0.47, 0.9, 0.67,
0.93, 0.77, 0.53, 1, 0.93, 0.97, 1, 0.47, 0.97, 0.73, 0.43, 0.73,
0.83, 0.5, 0.77, 0.43, 0.5, 0.73, 0.5, 0.77, 0.87, 0.27, 0.83,
0.4), Dessous_acc = c(0.33, 0.97, 0.8, 1, 1, 0.4, 0.5, 0.63,
0.63, 0.73, 0.2, 0.93, 0.43, 0.57, 0.87, 0.93, 0.67, 0.47, 0.8,
0.8, 0.5, 0.97, 0.3, 0.97, 0.87, 0.67, 0.57, 0.6, 0.87, 0.87,
0.43, 0.37, 0.17, 0.57, 0.87, 0.93, 0.7, 0.73, 0.7, 1, 1, 0.27,
0.67, 0.67, 0.93, 0.83, 0.67, 0.57, 0.63, 0.57, 0.33, 0.87, 0.97,
0.5, 1, 0.67, 0.9, 0.83, 0.43, 0.58), Moyenne_acc = c(0.53, 0.95,
0.87, 0.95, 1, 0.67, 0.6, 0.65, 0.67, 0.77, 0.55, 0.95, 0.59,
0.63, 0.7, 0.9, 0.62, 0.68, 0.55, 0.9, 0.6, 0.92, 0.4, 0.95,
0.78, 0.7, 0.7, 0.8, 0.81, 0.92, 0.54, 0.55, 0.53, 0.52, 0.88,
0.8, 0.82, 0.75, 0.62, 1, 0.97, 0.62, 0.83, 0.57, 0.95, 0.78,
0.55, 0.65, 0.73, 0.53, 0.55, 0.65, 0.73, 0.62, 0.75, 0.72, 0.88,
0.55, 0.63, 0.49), Dessus_TR = c(7962L, 4410L, 3951L, 2880L,
2680L, 3635L, 5427L, 1445L, 2959L, 3746L, 4091L, 3605L, 1871L,
4894L, 7005L, 3026L, 1876L, 3220L, 3099L, 2282L, 2561L, 4391L,
3631L, 3088L, 2714L, 2912L, 4638L, 5441L, 2009L, 2988L, 4652L,
10785L, 4873L, 2837L, 3844L, 4688L, 2630L, 5076L, 5437L, 5291L,
2736L, 3985L, 3285L, 7362L, 3187L, 3208L, 3864L, 3793L, 7081L,
5401L, 4471L, 6419L, 4060L, 7454L, 12877L, 4351L, 4212L, 16407L,
5937L, 3866L), Dessous_TR = c(5233L, 3754L, 5204L, 2239L, 2277L,
5379L, 9184L, 2349L, 2426L, 4459L, 5671L, 3751L, 1063L, 4691L,
5130L, 4554L, 2316L, 3744L, 3834L, 2977L, 2610L, 3475L, 2619L,
3978L, 2637L, 3130L, 5178L, 9176L, 2100L, 2582L, 8207L, 14356L,
9390L, 2589L, 4467L, 4666L, 3176L, 5047L, 5356L, 4420L, 2687L,
8679L, 3371L, 5120L, 3797L, 3992L, 3113L, 3417L, 7500L, 4120L,
5234L, 5537L, 3392L, 11078L, 10431L, 5186L, 3905L, 9532L, 6606L,
3154L), Moyenne_TR = c(7109L, 4076L, 4529L, 2543L, 2478L, 4158L,
6992L, 1885L, 2706L, 4087L, 4378L, 3677L, 1571L, 4803L, 5844L,
3818L, 2114L, 3399L, 3634L, 2591L, 2581L, 3908L, 3251L, 3541L,
2671L, 3016L, 4857L, 6842L, 2058L, 2796L, 6096L, 11975L, 5579L,
2701L, 4150L, 4675L, 2864L, 5062L, 5391L, 4856L, 2711L, 5000L,
3320L, 6043L, 3486L, 3625L, 3409L, 3643L, 7272L, 4761L, 4810L,
5978L, 3659L, 9101L, 11654L, 4731L, 4059L, 12282L, 6205L, 3510L
), MM_D = c(5L, 6L, 6L, 12L, 15L, 9L, 10L, 11L, 16L, 8L, 9L,
11L, 12L, 13L, 8L, 12L, 10L, 11L, 11L, 8L, 10L, 12L, 11L, 13L,
9L, 11L, 8L, 3L, 10L, 14L, 4L, 3L, 3L, 2L, 6L, 3L, 8L, 5L, 6L,
2L, 8L, 3L, 6L, 5L, 4L, 8L, 4L, 6L, 4L, 6L, 8L, 9L, 9L, 4L, 2L,
9L, 6L, 2L, 6L, 10L), VMIQ.ext = c(58L, 47L, 32L, 25L, 48L, 47L,
24L, 120L, 33L, 63L, 59L, 24L, 24L, 51L, 76L, 24L, 45L, 48L,
39L, 50L, 42L, 24L, 57L, 77L, 80L, 59L, 52L, 90L, 28L, 48L, 71L,
34L, 66L, 28L, 110L, 58L, 48L, 51L, 120L, 72L, 58L, 90L, 77L,
45L, 48L, 48L, 48L, 65L, 85L, 119L, 24L, 73L, 24L, 60L, 96L,
48L, 120L, 84L, 24L, 60L), VMIQ.int = c(87L, 59L, 72L, 24L, 28L,
82L, 26L, 120L, 35L, 57L, 42L, 34L, 24L, 65L, 75L, 83L, 50L,
31L, 39L, 77L, 51L, 24L, 60L, 77L, 58L, 59L, 50L, 120L, 24L,
24L, 81L, 27L, 79L, 25L, 118L, 97L, 81L, 108L, 120L, 97L, 59L,
96L, 108L, 120L, 96L, 48L, 49L, 87L, 108L, 120L, 24L, 96L, 24L,
60L, 115L, 48L, 116L, 48L, 24L, 84L), QuickDash = c(19L, 26L,
21L, 28L, 17L, 25L, 17L, 19L, 11L, 21L, 16L, 30L, 15L, 20L, 12L,
24L, 14L, 16L, 11L, 22L, 18L, 11L, 25L, 15L, 14L, 13L, 30L, 29L,
22L, 21L, 35L, 33L, 39L, 34L, 33L, 44L, 35L, 34L, 35L, 40L, 34L,
40L, 36L, 37L, 52L, 41L, 33L, 39L, 37L, 41L, 40L, 35L, 39L, 35L,
40L, 42L, 34L, 43L, 34L, 38L), MMSE = c(24L, 30L, 28L, 25L, 29L,
28L, 30L, 30L, 29L, 27L, 29L, 29L, 29L, 30L, 24L, 26L, 28L, 28L,
26L, 29L, 24L, 29L, 30L, 28L, 28L, 28L, 29L, 25L, 29L, 29L, 24L,
24L, 25L, 26L, 24L, 25L, 29L, 30L, 24L, 27L, 24L, 24L, 27L, 27L,
24L, 26L, 28L, 25L, 24L, 25L, 28L, 24L, 28L, 26L, 24L, 24L, 26L,
27L, 27L, 28L), QuickDash2 = c(18L, 34L, 23L, 39L, 14L, 32L,
14L, 18L, 0L, 23L, 11L, 43L, 9L, 20L, 2L, 30L, 7L, 11L, 0L, 25L,
16L, 0L, 32L, 9L, 7L, 5L, 43L, 41L, 25L, 23L, 55L, 50L, 64L,
52L, 50L, 75L, 55L, 52L, 55L, 66L, 52L, 66L, 57L, 59L, 93L, 68L,
50L, 64L, 59L, 68L, 66L, 55L, 64L, 55L, 66L, 70L, 52L, 73L, 52L,
61L)), class = "data.frame", row.names = c(NA, -60L))



est-ce plus clair?

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Pierre-Yves Berrard » 15 Avr 2021, 11:56

La variable à gauche du ~ est la variable expliquée. Elle doit obligatoirement être numérique.
L'erreur vient du fait qu'ici elle est catégorielle.
PY

Thomas Rulleau
Messages : 7
Enregistré le : 15 Avr 2021, 08:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Thomas Rulleau » 15 Avr 2021, 12:01

Ok, merci beaucoup de ce retour. Je comprends mieux.
Mais du coup, comment fais-je sur R si je veux faire cette comparaison de plusieurs moyennes de variables en fonction du groupe?

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Pierre-Yves Berrard » 15 Avr 2021, 15:29

Je pense qu'il faut se poser cette dernière question dans l'absolu, avant de voir comment faire concrètement dans R.
PY

Thomas Rulleau
Messages : 7
Enregistré le : 15 Avr 2021, 08:30

Re: comparaison de plusieurs moyennes de deux groupes?

Messagepar Thomas Rulleau » 16 Avr 2021, 06:05

Merci pour ce retour. Du coup, j'ai un doute sur l'endroit où poster mon message.
Je résume mon soucis:
Je compare deux populations, 30sujets par groupe, sur des tests cliniques.
Je peux faire une comparaison de moyenne sur chaque item avec un t-test. Ok, j'ai fait la comparaison sans soucis.

Mais si je veux faire toutes les comparaisons en même temps, et vérifier qu'il y a des variantions communes, que fais je? Parce que du coup, ma variable a expliquer est bien le groupe? Les variables explicatives toutes les moyennes... Donc régression logistique ? Mais je ne retombe pas sur les résultats des t tests (logique) ce que j'aurais eu avec une régression linéaire... Mais je ne peux pas faire une régression linéaire car ma variable a expliqur est binaire...

Je sais que je fais une erreur dans mon raisonnement, suite à nos échanges j'ai repris plusieurs manuels sans mettre le doigt dessus. Auriez vous la gentillesse de me dépanner?
A vous lire,


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité