!Bases
◎ Créer un objet: assigner un nom à un élément
◎ nom = élément(s)
◎ nom <- élément(s)
◎ élément(s) -> nom
◎ nom_objet = read.table( file.choose() , header=T , sep=";" , dec="," )
Vecteur
> vecteur1 <- c(1,2,3,4,5)
Creer un dataframe contenant les trois vecteurs
> dataframeA <- data.frame(vecteurF, vecteurG, vecteurH)
Fctions utiles
help(nom_fonction)
◎ Afficher tous les objets créés dans l’environnement
■ ls()
◎ Afficher la structure d’un objet (caractéristiques)
■ str(nom_objet)
◎ Supprimer un objet
■ rm(nom_objet)
◎ Supprimer tous les objets
■ rm(list=ls())
Calculer la somme des éléments
sum(vecteurA)
sum(c(0,6,7,7,9,10,24))
sum(vecteurB)
Calculer le nombre d’éléments
length(vecteurA)
length(vecteurB)
Calculer la moyenne des éléments
mean(vecteurA)
sum(vecteurA)/length(vecteurA)
mean(vecteurB)
Trouver les valeurs minimale et maximale
min(vecteurA)
max(vecteurA)
range(vecteurA)
min(vecteurB)
max(vecteurB)
Trouver la médiane
median(vecteurA)
median(vecteurB)
Trouver les 1er et 3ème quartiles
quantile(vecteurA)
quantile(vecteurA, probs=.25)
quantile(vecteurA, probs=.75)
quantile(vecteurA, probs=c(.25, .75))
summary(vecteurA)
Indexation : extraire certaines parties d’un objet
vecteurA [4] : Dans l’objet X, sélectionner l’élément à la n-ième position
vecteurA [-4] : Dans l’objet X, ne pas sélectionner l’élément à la nème position
vecteurA [c(4,6)] ou vecteurA [-c(4,6)] : Dans l’objet X, sélectionner ou non plusieurs éléments selon leur position
vecteurA [c(1:4)] ou vecteurA [-c(1:4)] : Dans l’objet X, sélectionner ou non les éléments allant de la position n à p
head(vecteurA, n=4) ou tail(vecteurA, n=4) : Dans l’objet X, sélectionner les n premiers (head) ou derniers (tail) éléments
vecteurA [vecteurA > 7]
vecteurA [vecteurA == 7]
vecteurA [vecteurA != 7]
vecteurA [vecteurA > 6 & vecteurA < 10]
vecteurA [vecteurA > 10 | vecteurA < 6]
R renvoie la valeur des éléments répondant à une condition
On peut utiliser >, ==, !=, &, |. Supérieur, égal, différent, Et, Ou
Même chose avec which(vecteurA > 7) : Avec which() R renvoie la position des éléments répondant à une condition
Concaténation
Quelle est la position des valeurs minimales et maximales du vecteur?
which.min(vecteurD)
which.max(vecteurD)
Calculer la somme des 5 premiers éléments
sum(vecteurD[1:5])
sum(head(vecteurD,n=5))
Calculer la moyenne des éléments situés aux positions 1, 8 et 9
mean(vecteurD[c(1,8,9)])
Calculer la moyenne sans prendre en compte les éléments aux positions 2, 7 et 10
mean(vecteurD[-c(2,7,10)])
Calculer la moyenne des éléments superieurs ou egaux a 8
mean(vecteurD[vecteurD >= 8])
Calculer la somme des éléments différents de 10 et de 12
sum(vecteurD[vecteurD != 10 | vecteurD != 12])#solution1
sum(vecteurD[which(vecteurD!=10 | vecteurD!=12)])#solution2
Creer un nouveau vecteur sans les valeurs minimales et maximales
vecteurD2 <- vecteurD[-c(which(vecteurD==min(vecteurD)), which(vecteurD==max(vecteurD)))]#solution 1
vecteurD2
vecteurD2bis <-vecteurD[vecteurD!=min(vecteurD) & vecteurD!=max(vecteurD)]#solution2
vecteurD2bis
Calculer la racine carree de la somme des éléments de la position 7 a la derniere
sqrt(sum(vecteurD[7:length(vecteurD)]))#solution 1
sqrt(sum(vecteurD[-c(1:6)])) #solution 2
#solution 3 (2 etapes)
nD <- length(vecteurD[7:length(vecteurD)]) #Etape 1: trouver le nombre d'elements entre la position 7 et la dernière
sqrt(sum(tail(vecteurD, n=nD))) #Etape 2: utiliser la fonction tail pour sélectionner les n derniers éléments
#Calculer la variance de la VD1 et de la VD2
#solution2 : decomposer la formule en plusieurs étapes
#calculer et nommer la moyenne de la VD1
moy1 <- mean(dataframeC$VD1)
#calculer les ecarts a la moyenne
ecartmoy <- dataframeC$VD1-moy1
#mettre les ecarts a la moyenne au carre
ecartmoycarre <- ecartmoy^2
#additionner les carres des ecarts a la moyenne
sommecarreecartmoy <- sum(ecartmoycarre)
#diviser la somme des carres des ecarts a la moyenne par N-1
var1 <- sommecarreecartmoy/(length(dataframeC$VD1)-1)
#solution3 : decomposer en une seule ligne
sum((dataframeC$VD1-mean(dataframeC$VD1))^2)/(length(dataframeC$VD1)-1)
Calculer l'écart-type de la VD1 et de la VD2
#solution2: decomposer en plusieurs etapes
#faire la racine de la somme des carres des ecarts a la moyenne divises par N-1 (autrement dit la racine de la variance)
sqrt(var1)
#verifier que le resultat est le meme avec et sans la fonction
Calculer la covariance entre la VD1 et la VD2 (avec la fonction, puis sans en décomposant la formule)
cov(dataframeC$VD1, dataframeC$VD2)#solution1
#solution2: decomposer en plusieurs etapes
#calculer les ecarts a la moyenne pour les deux VD (on le fait juste pour la VD2 puisque cela a ete fait plus haut pour la VD1)
moy2 <- mean(dataframeC$VD2)
ecartmoy2 <- dataframeC$VD2-moy2
#faire le produits des ecarts a la moyenne
produitecartmoy <- ecartmoy*ecartmoy2
#faire la somme des produits
sommeproduit <- sum(produitecartmoy)
#diviser la somme des produits par N-1
cov <- sommeproduit/(length(dataframeC$VD1)-1)
#solution3: decomposer en une seule ligne
sum((dataframeC$VD1-mean(dataframeC$VD1))*(dataframeC$VD2-mean(dataframeC$VD2)))/(length(dataframeC$VD1)-1)
#verifier que le resultat est le meme avec et sans la fonction
Calculer la correlation de Pearson entre la VD1 et la VD2 (avec la fonction, puis sans en décomposant la formule)
cor(dataframeC$VD1,dataframeC$VD2)#solution1
cor <- cov/(sd(dataframeC$VD1)*sd(dataframeC$VD2))#solution2
#Interpreter le resultat de la correlation
#La correlation entre la VD1 et la VD2 est forte et positive : plus le score sur la VD1 augmente, plus le score sur la VD2 est élevé (r=.76).
#Cette correlation est-elle significative?
cor.test(dataframeC$VD1,dataframeC$VD2)
#La VD1 et la VD2 correlent significativement (r=.76, p=.011).
Creer un nouveau vecteur fusionnant les deux vecteurs crees au debut
vecteurE <- c(vecteurC, vecteurD)
vecteurE
Trier le nouveau vecteur par ordre croissant des éléments, puis par ordre décroissant des éléments
sort(vecteurE) #ordre croissant
sort(vecteurE, decreasing = TRUE) #ordre decroissant
Créer un tableau
◎ Matrices : vecteur dont les éléments sont disposés en
lignes et en colonnes
◎ matrix(vecteur1, nrow= , ncol= )
◎ Dataframes : rassemblement de vecteurs
◎ data.frame(vecteur1, vecteur2, …)
◎ Indexation: nom_objet[ , ]
n° ligne, n° colonne
nom_dataframe$nom_vecteur
Renommer les colonnes du dataframes "VD1" et "VD2"
colnames(dataframeC) <- c("VD1", "VD2")
Graph
Representer graphiquement le score des participants en fonction de leur age
plot(dataframeD$Age,dataframeD$Score)#solution1: d'abord la variable en abscisses, puis celle en ordonnees
plot(dataframeD$Score~dataframeD$Age)#solution2: la variable en ordonnee en fonction de (~) la variable en abscisses
Ajouter la droite de regression lineaire au graphique
ab <- lm(dataframeD$Score~dataframeD$Age)
plot(dataframeD$Age,dataframeD$Score)+abline(ab)
Representer graphiquement la VD2 en fonction de la VD1 et ajouter la droite de regression lineaire au graphique
ab2 <- lm(dataframeC$VD2~dataframeC$VD1)
plot(dataframeC$VD1,dataframeC$VD2)+abline(ab2)
Calculer les coefficients de la droite de regression lineaire en utiliser les formules
a <- cov(dataframeC$VD1, dataframeC$VD2)/var(dataframeC$VD1)
b <- mean(dataframeC$VD2)-a*mean(dataframeC$VD1)
#verifier que les resultats sont les memes que ceux donnes avec la fonction lm()
TD6 Graph
#Exercice 1
#Dans une experience d'apprentissage, un psychologue demande à un groupe de 15 sujets de realiser
#une tache sensori-motrice comportant 25 exercices. La tache est repetee 4 fois pour chaque sujet.
#Le psychologue mesure le nombre d'exercices echoues par les sujets au 1er, 2eme, 3eme et 4eme essai
#de cet apprentissage.
#Importer, et nommer, le fichier de donnees disponible sur Moodle (data_sensorimot)
sensorimot <- read.table(file.choose(), header=T, sep=";", dec=",")
#Creer un graphique en barre representant le nombre moyen d'echecs a chaque essai.
#Ajouter un titre au graphique
#Renommer les axes du graphique
#Nommer chaque barre
#Ajuster les limites de l'axe des ordonnees
moy_e1 <- mean(sensorimot$essai1)
moy_e2 <- mean(sensorimot$essai2)
moy_e3 <- mean(sensorimot$essai3)
moy_e4 <- mean(sensorimot$essai4)
moy_essai <- c(moy_e1, moy_e2, moy_e3, moy_e4)
graph_barres1 <- barplot(moy_essai, main="Nombre moyen d'echecs \n a chaque essai", ylab="Nombre moyen d'echecs", ylim=c(0,25), names.arg=c("essai 1", "essai 2", "essai 3", "essai 4"))
#Ajouter les barres d'erreurs correspondant a l'ecart-type a chaque essai
et_e1 <- sd(sensorimot$essai1)
et_e2 <- sd(sensorimot$essai2)
et_e3 <- sd(sensorimot$essai3)
et_e4 <- sd(sensorimot$essai4)
et_essai <- c(et_e1, et_e2, et_e3, et_e4)
arrows(graph_barres1, moy_essai+et_essai, graph_barres1, moy_essai-et_essai, code=3, angle=90, length=0.05)
#code=3 : type de barre d'erreur (flèches ou trait aux extrémités, 3 pour un trait)
#angle=90 : angle entre la barre d'erreur et le trait de l'extremité
#length=0.05: longueur du trait au bout des barres d'erreur
#Creer les boites a moustaches des essais 1 et 4
#Ajouter un titre au graphique
#Renommer les axes du graphique
#Nommer chaque boite
#Ajuster les limites de l'axe des ordonnees
graph_box1 <- boxplot(sensorimot$essai1, sensorimot$essai4, main="Nombre moyen d'echecs \n aux essais 1 et 4", ylab="Nombre moyen d'echecs", ylim=c(0,25), names=c("essai 1", "essai 2"))
#Exercice 2
#Un enseignant desire comparer deux methodes d’enseignement de la methodologie en premiere annee.
#Pour la premiere methode, classique, proposee aux etudiants du groupe 1, l’enseignant corrige les exercices
#au tableau. Pour la seconde, individualisee, proposee aux etudiants du groupe 2, les étudiants travaillent
#par petits groupes et discutent entre eux des reponses aux questions.
#L’enseignant compare ensuite les moyennes a l’examen entre les etudiants ayant suivi les deux methodes.
#Importer, et nommer, le fichier de donnees disponible sur Moodle (data_enseignement)
methode <- read.table(file.choose(), header=T, sep=";", dec=",")
#Construire un graphique en barres complet representant la moyenne a l'examen pour chacune des methodes d'enseignement.
moy_classique <- mean(methode$classique)
moy_individual <- mean(methode$individualisee)
moy_methode <- c(moy_classique, moy_individual)
et_classique <- sd(methode$classique)
et_individual <- sd(methode$individualisee)
et_methode <- c(et_classique, et_individual)
graph_barres2 <- barplot(moy_methode, main="Note moyenne a l'examen en fonction \n de la methode d'enseignement", ylab="Note moyenne", ylim=c(0,20), names.arg=c("classique", "individualisee"))
arrows(graph_barres2, moy_methode+et_methode, graph_barres2, moy_methode-et_methode, code=3, angle=90, length=0.05)
#Construire les boites a moustaches de chaque methode, faire un graphique complet
graph_box2 <- boxplot(methode$classique, methode$individualisee, main="Distribution des notes a l'examen \n en fonction de la methode d'enseignement", ylab="Nombre d'echecs", ylim=c(0,25), names=c("classique", "individualisee"))
#Exercice 3
#Refaire les graphiques des exercices 1 et 2 en :
#Changeant la couleur des barres / boites
#Changeant la couleur du titre
#Changeant la taille du titre
#Changeant la couleur des barres d'erreur (pour les graphiques en barres)
graph_barres1 <- barplot(moy_essai, main="Nombre moyen d'echecs \n a chaque essai", ylab="Nombre moyen d'echecs", ylim=c(0,25), names.arg=c("essai 1", "essai 2", "essai 3", "essai 4"), col=c("#414272", "#595A84", "#717195", "#8889A7"), col.main= "goldenrod2", cex.main= 0.90)
arrows(graph_barres1, moy_essai+et_essai, graph_barres1, moy_essai-et_essai, code=3, angle=90, length=0.05, col="goldenrod2")
graph_barres2 <- barplot(moy_methode, main="Note moyenne a l'examen en fonction \n de la methode d'enseignement", ylab="Note moyenne", ylim=c(0,20), names.arg=c("classique", "individualisee"), col=c("rosybrown2", "rosybrown3"), col.main= "rosybrown4", cex.main= 0.70)
arrows(graph_barres2, moy_methode+et_methode, graph_barres2, moy_methode-et_methode, code=3, angle=90, length=0.05, col="grey50")
graph_box1 <- boxplot(sensorimot$essai1, sensorimot$essai4, main="Nombre moyen d'echecs \n aux essais 1 et 4", ylab="Nombre moyen d'echecs", ylim=c(0,25), names=c("essai 1", "essai 2"), col=c("#40A497", "#2B7C71"), col.main= "blue4", cex.main= 1.25)
graph_box2 <- boxplot(methode$classique, methode$individualisee, main="Distribution des notes a l'examen \n en fonction de la methode d'enseignement", ylab="Nombre d'echecs", ylim=c(0,25), names=c("classique", "individualisee"), col=c("coral", "coral3"), col.main= "red", cex.main= 0.75)
TD7 T-Test
#TD7
#Exercice 1
#Dans une experience d'apprentissage, un psychologue demande à un groupe de 15 sujets de realiser
#une tache sensori-motrice comportant 25 exercices. La tache est repetee 4 fois pour chaque sujet.
#Le psychologue mesure le nombre d'exercices echoues par les sujets au 1er, 2eme, 3eme et 4eme essai
#de cet apprentissage.
#Le psychologue fait l'hypothese que les participants apprennent au fur et a mesure des essais.
#Autrement dit, il fait l'hypothese que les participants feront en moyenne moins d'erreurs a l'essai 4
#comparativement a l'essai 1.
#Importer, et nommer, le fichier de donnees disponible sur Moodle (data_sensorimot)
sensorimot <- read.table(file.choose(), header=T, sep=";", dec=",")
#Determiner le t-test a realiser pour tester l'hypothese du psychologue, ainsi que la lateralite de l'hypothese.
#Il faut realiser un t-test pour echantillon apparie. Il s'agit d'une hypothese unilaterale.
#Calculer le t observe permettant de tester l'hypothese du chercheur (a l'aide de la formule sur Moodle)
#solution1: decomposer en plusieurs etapes
diff1 <- sensorimot$essai1-sensorimot$essai4
moy_diff1 <- mean(diff1)
sd_diff1 <- sd(diff1)
tobs1 <- moy_diff1/(sd_diff1/sqrt(length(diff1)))
#solution2: decomposer en une seule ligne
tobs1bis <- mean(sensorimot$essai1-sensorimot$essai4)/(sd(sensorimot$essai1-sensorimot$essai4)/sqrt(length(sensorimot$essai1)))
#Trouver le t critique a l'aide de la fonction qt(p=X , df=X , lower.tail=F)
#en remplaçant les X par les valeurs adaptee a l'experience et a l'hypothese
tcrit1 <- qt(p=.05, df=14, lower.tail=F) #unilaterale donc p=.05 sur un seul cote de la distribution; 14 ddl
#Calculer les bornes de l'intervalle de confiance a 95% (a l'aide de la formule sur Moodle)
ICinf1 <- moy_diff1-tcrit1*(sd_diff1/sqrt(length(diff1)))
ICsup1 <- moy_diff1+tcrit1*(sd_diff1/sqrt(length(diff1)))
#Verifier ces informations a l'aide de la fonction du t-test
t.test(sensorimot$essai1,sensorimot$essai4, paired=T, alternative="greater", var.equal=T) #"greater" car hypothese: essai1 > esssai 4
t.test(sensorimot$essai4,sensorimot$essai1, paired=T, alternative="less", var.equal=T) #ou "less" car hypothèse: essai4 < essai 1
#Interpreter le resultat en concluant quant a l'hypothese du psychologue.
#Rediger les resultats en normes APA.
#En considerant H0 vraie, c'est a dire s'il n'existe pas de difference significative entre l'essai 1 et 4, la probabilite d'observer la difference que l'on observe dans l'echantillon est inferieure a 1%
#On peut donc conclure avec moins de 1% de risque de se tromper, que les participants font significativement moins d'erreurs a l'essai 4 (M=9.0, SD=3.2) qu'a l'essai 1 (M=17.7, SD=3.0), t(14)=6.76, p<.001.
#L'intervalle de confiance A 95% confirme que 0 n'est pas une difference probable entre les conditions.
#Exercice 2
#Un enseignant desire comparer deux methodes d’enseignement de la methodologie en premiere annee.
#Pour la premiere methode, classique, l’enseignant corrige les exercices au tableau.
#Pour la seconde, individualisee, les étudiants travaillent par petits groupes de 5 etudiants et discutent
#entre eux des reponses aux questions. L’enseignant compare ensuite les moyennes a l’examen entre les
#etudiants ayant suivi chaque methodes.
#L'enseignant souhaite determiner laquelle des deux methodes d'enseignement est la plus efficace.
#Importer, et nommer, le fichier de donnees disponible sur Moodle (data_enseignement)
methode <- read.table(file.choose(), header=T, sep=";", dec=",")
#Faire les memes etapes qu'a l'exercice 1 (calcul du tobs, tcrit, intervalle de confiance, fonction t-test, interpretation)
#pour tester l'hypothese de l'enseignant.
#Il faut realiser un t-test pour echantillon independant Il s'agit d'une hypothese bilaterale.
#solution1: decomposer en plusieurs etapes
moy_classique <- mean(methode$classique)
moy_individual <- mean(methode$individualisee)
diff2 <- moy_classique-moy_individual
varN_classique <- var(methode$classique)/length(methode$classique)
varN_individual <- var(methode$individualisee)/length(methode$individualisee)
denominateur1 <- sqrt(varN_classique+varN_individual)
tobs2 <- diff2/denominateur1
#solution2: decomposer en une seule ligne
tobs2bis <- (mean(methode$classique)-mean(methode$individualisee))/sqrt((var(methode$classique)/length(methode$classique))+(var(methode$individualisee)/length(methode$individualisee)))
tcrit2 <- qt(p=.025, 40, lower.tail=F) #bilaterale donc p=.025 sur un seul cote de la distribution; 40 ddl
ICinf2 <- diff2-tcrit2*denominateur1 #si denominateur1 non cree avant: sqrt((var(methode$classique)/length(methode$classique))+(var(methode$individualisee)/length(methode$individualisee)))
ICsup2 <- diff2+tcrit2*denominateur1
t.test(methode$classique,methode$individualisee, paired=F, alternative="two.sided", var.equal=T)
#En considerant H0 vraie, c'est a dire s'il n'existe pas de difference significative entre les deux methodes d'apprentissage, la probabilite d'observer la difference que l'on observe dans l'echantillon est inferieure a 1%
#On peut donc conclure avec moins de 1% de risque de se tromper, que les etudiants ayant suivi la methode classique ont eu une note significativement superieure (M=12.9, SD=2.9) a celle obtenue par les etudiants ayant suivi la methode individualisee (M=10.3, SD=3.1), t(40)=2.78, p=.008.
#L'intervalle de confiance A 95% confirme que 0 n'est pas une difference probable entre les groupes.
TD 8
#TD8
#Exercice 1
#Un chercheur s'interesse a l'efficience intellectuelle d'individus ayant une deficience intellectuelle.
#15 jeunes adultes sont selectionnes parmi des deficients intellectuels et ce chercheur souhaite
#verifier qu'ils ont bien un QI<70 (seuil diagnostique d'une deficience intellectuelle).
#Importer, et nommer, le fichier de donnees disponible sur Moodle (data_deficience)
deficience <- read.table(file.choose(), header=T, sep=";", dec=",")
#Determiner le t-test a realiser pour tester l'hypothese du chercheur
#Il faut realiser un t-test pour echantillon unique. Il s'agit d'une hypothese unilaterale.
#Calculer le t observe permettant de tester l'hypothese du chercheur (a l'aide de la formule sur Moodle)
#solution1: decomposer en plusieurs etapes
diff3 <- mean(deficience$QI)-70
denominateur2 <- sd(deficience$QI)/sqrt(length(deficience$QI))
tobs3 <- diff3/denominateur2
#solution2: decomposer en une seule ligne
tobs3bis <- (mean(deficience$QI)-70)/(sd(deficience$QI)/sqrt(length(deficience$QI)))
#Trouver le t critique a l'aide de la fonction qt(p=X , df=X , lower.tail=F)
#en remplaçant les X par les valeurs adaptee a l'experience et a l'hypothese
tcrit3 <- qt(p=.05, 14, lower.tail=F) #unilaterale donc p=.05 sur un seul cote de la distribution; 14 ddl
#Calculer les bornes de l'intervalle de confiance a 95% (a l'aide de la formule sur Moodle)
ICinf3 <- mean(deficience$QI)-tcrit3*denominateur2 #si denominateur2 non cree avant: sd(deficience$QI)/sqrt(length(deficience$QI))
ICsup3 <- mean(deficience$QI)+tcrit3*denominateur2
#Verifier ces informations a l'aide de la fonction du t-test
t.test(deficience$QI, mu=70, alternative="less", var.equal=T) #hypothese: QI < 70
#Interpreter le resultat en concluant quant a l'hypothese du psychologue.
#Rediger les resultats en normes APA.
#En considerant H0 vraie, c'est a dire s'il n'existe pas de difference significative entre le QI des patients de l'echantillon et le seuil de 70, la probabilite d'observer la difference que l'on observe dans l'echantillon est inferieure a 1%
#On peut donc conclure avec moins de 1% de risque de se tromper, que les patients ont un QI significativement inferieur a 70 (M=63.1, SD=4.2), t(14)=-6.37, p<.001.
#L'intervalle de confiance nous indique qu'il y a 95% de chance que la moyenne de la population se situe entre 61.24 et 65.03; la norme de 70 est en dehors de cet intervalle.
#Pour les exercices suivants, tester l'hypothese du chercheur a l'aide de la fonction du t-test. Interpreter les resultats.
#Exercice 2 (data_detection)
#Dans une experience de detection de cible (des O parmi des Q ou des $ parmi des S), un chercheur souhaite connaitre laquelle des deux taches est la plus difficile. Pour cela, il fait passer les deux taches a 18 etudiants. Le chercheur mesure le nombre de bonnes reponses par sujet pour chacune des taches.
#T-test apparie; hypothèse bilaterale
detection <- read.table(file.choose(), header=T, sep=";", dec=",")
tobs4 <- (mean(detection$tache1-detection$tache2))/(sd(detection$tache1-detection$tache2)/sqrt(length(detection$sujets)))
tcrit3 <- qt(p=.025, 17, lower.tail=F) #bilaterale donc p=.05 sur les deux cotes de la distribution; 17 ddl
t.test(detection$tache1, detection$tache2, paired=T, alternative="two.sided", var.equal=T)
#On peut donc conclure avec moins de 1% de risque de se tromper, que les participants ont un nombre de bonnes reponses different a la tache 1 (M = 20.7, SD = 5.6) et a la tache 2 (M = 16.3, SD = 4.6), t(17) = 15.8, p < .001.
#L'intervalle de confiance nous indique qu'il y a 95% de chance que la vraie difference entre les conditions se situe entre 3.79 et 4.96.
#Exercice 3 (data_raisonnement)
#Dans le cadre d'une recherche nationale realisee en 2023, une epreuve de raisonnement numerique est administree a 30 eleves de troisieme. Les resultats d'une recherche realisee 30 ans plus tot, basee sur la meme epreuve et sur la totalite des eleves de troisieme, donnaient une moyenne de 50. Un chercheur souhaite determiner si les capacites de raisonnement numerique des eleves ont change en 30 ans.
#T-test univarie (norme 50); hypothese bilaterale
raisonnement <- read.csv(file.choose(), header=T, dec=",",sep=";")
tobs5 <- (mean(raisonnement$score)-50)/(sd(raisonnement$score)/sqrt(length(raisonnement$score)))
t.test(raisonnement$score, mu=50, alternative="two.sided", var.equal=T)
#On ne peut pas conclure avec moins de 5% de risque de se tromper que les capacites de raisonnement numerique des eleves de 3eme actuels (M = 50.8, SD = 13.6) sont differentes de celles des eleves d'il y a 30 ans, t(29) = 0.31, p = .761.
#L'intervalle de confiance nous indique qu'il y a 95% de chance que la vraie moyenne de la population se situe entre 45.67 et 55.86; la norme est à l'interieur de cet intervalle, il s'agit donc d'une moyenne probable pour notre population.
#Exercice 4 (data_tabac)
#Un chercheur a lu dans une etude que la consommation de tabac augmente le stress perçu. Il reproduit l'etude aupres des etudiants. Il selectionne parmi 12 etudiants non fumeurs et 12 etudiants fumeurs. Il leur fait passer un questionnaire a partir duquel il calcule un score de stress perçu.
#T-test independant; hypothese unilaterale
tabac <- read.csv(file.choose(), header=T, dec=",",sep=";")
tobs6 <- (mean(tabac$fumeurs)-mean(tabac$nonfumeurs))/sqrt((var(tabac$fumeurs)/length(tabac$fumeurs))+(var(tabac$nonfumeurs)/length(tabac$nonfumeurs)))
t.test(tabac$fumeurs, tabac$nonfumeurs, alternative="greater", var.equal = T)
#On ne peut pas conclure avec moins de 5% de risque de se tromper que le score de stress percu des fumeurs (M = 10.6, SD = 2.6) est plus eleve que celui des non fumeurs (M = 10.2, SD = 3.1), t(22) = 0.07, p = .474.
#L'intrevalle de confiance nous indique qu'il y a 95% de chance que la difference vraie entre les deux groupes se situe entre -2.05 et + l'infini; 0 est donc une valeur probable.