Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Les posteurs les plus actifs de la semaine
Aucun utilisateur

-17%
Le deal à ne pas rater :
Casque de réalité virtuelle Meta Quest 2 128 Go Blanc (+29,99€ ...
249.99 € 299.99 €
Voir le deal

Normalité & tests

2 participants

Aller en bas

Normalité & tests Empty Normalité & tests

Message par Cracramon Dim 28 Mai 2017 - 16:37

Bonjour à toutes et à tous !

Je travaille avec des âges d'ADN issus du tumeur. Sans rentrer dans les détails, l'âge d'ADN correspond à l'âge "réel" biologique des personnes. Si l'on prend deux personnes de 50 ans (âge chronologique) par exemple et qu'une a une peau qui semble bien plus vieille que celle de l'autre, on peut déduire que l'âge de son ADN pour les cellules de sa peau est plus important que celui qui a une peau en meilleur état alors que leur âge chronologique est le même.

Je possède un fichier avec l'âge d'ADN pour les tumeurs cancéreuses de 50 personnes, ainsi que leur âge chronologique et différents types de variables qualitatives : leurs origines (blanc, latino, noir, etc), le stade du cancer (t1,t2, etc),etc et quantitatives : Le nombre de jours depuis le dernier suivi médical, le nombre de jour depuis la mort si le patient est décédé, etc.

On me demande s'il y a une corrélation entre l'âge d'ADN et les différentes variables cliniques. Pour cela je dois utiliser les tests statistiques appropriés (on me dit que les variables continues & catégorielles doivent être traitées différement).

Je suis novice dans le domaine et je ne suis pas sûr de procéder correctement, du coup, si quelqu'un pouvait me confirmer que je faisais les choses de la bonne manière et tire les bonnes conclusions, cela m'aiderait énormément !

Dans un premier temps, j'ai décidé de vérifier la normalité de mes âges d'ADN qui sont pour moi une variable continue.
shapiro.test(df_tumor$RNAAGE)
data: df_tumor$RNAAGE
W = 0.94696, p-value = 0.02563

La p-value que je reçois m'indique que mes données ne suivent pas une distribition normale, si je ne dis pas de bêtise.
Du coup, je me suis dit que j'allais me tourner vers des approches non-paramétriques.

La première variable que je voulais comparer avec mes âges d'ADN est le statut vital, si la personne est en vie ou morte. Toutes les valeurs sont soit 1 ou 0.
En me basant sur le récapitulatif en annonce : https://statistiques.forumpro.fr/t3014-quel-test-choisir-l-analyse-differentielle-univariee
j'ai eu le sentiment que j'étais dans le cas :
1 - Variable continue VS variable dichotomique
- Si 2 mesures et non normalité de la variable continue: test de Wilcoxon (approche non paramétrique)

Par la suite, j'ai voulu comparé mes âges d'ADN, est le genre : mâle ou femelle.
j'ai eu le sentiment d'être dans la même cas de figure.
Test de Wilcoxon pour le statut vital & l'âge d'ADN (noté ici RNA age au lieu de DNA age dû à une erreur de ma part)
> wilcox.test(df_tumor$RNAAGE,df_tumor$vital_status)

Wilcoxon signed rank test with continuity correction

data:  df_tumor$RNAAGE
V = 1275, p-value = 7.79e-10
alternative hypothesis: true location is not equal to 0

Test de Wilcox pour le genre & l'âge d'ADN :
> wilcox.test(df_tumor$RNAAGE,df_tumor$gender)
Error in wilcox.test.default(df_tumor$RNAAGE, df_tumor$gender) :
 'y' doit être numérique

Dès lors, avant même d'analyser les résultats, je me suis demandé si j'avais effectivement utilisé le bon test. On me précise ici que ma variable doit être numérique.
J'ai pensé alors pour les deux cas, utiliser plutôt un test de Kruskal-Wallis...
Si vous pouviez déjà me confirmer mes intuitions ? Me dire si je devrais faire des prétraitements sur mes données ?
Ce serait super sympa, merci !

Cracramon

Nombre de messages : 24
Date d'inscription : 11/01/2016

Revenir en haut Aller en bas

Normalité & tests Empty Re: Normalité & tests

Message par droopy Lun 29 Mai 2017 - 8:47

Bonjour,

Pffff quand je lis ton poste je désespère de la sacro-sainte règle de la normalité qui est à chaque fois très mal appliquée. Ca n'a rien de personnel, c'est juste quelque chose de récurrent qui provient probablement de la manière dont les statistiques sont enseignées.

Prends un exemple théorique avec deux groupes dont tu sais que les valeurs suivent des lois normales mais avec des moyennes différentes du genre 4 et 10 mais dont l'écart-type est similaire, disons 1. Quand tu mélanges les valeurs de ces deux groupes, est-ce que tu t'attends à ce que les données suivent une loi normale ? La réponse est dans la question : non. Si tu représentes la distribution des valeurs elle sera clairement bimodale, mais si tu représentes la distribution groupe par groupe alors chaque distribution sera effectivement normale :
Code:
library(ggplot2)
g1 <- rnorm(100, 4, 1)
g2 <- rnorm(100, 10, 1)
tab <- data.frame(X = c(g1, g2), Gr = gl(2, 100))
ggplot(tab, aes(X, group = Gr, color = Gr)) + geom_density()
shapiro.test(tab$X)

        Shapiro-Wilk normality test

data:  tab$X
W = 0.88042, p-value = 1.681e-11
Ici je n'ai pas la normalité pour autant est-ce que peux utiliser un test t ? Réponse : oui !
Code:
t.test(X ~ Gr, tab, var.equal = TRUE)

        Two Sample t-test

data:  X by Gr
t = -44.631, df = 198, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -6.339768 -5.803228
sample estimates:
mean in group 1 mean in group 2
      3.981651      10.053149
cdlt
droopy
droopy

Nombre de messages : 1156
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Normalité & tests Empty Re: Normalité & tests

Message par Cracramon Lun 29 Mai 2017 - 17:14

Bonjour Droopy,
tout d'abord merci pour ta réponse et ta patience,
mon dernier cours de statistiques remonte à plus d'un an, donc il se peut qu'au lieu de l'enseignement qui soit défaillant, ce soit ma mémoire. silent (Surtout que je n'ai jamais été très doué. :p )

