Le test d’égalité teste l’hypothèse H0 : µ1 = µ2. La puissance d’un test est la probabilité de rejeter l’hypothèse H0 sans commettre une erreur, c’est-à-dire lorsque µ1 est effectivement  différente de µ2.   Nous voulons donc calculer la puissance du test avec un nombre n d’individus grâce à la fonction power.t.test().   Exemple : dans une expérience nous avons un écart type de 1.7, une moyenne de 1 et on prend le seuil classique α=5%. On calcule la puissance du test avec 15 individus par groupe. power.t.test(n=15, delta=1, sd=1.7, sig.level=0.05)$power [1] 0.3430475     Si l’on décide de n’utiliser que 15 individus dans l’expérimentation, alors onRead More →

Le test non-paramétrique de Wilcoxon permet de tester l’égalité de deux moyennes lorsque l’hypothèse de normalité n’est pas validée. L’hypothèse H0 est « les moyennes sont égales » ou « la moyenne vaut une valeur x ». Pour réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire et que les lois suivies par les deux variables étudiées soient les mêmes. Pour tester l’hypothèse H0 on utilise la fonction wilcox.test(). A<-subset(iris,Species== »setosa »)[,4] #échantillonnage de la largeur des pétales chez l’espèce Setosa.   B<-subset(iris,Species== »versicolor »)[,4] #échantillonnage de la largeur des pétales chez l’espèce Versicolor.      #On test si la moyenne de la largeur des pétales de l’espèce Setosa vaut 0.5 : wilcox.test(A,0.5)Read More →

Le test de Student permet de tester l’égalité de deux moyennes. L’hypothèse H0 est « les moyennes sont égales » ou « la moyenne vaut une valeur x ». Pour réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire de chaque individu et que les ces deux échantillons suivent une loi Normale. Pour tester l’hypothèse H0 on utilise la fonction t.test(). data(iris) A<-subset(iris,Species== »setosa »)[,2] #On isole la 2ème colonne : la largeur des sépales   On commence par tester la normalité de cette variable grâce au test de Shapiro : shapiro.test(A)           Shapiro-Wilk normality test   data:  A W = 0.9717, p-value = 0.2715   La p-value est supérieurRead More →

Les fonction colSums() et rowSums() permettent de calculer les sommes respectivement, sur les colonnes et les lignes d’une matrice. Les fonction colMeans() et rowMeans() permettent de calculer les moyennes respectivement, sur les colonnes et les lignes d’une matrice.   m <- matrix(data = c(12,15,14,13,16,18,15,5,14,11,10,17,4,6,17,16), nrow=4, ncol=4) #On crée une matrice à 4 colonnes et 4 lignes   colSums(m)        #On fait la somme sur les colonnes [1] 54 54 52 43   rowSums(m)       #On fait la somme sur les lignes [1] 46 50 56 51   colMeans(m)      #On fait la moyenne sur les colonnes [1] 13.50 13.50 13.00 10.75   rowMeans(m)       #On fait la moyenne surRead More →

Je viens de découvrir la fonction ave.. il s’agit d’une fonction extremement rapide qui permet de calculer une moyenne (ou autre chose..) par groupe. elle est trés efficace par rapport à des combinaisons de by et autres do.call # mettons nous dans un cas ou nous voulons calculer le score moyenne des hommes d’une part , et des femme d’autre part data<-data.frame(cbind(c(rep(« homme »,4),rep(« femme »,5)),c(1:4,3:7)))names(data)<-c(« genre », »score »)data$score<-as.numeric(data$score)dataattach(data)cbind(data,ave(score,genre)) L’efficacité d’ave se retrouve surtout sur les tres gos jeux de données…Read More →

L’objectif est de calculer une moyenne sur des réplicats techniques/biologiques.Tous les réplicats d’une condition doivent avoir le même nom. Tout d’abord on crée une matrice d’accueil pour les résultats.Nombre de niveaux : le tableau initial contient y réplicats pour z conditions, donc y * z lignes.La matrice d’accueil n’aura donc plus que z lignes. Prenons l’exemple du jeu de données « iris ».Calculons les moyennes par variété pour chaque variable. data(iris)niveaux<-length(levels(iris$Species))iris.moyenne<-matrix(nrow=niveaux, ncol=(ncol(iris)-1))#ensuite on calcule la moyenne pour chaque condition, par variablefor (i in 1:(ncol(iris)-1)){iris.moyenne[,i]<-tapply(iris[,i], iris$Species, mean)}#il n’y a plus qu’à améliorer l’allure des résultatscolnames(iris.moyenne)<-colnames(iris[, 1:4])rownames(iris.moyenne)<-levels(iris$Species)iris.moyenne On peut également créer une matrice pour des écarts-types par exemple, en remplaçantRead More →

Pour comparer 2 moyennes, vous pouvez utiliser le test de student. On se place dans le cas où l’on a deux séries de valeurs dont on veut comparer la moyenne.Les conditions pour utiliser ce test sont en pratique très peu contraignantes et il n’est pas vraiment nécessaire de s’embêter avec la normalités des données car : le test de student est très robuste à la non normalité des données dès que l’on a plus de 30 individus (n peut même descendre à 15), on a toujours quelque chose qui suit (plus ou moins) une loi normale les tests de normalité sont très très peu puissantsRead More →

Est-ce que la valeur associée à votre variable est comprise entre deux autres valeurs ? Vous le saurez en faisant appel à between, du package {dplyr} ! {dplyr} est un package du tidyverse que l’on a jamais fini de découvrir. Regorgeant de fonctions facilitant la manipulation de données, ce package répond à quasiment toutes les questions que vous pourriez vous poser sur vos données… Et par exemple : comment savoir si une valeur est entre deux autres valeurs. Pour le savoir, direction between, qui prendra trois paramètres : votre valeur, la valeur de la borne de droite, et la valeur de la borne de gauche.Read More →

Issu du package magrittr et disponible dans le tidyverse, le pipe vous permet de passer de : library(tidyverse) data(« population ») head(summarise(group_by(filter(population, year > 1999),country),moyenne = mean(population))) à population %>% filter(year > 1999) %>% group_by(country) %>% summarise(moyenne = mean(population)) %>% head() Plus clair, n’est-ce pas ! Alors, comment ça marche ? C’est très simple : l’élément à gauche de %>% se retrouve en premier argument de la fonction à droite. Autrement dit, f(x,y) s’écrit x %>% f(y). Comment faire si l’élément de gauche n’est pas le premier argument de celui de droite ? Vous pouvez y faire référence en le remplaçant par un point : list(c(1,2,3), c(4,5,6),Read More →

La fonction recast(), du package reshape2, permet d’obtenir une table de contingence en une seule étape à partir d’un data.frame. La fonction renvoie un data.frame.   library(reshape2) # On charge le package reshape2   airquality#En 2 étapes :  aqm <- melt(airquality, id=c(« Month », « Day »), na.rm=TRUE) #On passe d’un format “Wide” à un format “Long” dcast(aqm, Month ~ variable, mean, margins = TRUE) #On obtient une table de contingence contenant la moyenne de chaque variable en fonction du mois  #En 1 seule étape :  recast(airquality, Month~ variable, id.var = 5:6, mean, na.rm=TRUE, margins=TRUE) #La fonction recast() permet d’obtenir une table de contingence en 1 seule étape  Read More →