Etude de l'effet d'un paramètre sur la germination
Le graphique à réaliser
Mots clefs : courbe avec intervalles de confiance avec le logiciel R - R Project CRAN - avec barres d'erreur - intervalles de confiance - graphique avec légende - couleur - type de trait et de points - légende superposée avec le logiciel R - librairie plotCI - Chi2 - Khi2 - Chi² - Khi² - χ² - χ2
Librairie nécessaires : gplots
Pourcentage de graines germées en fonction du temps et de la température
Les données traitées dans l'exemple
Des semences différentes ont été déposées sur de la gélose amidonnée à raison de 100 graines par boîte. Au cours du temps, on compte les graines germées. Les graines sont cultivées à différentes températures (4°C, 18°C et 27°C (ou 30°C)) afin de voir l'effet de la température sur le pourcentage de graines germées.
Exemple de mise en forme des données dans un tableau
1- Le traitement des données sous le logiciel R
1- Ouvrir les données sous R
# Ouvrir le fichier tabulé
setwd("C:/adresse")
file = read.xlsx("TP1_simulation_T.xlsx")
# ATTENTION : vérifier que le fichier finit bien par .xlsx
# Renommer le contenu des colonnes : on peut aussi le faire automatiquement avec la fonction attach()
colnames(file) ; Temps = file$Temps ; Germination = file$Germination ;
Temperature = file$Temperature ; Modalite = file$Modalite
Remarque 1 : on peut aussi faire un tableau Excel à ouvrir avec la commande read.xlsx() de la librairie openxlsx.
Remarque 2 : le nom du fichier peut être remplacé par file.choose()
2- Calculer les moyennes pour chaque température et chaque valeur de temps
2.1 - Approche 1 - Niveau débutant (lourd et long)
2.1.1.- Récupérer les données de Germination et de Temps par température testée
# Créer des listes contenant les valeurs de germination et de Temps pour chaque température
G18 = Germination[Temperature==18] # Données de germination sur la température de 18°C
G18_tps = Temps[Temperature==18] # Date de relevées pour une température de 18°C
Faire de même pour les autres températures.
Remarque : cette étape n'est pas nécessaire si on maîtrise la fonction by() ci-après.
2.1.2.- Calculer les moyennes pour chaque valeur de temps avec la fonction by() (cliquer pour accéder à l'aide)
by(G18,G18_tps,mean)->moyennes
x18 <- as.numeric(names(moyennes))
y18 <- moyennes
Faire de même pour les autres températures
2.2 - Approche 2 - Niveau plus avancé (rapide) - Calculer les moyennes croisées pour chaque valeur de Temps et Température avec by()
by(Germination,file[,c(1,3)],mean)->moyennes # On calcule toutes les moyennes pour chaque valeur de la colonne 1 (Temps) et chaque valeur de la colonne 3 (Température)
#Astuce : faire ftable(moyennes) pour visualiser
x4 <- as.numeric(names(moyennes[,1]))
y4 <- moyennes[,1]
Faire de même pour les autres températures en remplaçant [,1] par [,2] et [,3]
IL EST IMPÉRATIF DE COMPRENDRE COMMENT FAIRE USAGE DE by().
3- Calculer les intervalles de confiance sur des proportions
# Cette commande permet de calculer des intervalles de confiance sur des proportions
ic18 = int.prop(y18/100,200,0.95) * 100 # *100 pour avoir des %
Faire de même pour les température à 4°C et 30°C
4- Évaluer la significativité de l'effet de la température par un test de Khi2
KHI 2 d'indépendance
4.1.- Approche 1 - Débutant - lourde et fastidieuse (mais facile à comprendre)
# Nombre de graines germées pour différentes températures au bout de 8 j
G_T4 = sum(Germination[Temperature==4&Temps==8])
G_T18 = sum(Germination[Temperature==18&Temps==8])
G_T30 = sum(Germination[Temperature==30&Temps==8])
# Nombre de graines non-germées pour différentes températures au bout de 8 j (mettre la valeur de temps final de votre expérience)
# Le nombre totale de graines par température testée est ici de 200 graines (2 boîtes).
noG_T4 = 200-G_T4
noG_T18 = 200-G_T18
noG_T30 = 200-G_T30
matrice = matrix(c(G_T4, G_T18, G_T30, noG_T4, noG_T18, noG_T30),nrow=2, byrow=T);
colnames(matrice)<-c(4,18,30) ; rownames(matrice)<-c("Germées","Non germées")
matrice
4.1.- Approche 2 - Avancé- facile (mais difficile à comprendre)
# Calculer le nombre de graines germées pour chaque température testée à Temps = 8 jours (à vous de choisir la bonne valeur de temps !!!)
by(Germination[Temps==8],Temperature[Temps==8],sum) -> G_sommes
noG_sommes <- rep(200,3) - G_sommes
matrice = matrix(c(G_sommes,noG_sommes),nrow=2,ncol=3,byrow=T)
colnames(matrice)<-c(4,18,30) ; rownames(matrice)<-c("Germées","Non germées")
khi_result = chisq.test(matrice);khi_result
#Si la p-value est > à 0.05, pas de différence significative...
# L'interprétation d'un tel Khi2 est à mettre sous le graphique.
Astuce : essayez de taper barplot(matrice,beside=T) : vous verrez l'intérêt des matrices pour faire un diagramme en bâtons à barres regroupées.
2- Tracer le graphique avec le logiciel R
1- Charger les librairies nécessaires
# Charger les librairies nécessaires
# Librairies nécessaires - commandes pour les installer
# (optionnel - ne pas faire si cela a déjà été fait une fois)
# Retirer les # pour activer ces lignes
# install.packages("gplots")
##### Chargement des librairies #####
# Chargement des librairies
library(gplots)
2- Tracer le graphique
# Tracer les courbes avec plot et points - plotCI permet d'ajouter les points et les barres d'erreur. La fonction plotCI peut être utilisée seule (type = "o") mais les types de trait des barres d'erreur et courbes seront les mêmes.
# ETAPE 1 - plot permet de tracer la première courbe
plot(x=x18, y=y18, type="l" ,sub="Le test Chi² donne une p-value de XXXXXXX" )
# Type = "l" permet de tracer juste la ligne, il faudra ajouter par la suite les points et barres d'erreur
# sub permet d'ajouter un sous-titre indiquant les valeurs de la khi2
# A ajouter comme paramètres dans cette ligne :
# xlab et ylab pour les titres des axes
# lty et col pour changer le type de trait
# ETAPE 2 - plotCI permet d'ajouter ou des courbes ou des points avec barres d'erreur - aide sur plotCI
plotCI(x=x18, y= y18, uiw= ic18 , type="p", add=TRUE,gap=0)
# add = permet de superposer ces données à l'ancien graphique
# A ajouter comme paramètres dans cette ligne :
# pch et col pour modifier les points
# gap pour moduler l'espace séparant les points et les barres d'erreur
# ETAPE 3 - il faut donc continuer d'utiliser plotCI pour ajouter les autres courbes et points
3- Ajouter la légende
legend("topleft", c("4°C", "18°C", "30°C"), lty=c(1,2,3), pch=c(16,17,15), lwd=c(1,1,2), col=c("blue","green","red")) # Voici un exemple de légende : il faut modifier lty, pch, lwd et col pour que cela correspondent aux ajouts réalisés