Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Normalité & tests
2 participants
Page 1 sur 1
Normalité & tests
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.
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)
Test de Wilcox pour le genre & l'âge d'ADN :
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 !
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
Re: Normalité & tests
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 :
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
- 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
droopy- Nombre de messages : 1156
Date d'inscription : 04/09/2009
Re: Normalité & tests
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. (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 :
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
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. (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
Cracramon- Nombre de messages : 24
Date d'inscription : 11/01/2016
Re: Normalité & tests
Ok, donc après avoir séparé mes données en deux groupes
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é ?
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 ?
- 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
Re: Normalité & tests
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
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- Nombre de messages : 1156
Date d'inscription : 04/09/2009
Re: Normalité & tests
- 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
Sujets similaires
» normalité
» normalité des données
» normalité et corrélation
» Test T et Normalité
» test de normalité
» normalité des données
» normalité et corrélation
» Test T et Normalité
» test de normalité
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|