Évaluer les hypothèses des tests classiques dans R
Dans les procédures paramétriques classiques, nous supposons souvent la normalité et une variance constante pour le terme d'erreur du modèle. Les méthodes d'exploration de ces hypothèses dans un cadre ANOVA/ANCOVA/MANOVA sont discutées ici. Les diagnostics de régression sont couverts par la régression linéaire multiple.
Valeurs aberrantes
Les valeurs aberrantes pouvant affecter gravement la normalité et l'homogénéité de la variance, les méthodes de détection des observations disparates sont décrites en premier lieu.
# Detect Outliers in the MTCARS Data
library(mvoutlier)
outliers <-
aq.plot(mtcars[c("mpg","disp","hp","drat","wt","qsec")])
outliers # show list of outliersPropulsé par
Normalité univariée
Vous pouvez évaluer la normalité d'une variable à l'aide d'un graphique Q-Q.
# Q-Q Plot for variable MPG
attach(mtcars)
qqnorm(mpg)
qqline(mpg)Propulsé par
Des écarts importants par rapport à la ligne suggèrent des violations de la normalité.
Vous pouvez également effectuer un test de normalité de Shapiro-Wilk avec la fonction shapiro.test(x), où x est un tableau numérique. Des fonctions supplémentaires pour tester la normalité sont disponibles dans le paquet nortest</a >.
# Test Multivariate Normality
mshapiro.test(M)Propulsé par
Si nous avons un vecteur aléatoire normal multivarié p x 1, la distance de Mahalanobis au carré entre x et μ sera distribuée en chi-carré avec p degrés de liberté. Nous pouvons utiliser ce fait pour construire un graphique Q-Q afin d'évaluer la normalité multivariée.
# Graphical Assessment of Multivariate Normality
x <- as.matrix(mydata)# n x p numeric matrix
center <- colMeans(x)# centroid
n <- nrow(x); p <- ncol(x); cov <- cov(x);
d <-
mahalanobis(x,center,cov)# distances
qqplot(qchisq(ppoints(n),df=p),d,
main="QQ Plot Assessing Multivariate Normality",
ylab="Mahalanobis D2")
abline(a=0,b=1)Propulsé par
Homogénéité des variances
La fonction bartlett.test( ) fournit un test paramétrique d'échantillon K de l'égalité des variances. La fonction fligner.test( ) permet d'effectuer un test non paramétrique de la même manière. Dans les exemples suivants, y est une variable numérique et G est la variable de regroupement.
# Bartlett Test of Homogeneity of Variances
bartlett.test(y~G, data=mydata)# Figner-Killeen Test of Homogeneity of Variances
fligner.test(y~G, data=mydata)Propulsé par
La fonction hovPlot( ) du paquet HH fournit un test graphique de l'homogénéité des variances basé sur Brown-Forsyth. Dans l'exemple suivant, y est numérique et G est un facteur de regroupement. Notez que G doit être de type facteur.
# Homogeneity of Variance Plot
library(HH)
hov(y~G, data=mydata)
hovPlot(y~G,data=mydata)Propulsé par
Homogénéité des matrices de covariance
MANOVA et LDF supposent l'homogénéité des matrices de variance-covariance. L'hypothèse est généralement testée avec le M de Box. Malheureusement, le test est très sensible aux violations de la normalité, ce qui conduit à un rejet dans la plupart des cas typiques. Le M de Box est disponible via la fonction boxM dans le paquet biotools</a >.
Dans les procédures paramétriques classiques, nous supposons souvent la normalité et une variance constante pour le terme d'erreur du modèle. Les méthodes d'exploration de ces hypothèses dans un cadre ANOVA/ANCOVA/MANOVA sont discutées ici. Les diagnostics de régression sont couverts par la régression linéaire multiple.
Valeurs aberrantes
Les valeurs aberrantes pouvant affecter gravement la normalité et l'homogénéité de la variance, les méthodes de détection des observations disparates sont décrites en premier lieu.
La fonction aq.plot() du paquet mvoutlier</a > vous permet d'identifier les valeurs aberrantes multivariées en traçant le carré ordonné des distances de Mahalanobis robustes des observations par rapport à la fonction de distribution empirique du MD2i. L'entrée consiste en une matrice ou un cadre de données. La fonction produit 4 graphiques et renvoie un vecteur booléen identifiant les valeurs aberrantes.
Normalité univariée
Vous pouvez évaluer la normalité d'une variable à l'aide d'un graphique Q-Q.
Des écarts importants par rapport à la ligne suggèrent des violations de la normalité.
Vous pouvez également effectuer un test de normalité de Shapiro-Wilk avec la fonction shapiro.test(x), où x est un tableau numérique. Des fonctions supplémentaires pour tester la normalité sont disponibles dans le paquet nortest</a >.
Normalité multivariée
La MANOVA suppose une normalité multivariée. La fonction mshapiro.test( ) du paquet mvnormtest</a > produit le test de Shapiro-Wilk pour la normalité multivariée. L'entrée doit être une matrice numérique.
Si nous avons un vecteur aléatoire normal multivarié p x 1, la distance de Mahalanobis au carré entre x et μ sera distribuée en chi-carré avec p degrés de liberté. Nous pouvons utiliser ce fait pour construire un graphique Q-Q afin d'évaluer la normalité multivariée.
Homogénéité des variances
La fonction bartlett.test( ) fournit un test paramétrique d'échantillon K de l'égalité des variances. La fonction fligner.test( ) permet d'effectuer un test non paramétrique de la même manière. Dans les exemples suivants, y est une variable numérique et G est la variable de regroupement.
La fonction hovPlot( ) du paquet HH fournit un test graphique de l'homogénéité des variances basé sur Brown-Forsyth. Dans l'exemple suivant, y est numérique et G est un facteur de regroupement. Notez que G doit être de type facteur.
Homogénéité des matrices de covariance
MANOVA et LDF supposent l'homogénéité des matrices de variance-covariance. L'hypothèse est généralement testée avec le M de Box. Malheureusement, le test est très sensible aux violations de la normalité, ce qui conduit à un rejet dans la plupart des cas typiques. Le M de Box est disponible via la fonction boxM dans le paquet biotools</a >.
Pratiquer
Suivez le cours Introduction aux statistiques en R</a > pour développer davantage vos compétences statistiques.