Analyses statistiques: les tests khi-deux utilisés et leur résultats

Ces méthodes statistiques permettent de tester l'adéquation d'une série de données à une famille de lois de probabilités ou, comme c'est le cas dans cette étude, de tester l'indépendance entre deux variables aléatoires. Pour l'applicabilité du test, on utilise en général le critère de Cochran de 1954 selon lequel toutes les classes i, j doivent avoir une valeur théorique non nulle (E i, j ≥ 1), et que 80 % des classes doivent avoir une valeur théorique supérieure ou égale à 5.

Dans notre cas nous avons évalué si un certain nombre de réponses des agriculteurs concernant la reproduction des plantes étaient corrélées avec certains critères sociaux décrivant ces agriculteurs. Ces critères sociaux sont le genre (mâle ou femelle), l'âge (réparti en deux classes: inférieur à 35 ans, ou plus vieux),  les trois sites de l'étude, la première plante choisie, et le niveau scolaire.

Les analyses statistiques ont été effectuées avec le logiciel R (3.3.1) et l'interface Rstudio (0.99.902). Le test du Khi carré de Pearson avec p-valeur simulée (basée sur 10.000 répétitions) a été utilisé pour évaluer les associations entre les facteurs (fonction 'chisq.test'). Après préparation des données sous R, les données ont été traitées selon l'exemple de calcul ci-dessous:


# D'abord changer le répertoire
setwd("D:/Cocotier/Texte/PROJET/2014_projects/Agropolis_fondation/RCI_REPROCROP/REPROCROP_data/Calculs/Cecile")
# Ensuite sélectionner l'ensemble du programme 

z<-chisq.test(don$How, don$Sex, simulate.p.value = TRUE, B = 10000)
z

# résultat:
Pearson's Chi-squared test with simulated p-value (based on 10000 replicates)
data:  don$How and don$Sex
X-squared = 51.731, df = NA, p-value = 9.999e-05

# another equivalent way :
# tabdon <- table(don$How, don$Sex, dnn=c("typology", "gender"))
# chisq.test(tabdon, simulate.p.value = TRUE, B = 10000)
z$stdres


Résultats des tests


Questions
Social traits
X-squared
p-value
How do plant reproduce ?
Site
34.804
0.0004

Gender
51.731
0.0001

Age
9.2776
0.1566

Schooling
13.431
0.0362

First chosen plant
42.61
0.0134
Do all plants reproduce the same way?
Site
19.688
0.0006

Gender
21.305
0.0001

Age
1.0593
0.5803

Schooling
9.3578
0.0069

First chosen plant
15.204
0.0550
Where does your knowledge came ?
Site
14.321
0.1580
Not recoded (7 classes)
Gender
40.465
0.0001

Age
1.1753
0.9489

Schooling
81.06
0.0001

First chosen plant
41.735
0.0005
Where does your knowledge came ?
Site
14.962
0.0185
Recoded in 4 classes
Gender
36.691
0.0001

Age
2.2089
0.5383

Schooling
20.324
0.0002

First chosen plant
32.148
0.0014

Le test Chi deux pour les âges ne sont pas significatifs pour la première question, il faudrait voir s'il ne devienne pas en enlevant ceux qui répondent "Je ne sais pas". Pour cela nous avons utilisé la syntaxe:

z<- chisq.test(don$How[!don$How=="nsp"], dc$Age2[!don$How=="nsp"], simulate.p.value = TRUE, B = 10000)
Le résultat reste non significatif, avec un p-value = 0.1139.

Intégralité du programme R:

# test de How avec les variables
# attention ce n'est pas dc$Sco mais dc$NivE (fait et transcrit)
z<-chisq.test(don$How,dc$Reg, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(don$How,dc$Sex, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(don$How,dc$Age2, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(don$How,dc$NivE, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(don$How,dc$P1, simulate.p.value = TRUE, B = 10000)

# test de TTID avec les variables
# attention ce n'est pas dc$Sco mais dc$NivE (fait et transcrit)
z<-chisq.test(dc$TTid,dc$Reg, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(dc$TTid,dc$Sex, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(dc$TTid,dc$Age2, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(dc$TTid,dc$NivE, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(dc$TTid,dc$P1, simulate.p.value = TRUE, B = 10000)
# essai avec age à 3 classes au lieu de 2 donne le même résult non significatif
z<-chisq.test(dc$TTid,dc$Age2, simulate.p.value = TRUE, B = 10000)

# test de Who avec les variables
# Attention who est recodé sur 4 donc pour who il faut travailler sur don et non dc (fait et transcrit)
z<-chisq.test(don$Who,dc$Reg, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(don$Who,dc$Sex, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(don$Who,dc$Age2, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(don$Who,dc$NivE, simulate.p.value = TRUE, B = 10000)
z<-chisq.test(don$Who,dc$P1, simulate.p.value = TRUE, B = 10000)
z
summary(z)
z$residuals