Science des données biologiques

Réalisé par le service d'Écologie numérique des Milieux aquatiques, Université de Mons (Belgique)

Préambule

Si vous n’avez jamais utilisé de tutoriel “learnr”, familiarisez-vous d’abord avec son interface ici.

Conformément au RGPD (Règlement Général sur la Protection des Données), nous sommes tenus de vous informer de ce que vos résultats seront collecté afin de suivre votre progression. Les données seront enregistrées au nom de l’utilisateur apparaissant en haut de cette page. Corrigez si nécessaire ! En utilisant ce tutoriel, vous marquez expressément votre accord pour que ces données puissent être collectées par vos enseignants et utilisées pour vous aider et vous évaluer. Après avoir été anonymisées, ces données pourront également servir à des études globales dans un cadre scientifique et/ou éducatif uniquement.

Objectifs

  • Appréhender la distribution du \(\chi^2\)

  • Appréhender les tests d’hypothèses

Distribution du \(\chi^2\)

Représentez graphiquement un graphique de densité de la distribution du \(\chi^2\) avec un degré de liberté valant 3

Le snippet est .icdens et renvoit les instructions suivantes :

Veuillez copier les instructions proposées ci-dessous, les snippets ne sont pas accessible dans les learnr

# Chi-square distribution (density probability) with parameter:
.df <- 1# Degree of freedom .df
.col <- 1; .add <- FALSE # Plot parameters
.x <- seq(0, qchisq(0.999, df = .df), l = 1000)  # Quantiles
.d <- function (x) dchisq(x, df = .df)           # Distribution function
.q <- function (p) qchisq(p, df = .df)           # Quantile for lower-tail prob
.label <- bquote(paste(chi^2,(.(.df))))          # Curve parameters
curve(.d(x), xlim = range(.x), xaxs = "i", n = 1000, col = .col,
  add = .add, xlab = "Quantiles", ylab = "Probability density") # Curve
abline(h = 0, col = "gray") # Baseline
# Chi-square distribution (density probability) with parameter:
.df <- 3# Degree of freedom .df
.col <- 1; .add <- FALSE # Plot parameters
.x <- seq(0, qchisq(0.999, df = .df), l = 1000)  # Quantiles
.d <- function (x) dchisq(x, df = .df)           # Distribution function
.q <- function (p) qchisq(p, df = .df)           # Quantile for lower-tail prob
.label <- bquote(paste(chi^2,(.(.df))))          # Curve parameters
curve(.d(x), xlim = range(.x), xaxs = "i", n = 1000, col = .col,
  add = .add, xlab = "Quantiles", ylab = "Probability density") # Curve
abline(h = 0, col = "gray") # Baseline
#TODO

Sur base du graphique ci-dessus, calculez la probabilité d’être supérieur au quantile valant 15 avec un degré de liberté de 3.

Le snippet est .icproba et renvoit les instructions suivantes :

pchisq(QUANTILES, df = DEGREES_OF_FREEDOM, lower.tail = TRUE)

Le snippet est .icquant et renvoit les instructions suivantes :

pchisq(15, df = 3, lower.tail = FALSE)
#TODO

Sur base du graphique ci-dessus, calculez le quantile délimitant l’aire à droite dont la probabilité est de 0.05 avec un degré de liberté de 3

qchisq(PROBABILITIES, df = DEGREES_OF_FREEDOM, lower.tail = TRUE)
qchisq(0.05, df = 3, lower.tail = FALSE)
#TODO

Calcul du \(\chi2\) à la main

Partons de la situation suivante : On propose à 45 chimpanzés 3 fruits différents comme source de nourriture. Pour chacun, on note leur premier choix.

Pommes Bananes Oranges
16 22 7

Si les chimpanzés n’ont pas de préférence alimentaire, la fréquence théorique de cette expérience devrait être de :

Pommes Bananes Oranges
0.333 0.333 0.333

Multipliez les fréquences théoriques de chaques fruit par le nombre d’observation totale (donc de chimpanzés)

Calculez le valeur du \(\chi2\) à l’aide de la formule :

\(\chi^2 = \sum\limits_{i}\frac{(a_i - \alpha_i)^2}{\alpha_i}\)

Cette valeur doit par la suite être comparé à la distribution théorique qui est de degré de liberté 2 car le degré de liberté vaut le nombre de niveaux de la variable moins 1.

\(ddl = nombre \ de \ niveaux \ de \ la \ variable -1\)

Utilisez les snippets afin de déterminer le quantiles délimitant l’aire à droite dont la probabilité est de 0.05 (seuil alpha employé en biologie)

qchisq(PROBABILITIES, df = DEGREES_OF_FREEDOM, lower.tail = TRUE)
qchisq(0.05, df = 2, lower.tail = FALSE)
# TODO

Utilisez les snippets afin de déterminer la probabilités délimitant l’aire à droite par rapport au quantile que vous avez calculé précédement

Calcul du chi2 avec R

Reprennons l’exemple des chimpanzées avec R

Pommes Bananes Oranges
16 22 7

Le snippet est .hcchi2uni et renvoit les instructions suivantes :

chisq.test(TABLE, p = PROBABILITIES, rescale.p = FALSE)

Réalisez un test de chi^2 univarié

# creation du jeu de données
alim <- data_frame(Pommes = 16, Bananes = 22, Oranges = 7)
# test du chi2
# 
# 
# creation du jeu de données
alim <- data_frame(Pommes = 16, Bananes = 22, Oranges = 7)
# test du chi2
chisq.test(alim, p = c(1/3, 1/3, 1/3), rescale.p = FALSE)
#TODO

Calculez à nouveau un test de chi2 univarié avec un plus grand nombre de chimpanzées

Pommes Bananes Oranges
160 220 70
# creation du jeu de données
alim <- data_frame(Pommes = 160, Bananes = 220, Oranges = 70)
# test du chi2
# 
# 
# creation du jeu de données
alim <- data_frame(Pommes = 160, Bananes = 220, Oranges = 70)
# test du chi2
chisq.test(alim, p = c(1/3, 1/3, 1/3), rescale.p = FALSE)
#TODO

Les valeurs de p obtenues diffèrent entre les deux tests. Ayez un réfléxion sur l’importance du nombre d’observations.

Conclusion

Bravo! Vous venez de terminer votre séance d’exercices dans un tutoriel “learnr”.

Laissez nous vos impressions sur cet outil pédagogique ou expérimentez encore dans la zone ci-dessous. Rappelez-vous que pour placer un commentaire dans une zone de code R, vous devez utilisez un dièse (#) devant vos phrases.

# Ajout de commentaires 
# ...
# Not yet...

Traitement des données I

Guyliann Engels & Philippe Grosjean