Mode, Médiane, variance d'une variable continue

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

imen benyahya
Messages : 14
Enregistré le : 03 Oct 2022, 12:08

Mode, Médiane, variance d'une variable continue

Messagepar imen benyahya » 22 Nov 2022, 19:19

Bonsoir SVP quelqu'un peut m'aider à résoudre ce problème.
EN fait j'ai collecté des données provenant d'enquête portant sur une variable continue (âge). les données sont sous frome d'intervalle d'âge ([20,30[, [30,35[, [35,45[...) et sont enregistrées dans un tableau excel avec deux colonnes (colonne intervalle d'âge, et colonne "n" effectif correspondant pour chaque intervalle d'âge). puisque R n'arrive pas à lire la colonne intervalle d'âge j'ai choisi de partager cette colonne en deux colonnes borne inférieure de l'intervalle et borne supérieure de la façon suivante:
[img]X1 X2 n
20 30 10
30 35 30
35 45 40[/img]

Pour importer les données de EXcel vers R j'ai utilisé le code suivant:

Code : Tout sélectionner

dat <- data.frame( X1 = c(20,30,35), X2 = c(30,35,45), n = c(10, 30, 40))


et j'ai passé par la suite à calculer la fréquence en appliquant le code suivant:

Code : Tout sélectionner

data.frame(X1,X2,ci=(X1+X2)/2,Eff=n,EffCum=cumsum(n),Freq=n/sum(n),FreqCum=cumsum(n/sum(n)))


le problème est au niveau de calcul des caractéristiques de la distribution tels que le mode la moyenne la variance...
en effet j'ai essayé avec ce code

Code : Tout sélectionner

summary(dat)

mais sans succès. en effet, en suivant ce code il apparait que R n'arrive pas à comprendre que X1 et X2 sont les deux bornes de l'intervalle et il les considère comme deux variables quantitatives séparées. Ainsi, il détermine les caractéristiques pour chaque variable à part (même il considère l'effectif n comme étant une variable) de la façon suivante:

[img]X1 X2 n
Min. :16.0 Min. :18.0 Min. :10.0
1st Qu.:17.5 1st Qu.:19.5 1st Qu.:17.5
Median :19.0 Median :21.0 Median :25.0
Mean :19.0 Mean :21.0 Mean :25.0
3rd Qu.:20.5 3rd Qu.:22.5 3rd Qu.:32.5
Max. :22.0 Max. :24.0 Max. :40.0[/img]
Pouvez vous svp m'aider? comment faire pour que R comprenne que X1 et X2 sont les deux bornes de l'intervalle et que n est l'effectif correspondant pour chaque intervalle?
Merci d'avance

Facundo Muñoz
Messages : 156
Enregistré le : 04 Juil 2019, 09:58
Contact :

Re: Mode, Médiane, variance d'une variable continue

Messagepar Facundo Muñoz » 25 Nov 2022, 15:30

Bonjour Imen,

Pour vous faire aider, il vous faudra exprimer vos questions plus précisement.

Vous avez demandé un résumé (summary) du data.frame et c'est-ce que vous avez obtenu. Vous voulez la mode, moyenne et variance de quoi exactement ? Vous dites que vous voulez utiliser des bornes d'un intervale et l'effectif correspondant. Comment calculeriez-vous, avec quelle formule, ce que vous voulez calculer. Expliquez cela, et on pourra peut-être vous aider.

Cordialement,
ƒacu.-

imen benyahya
Messages : 14
Enregistré le : 03 Oct 2022, 12:08

Re: Mode, Médiane, variance d'une variable continue

Messagepar imen benyahya » 26 Nov 2022, 15:58

Bonjour Facundo,
Merci pour votre réponse. En fait je cherche les caractéristiques (mode médiane, moyenne, variance,...) de la distribution de la série âge. le problème est que pour cette série je dispose des intervalle et j'ai partagé les intervalle en borne inférieur et borne supérieur. comment je peux demander par la suite à R de calculer ces caractéristiques SVP.

Facundo Muñoz
Messages : 156
Enregistré le : 04 Juil 2019, 09:58
Contact :

Re: Mode, Médiane, variance d'une variable continue

Messagepar Facundo Muñoz » 26 Nov 2022, 17:16

Bonjour Imen,

Très bien. Merci pour la clarification.
Le problème c'est que vous n'avez pas la série age. Vous avez un résumé de la série age à partir duquel vous ne pouvez pas calculer les caractéristiques de la série originale sans faire des hipothèses supplémentaires.

Je vous propose un exemple simple :

Code : Tout sélectionner

suppressPackageStartupMessages(library(tidyverse))

## Séries d'age originales (non observées)
dat <- data.frame(
  age_1 = c(21, 21, 31, 36, 36, 36),
  age_2 = c(30, 30, 35, 45, 45, 45)
)

## Différentes moyennes
map(dat, mean)
#> $age_1
#> [1] 30.16667
#>
#> $age_2
#> [1] 38.33333

## Et pourtant, le même résumé par intervalles
dat |>
  mutate(across(.fns = ~cut(., breaks = c(20, 30, 35, 45)))) |>
  count(age_1, age_2)
#>     age_1   age_2 n
#> 1 (20,30] (20,30] 2
#> 2 (30,35] (30,35] 1
#> 3 (35,45] (35,45] 3


Comme vous voyez, deux séries qui ont des caractéristiques différentes peuvent partager exactement le même résumé par intervalles. C'est donc impossible de les distinguer.

Comment proposez vous de calculer les caractéristiques que vous souhaitez calculer ?

Cordialement,
ƒacu.-

imen benyahya
Messages : 14
Enregistré le : 03 Oct 2022, 12:08

Re: Mode, Médiane, variance d'une variable continue

Messagepar imen benyahya » 26 Nov 2022, 19:43

Bonsoir Facundo,

En fait age_1 et age_2 dans mon cas ne sont pas deux séries différentes. je possède des données provenant d'enquête. on a demandé l'âge du répondant et les réponses sont sous forme d'intervalle [20, 25[, [25, 30[, [30, 35[,... et on a déterminé l'effectif "n" pour chaque intervalle. la base de données est enregistré sous Excel. lors de l'importation le logiciel R traite les intervalle comme étant un "caractère" et non plus une variable quantitative continue voilà pourquoi j'ai choisi de partager chaque intervalle en borne inférieure et borne supérieure soit age_1=c(20,25,30) et age_2=c(25,30,35) mais je n'arrive pas à mentionner dans R que age_1 et age_2 sont les deux bornes pour chaque intervalle afin de calculer les caractérestiques.

Maxime Deniaux
Messages : 68
Enregistré le : 11 Fév 2022, 22:49
Contact :

Re: Mode, Médiane, variance d'une variable continue

Messagepar Maxime Deniaux » 27 Nov 2022, 19:02

imen benyahya a écrit :Bonsoir Facundo,

En fait age_1 et age_2 dans mon cas ne sont pas deux séries différentes. je possède des données provenant d'enquête. on a demandé l'âge du répondant et les réponses sont sous forme d'intervalle [20, 25[, [25, 30[, [30, 35[,... et on a déterminé l'effectif "n" pour chaque intervalle. la base de données est enregistré sous Excel. lors de l'importation le logiciel R traite les intervalle comme étant un "caractère" et non plus une variable quantitative continue voilà pourquoi j'ai choisi de partager chaque intervalle en borne inférieure et borne supérieure soit age_1=c(20,25,30) et age_2=c(25,30,35) mais je n'arrive pas à mentionner dans R que age_1 et age_2 sont les deux bornes pour chaque intervalle afin de calculer les caractérestiques.


Bonsoir,

ce que nous tentons de vous dire avec Facundo (car je vous ai répondu également sur l'autre post que vous avez créé), c'est que vous ne pouvez pas calculer vos indicateurs (moyenne, médiane, etc) avec le tableau dont vous nous parlez.
Vous dites que c'est une variable continue mais sa forme actuelle ne l'est pas.

Sa forme brute l'est, c'est-à-dire ce qu'a écrit Facundo dans un premier temps avec les 2 vecteurs :
age_1 = c(21, 21, 31, 36, 36, 36)
age_2 = c(30, 30, 35, 45, 45, 45))

mais sa forme en intervalle ne l'est pas.

De plus, ce qu'il vous a montré c'est que 2 séries d'âge différentes pouvaient avoir en résumé d'informations, les mêmes caractéristiques en terme d'intervalles et d'effectif mais une moyenne différente. Donc si vous n'avez que ce tableau résumé, il n'est pas possible de "deviner" qu'elle est la distribution des données brutes et donc d'obtenir vos indicateurs.

Ce n'est pas un problème de R qui ne reconnait pas ceci ou cela. Le problème réside dans la nature des données et ce que vous souhaitez en faire.

En espérant que ce soit plus clair désormais !

Bonne soirée

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

Re: Mode, Médiane, variance d'une variable continue

Messagepar Logez Maxime » 28 Nov 2022, 09:36

Bonjour,

Pour des données regroupées en intervalles et dont on dispose de la fréquences, ce qui se fait classiquement c'est de considérer la valeur moyenne des bornes et de faire des statistiques dessus.
Le plus simple en R c'est de répéter le vecteur des valeurs moyennes des intervalles par les fréquences et de faire les calculs dessus.

Code : Tout sélectionner

dta <- data.frame(age = c(25, 32.5, 40), n = c(10, 30, 40))
x <- rep(dta$age, dta$n)
mean(x)
var(x)
# ...
Cordialement,
Maxime

Facundo Muñoz
Messages : 156
Enregistré le : 04 Juil 2019, 09:58
Contact :

Re: Mode, Médiane, variance d'une variable continue

Messagepar Facundo Muñoz » 29 Nov 2022, 15:37

Bonjour,

voilà, c'était ça la réponse à ma toute première question.

Donc, vous pouvez faire justement comme cela. En répétant les valeurs des centres des intervalles autant des fois comme dit la variable n. E.g.

Code : Tout sélectionner

dat <- data.frame( X1 = c(20,30,35), X2 = c(30,35,45), n = c(10, 30, 40))

pseudo_ages <- with(
  dat[rep(seq.int(nrow(dat)), dat$n), ],
  (X1 + X2) / 2
)

mean(pseudo_ages)
#> [1] 35.3125
var(pseudo_ages)
#> [1] 27.59098
ƒacu.-

imen benyahya
Messages : 14
Enregistré le : 03 Oct 2022, 12:08

Re: Mode, Médiane, variance d'une variable continue

Messagepar imen benyahya » 04 Déc 2022, 18:10

logez, Facundo et Maxime vraiment merci pour votre aide précieuse.


Retourner vers « Questions en cours »

Qui est en ligne

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