Je crois avoir plus ou moins saisi où tu voulais en venir avec ton exemple : Je devrais utiliser un test t pour X (ici mon âge d'ADN) par groupe (Un groupe femme, un groupe homme par ex)

Cependant, lorsque tu crées tes deux vecteurs :
Code:
g1 <- rnorm(100, 4, 1)
g2 <- rnorm(100, 10, 1)

Tu les crées avec rnorm, donc tu sais que pour chacun des groupes tu as une distribution normale, même si la moyenne est différente. Moi dans mon cas, je ne suis toujours pas sûr que mes données ont bien une distribution normale. Je devrais donc faire un test de shapiro pour chacun des groupes, c'est ça ? Et puis me tourner vers des approches non-paramétriques.

Et merci encore Smile

Cracramon

Nombre de messages : 24
Date d'inscription : 11/01/2016

Revenir en haut Aller en bas

Normalité & tests Empty Re: Normalité & tests

Message par Cracramon Lun 29 Mai 2017 - 17:50

Ok, donc après avoir séparé mes données en deux groupes

Code:
> shapiro.test(femmedna)

   Shapiro-Wilk normality test

data:  femmedna
W = 0.95538, p-value = 0.4561

> shapiro.test(hommedna)

   Shapiro-Wilk normality test

data:  hommedna
W = 0.93669, p-value = 0.07411

J'obtiens des p values qui me font rejeter l'hypothèse que l'échantillon ne provient pas d'une population à distribution normale. Mais donc pour bien faire je dois aussi vérifier l'homoscédasticité ?

Code:
> var(femmedna)
[1] 162.1123
> var(hommedna)
[1] 98.78176

J'obtiens des variances différentes. Mais ça ne veut pas forcément dire que la variance des populations dont sont issues les échantillons sont différentes. Du coup est-ce que je peux quand même utiliser un test de student pour comparer les moyennes ?

Cracramon

Nombre de messages : 24
Date d'inscription : 11/01/2016

Revenir en haut Aller en bas

Normalité & tests Empty Re: Normalité & tests

Message par droopy Mar 30 Mai 2017 - 8:48

Pour ce qui est des variances il te faut tester si les variances des populations sont différentes ou non.
voir la fonction var.test
En cas de non homogénéité des variances, certains pratiquent le test t mais avec la correction de Welch (voir un fil récent sur la question et les liens qui sont cités dedans), d'autres partent sur du non paramétriques.

cdlt
droopy
droopy

Nombre de messages : 1156
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Normalité & tests Empty Re: Normalité & tests

Message par Cracramon Mer 31 Mai 2017 - 14:32

Code:
var.test(femmedna,hommedna)

> var.test(femmedna,hommedna)

 F test to compare two variances

data:  femmedna and hommedna
F = 1.6411, num df = 19, denom df = 29, p-value = 0.2233
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.7355064 3.9418668
sample estimates:
ratio of variances
          1.641116

Ok donc visiblement, je peux utiliser un test de student.
j'ai plus qu'à refaire ça pour toutes mes variables.

Merci beaucoup !

Cracramon

Nombre de messages : 24
Date d'inscription : 11/01/2016

Revenir en haut Aller en bas

Normalité & tests Empty Re: Normalité & tests

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum