m.test() une fonction R qui choisit les tests statistiques à réaliser
Une seule fonction qui choisit les test à faire pour vous ?
Une seule fonction qui choisit les test à faire pour vous ?
Comparer les moyennes ? Comparer les médianes ? Un ou plusieurs échantillons ? Données discrètes ? Variances égales ?
m.test() du packages {KefiR} choisit le test pour vous et vous explique sa démarche.
Code à copier-coller :
install.packages("devtools") ; require(devtools) # Risque d'erreur si RTools non installé.
devtools::install_github("Antoine-Masse/KefiR")
library("KefiR")
Si vous rencontrez une difficulté à l'installer avec R-Gui, passez sous RStudio, sinon le contraire !
data(iris)
library(KefiR)
Faire un test de base :
m.test(iris[,1],iris$Species)
m.test(iris[,1],iris$Species, verbose=TRUE, return=FALSE)
On peut définir le seuil de significativité/p-value qui va permettre de basculer d'un test vers un autre avec pval (qui vaut par défaut 0.05).
La sortie permet de voir que nous avons plusieurs catégories qui suivent la loi normale. Un test de batlett permet de contrôler que la variance de ces échantillons diffère d'un échantillon à l'autre, ce qui justifie un test de Welch's.
Sortie :
1) Shapiro-Wilk test (shapiro.test()) - The samples follow the normal law. min(p-value): 0.2583147
2) More than two categories.
3) Bartlett test (bartlett.test()) - Non-identical sample variances. p-value: 0.0003345076
4) Welch’s heteroscedastic F test (oneway.test(var.equal=FALSE)) Significant differences between samples p-value: 1.505059e-28
m.test(iris[,2],iris$Species, return=TRUE, boot=TRUE)
Ce résultat de sortie, nous montre 3 groupes a, b et c significativement différents.
Un bootstrap permet de voir que la différence entre versicolor et virginica est plus fragile.
Sortie automatique de m.test() affichable ou non avec l'argument plot = FALSE ou plot = TRUE.
En effet, on est sensé trouvé les mêmes groupes dans $groups qu'avec bootstrap (dans $bootstrap$groups). Si ce n'est pas le cas, c'est que l'introduciton de hasard ne permet pas de retrouver les mêmes résultats dans 95% des cas (conf = 95%, on peut aussi changer cette valeur conf).
Warning! Bootstrap detects weaknesses in the significance of the results.
$groups
categories groups SNK
1 setosa c a
2 versicolor a c
3 virginica b b
$p.value
versicolor virginica
virginica 3.145180e-03 NA
setosa 5.497468e-17 9.077914e-10
$bootstrap
$bootstrap$groups
categories groups
"setosa" "b"
"versicolor" "a"
"virginica" "a"
$bootstrap$p.value
versicolor virginica
virginica 1.353924e-01 NA
setosa 5.757471e-13 1.942947e-06
m.test(iris[,3],iris$Species, control="setosa" , boot=FALSE, verbose=FALSE, pval = 0.01)
Cette sortie nous permet de voir une différence très significative de versicolor et virginica par rapport à setosa.
$groups
categories groups
"setosa" ""
"versicolor" "***"
"virginica" "***"
$p.value
setosa versicolor
versicolor 1.986887e-45 NA
virginica 2.780888e-49 4.900288e-22
m.test(iris[,3],iris$Species, code=TRUE, return=F)
Sortie obtenue permettant de faire le codage soi-même avec data, variable numérique et cat, variable de catégories.
by(data,cat,shapiro.test)#1)
length(unique(cat))#2)
bartlett.test(data,cat) #3)
oneway.test(data~cat,var.equal=FALSE) #4)
result <- pairwise.t.test(data,cat,pool.sd=FALSE)#5a)
library(KefiR)#5b)
catego(result)#5c)