PARTIE 1
Tout supprimer
rm(list=ls())
Créer vecteur
VecteurA=c(0,6,7,7,9,10,24)
Somme, ou somme à l’intérieur du vecteur
sum() /// sum(VecteurA)
Longueur d’un objet, ou longueur du vecteur
length() /// length(VecteurA)
Moyenne ou moyenne d’un vecteur
mean() /// mean(VecteurA)
Valeurs minimales et maximales d’un objet ou d’un vecteur
range() /// range(VecteurA)
Médiane ou médiane d’un vecteur
median() /// median(VecteurA)
Tout les quantiles, ou tout les quantiles d’un vecteur
quantile() /// quantile(VecteurA)
PARTIE 2
Trouver la valeur à partir de la position
Extraire l'element en troisieme position
V1[3]
V2[3]
Extraire les elements en 6eme et 10eme position
V1[c(6,10)]
Extraire les elements de la position 4 a 7
V1[4:7]
Extraire tous les elements sauf celui a la position 2
V1[-2]
Extraire tous les elements sauf ceux aux positions 1,3 et 5
V1[-c(1,3,5)]
Extraire les elements differents de 10
V1[V1!=10]
Extraire les elements inferieurs a 6 ou superieur ou egal a 14
V1[V1<6 |V1 >= 14]
Trouver des positions à partir des valeurs
Quelles positions ont les valeurs differentes de 6 et de 10?
which(V1!=6 & V1 !=10)
Quelle est la position des valeurs minimales et maximales du vecteur?
which(V1 == min(V1) | V1 == max(V1))
Calculer la somme des 5 premiers elements
sum(V1[1:5])
Calculer la moyenne des elements situes aux positions 1, 8 et 9
mean(V1[c(1,8,9)])
Calculer la moyenne sans prendre en compte les elements aux positions 2, 7 et 10
mean(V1[-c(2,7,10)])
Calculer la moyenne des elements superieurs ou egaux a 8
mean(V1[V1>=8])
Calculer la somme des elements differents de 10 et de 12
sum(V1!=10 | V1!=12)
Creer un nouveau vecteur sans les valeurs minimales et maximales
V11 = V1[-c(which(V1==min(V1)),which(V1==max(V1)))]
Calculer la racine carree de la somme des elements de la position 7 a la derniere
sqrt(sum(V1[7:length(V1)]))
Creer un nouveau vecteur fusionnant les deux vecteurs crees au debut
V3=c(V1,V2)
Trier le nouveau vecteur par ordre croissant des elements, puis par ordre decroissant des elements
sort(V3)
sort(V3,decreasing=TRUE) #décroissant
PARTIE 3
rm(list=ls())
Data = read.table(file.choose(),header=T,sep=";",dec=",")
A partir du premier vecteur, creer et nommer une matrice contenant 2 colonnes et 5 lignes
M1=matrix(V1,ncol=2,nrow=5)
Dans cette matrice, quelle est la valeur de l'element de la ligne 4 de la colonne 2?
M1[4,2]
Creer un dataframe contenant les trois vecteurs
D1= data.frame(V1,V2,Vville)
Dans ce dataframe, quelle est la valeur de l'element de la ligne 6 de la colonne 1?
D1[6,1]
Renommer les colonnes du dataframe avec les noms suivants : temps, score, ville
colnames(D1)=c("temps","score","ville")
Quelle est la valeur de l'element de la ligne 9 de la colonne ville?
D1[9,"ville"]
Extraire les elements de la colonne 2 du dataframe
D1[,2]
Extraire les elements de la ligne 8 du dataframe
D1[8,]
Calculer la moyenne de la colonne temps
mean(D1[,"temps"])
Calculer la moyenne de la colonne score sur les lignes 1, 3, 5, 7 et 9
mean(D1[c(1,3,5,7,9),2])
Ajouter, et nommer, une colonne dans le dataframe correspondant au vecteur suivant : chiffres de 1 à 10
D1=cbind(D1,sujet=1:10)
Ajouter, et nommer, une colonne dans le dataframe correspondant au produit des deux premieres colonnes
D1=cbind(D1,produit=D1[,1]*D1[,2])
Dupliquer la colonne ville en lui donnant le nom "ville2"
D1=cbind(D1,"ville2"=D1[,3])
PARTIE 4
Rassembler les vecteurs dans un dataframe (en nommant le dataframe)
D1=data.frame(V1,V2)
Renommer les colonnes du dataframes "VD1" et "VD2"
colnames(D1)=c("VD1","VD2")
Calculer les statistiques descriptives de la VD1 et de la VD2
summary(D1[,1])
summary(D1[,2])
Calculer la variance de la VD1 et de la VD2 (avec la fonction, puis sans en decomposant la formule [voir les formules sur Moodle])
var(D1[,1])
var(D1[,2])
Moy1=mean(D1[,1])
Moy2=mean(D1[,2])
ecartM1=c(D1[,1]-Moy1)
ecartM2=c(D1[,2]-Moy2)
ecartM1C=c(ecartM1^2)
ecartM2C=c(ecartM2^2)
SomM1C=sum(ecartM1C)
SomM2C=sum(ecartM2C)
S1=SomM1C/(length(D1[,1])-1)
S2=SomM2C/(length(D1[,2])-1)
Calculer la correlation de Pearson entre la VD1 et la VD2 (avec la fonction, puis sans en decomposant la formule)
cor(D1[,1],D1[,2])
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(D1[,1],D1[,2])
Importer, et nommer, le fichier de donnees disponible sur Moodle (data_TD3)
DATAP=read.table(file.choose(),header=T,sep=";",dec=",")
Tester les hypotheses suivantes puis proposer une phrase de conclusion pour chacune.
Hypothese 1: Plus les participants sont ages, moins ils apprecient la tache.
cor.test(DATAP[,2],DATAP[,5])
Hypothese 2: Le temps mis pour completer la tache est positivement correle au score obtenu a cette tache.
cor.test(DATAP[,3],DATAP[,5])
Representer graphiquement le score des participants en fonction de leur age
plot(DATAP[,3],DATAP[,4])
Ajouter la droite de regression lineaire au graphique
ab <- lm(DATAP$Score~DATAP$Age)
plot(DATAP$Age,DATAP$Score)+abline(ab)
Calculer les coefficients de la droite de regression lineaire en utilisant les formules
a <- cov(D1$VD1, D1$VD2)/var(D1$VD1)
b <- mean(D1$VD2)-a*mean(D1$VD1)
PARTIE 5
Tester l'hypothese suivante et interpreter le resultat: Plus les participants sont ages, plus ils apprecient la musique folk.
cor.test(dataF$age,dataF$appreciation)
Il existe une relation positive significative, d'intensite moyenne, entre l'age des participants et leur score d'appreciation de la musique folk (r=.58, p<.001).
Creer un nuage de points representant le score d'appreciation en fonction de l'age
(variable age en abscisses et la variable appreciation en ordonnees).
Ajouter un titre au graphique
Renommer les axes du graphique
Ajuster les limites des axes (-3 à 25 pour l'appreciation ; 15 à 80 pour l'age)
Graph1 = plot(dataF$age,dataF$appreciation,main= "Score d'appreciation en fonction de l'age.", ylab= "Appreciation", xlab= "Age", ylim= c(-3, 25), xlim= c(15,85))
Calculer les coefficients de la droite de regression lineaire (a et b)
a1 <- cov(dataF$appreciation, dataF$age)/var(dataF$age)
b1 <- mean(dataF$appreciation)-a1*mean(dataF$age)
Verifier les resultats avec une fonction permettant de trouver les parametres a et b
ab = lm(dataF$appreciation~dataF$age)
!!variable en ordonnees **en fonction (~)** de la variable en abcisses
Ajouter la droite de regression lineaire sur le nuage de points
plot(dataF$age,dataF$appreciation)+abline(ab)
J’etudie la relation entre la population de cigognes et le nombre de bebes dans les villes de Savoie. Pour cela, je vais recenser dans 15 villes de Savoie le nombre de cigognes nichant sur la commune ainsi que le nombre de bebes declares dans l’annee ecoulee.
Faire les memes etapes qu'a l'exercice 1 (test de correlation, graphique, coefficients de la droite) pour tester l'hypothese suivante: Plus il y a de cigognes sur la commune, plus il y a de bebes.
cor.test(dataC$cigognes,dataC$bebes)
Graph2 = plot(dataC$cigognes,dataC$bebes,main= "nb de bebes en fonction des cygognes", ylab= "bebes", xlab= "cygognes")
PARTIE 6
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)
dataS = 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(dataS$essai1)
moy_e2 <- mean(dataS$essai2)
moy_e3 <- mean(dataS$essai3)
moy_e4 <- mean(dataS$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(dataS$essai1)
et_e2 <- sd(dataS$essai2)
et_e3 <- sd(dataS$essai3)
et_e4 <- sd(dataS$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(dataS$essai1, dataS$essai4, main="Nombre moyen d'echecs aux essais 1 et 4", ylab="Nombre moyen d'echecs", ylim=c(0,25), names=c("essai 1", "essai 2"))
PARTIE 7
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.
Determiner le t-test a realiser pour tester l'hypothese du psychologue, ainsi que la lateralite de l'hypothese.
test pour echantillon appariés, hypothèse unilatérale
Calculer le t observe permettant de tester l'hypothese du chercheur (a l'aide de la formule sur Moodle)
tobs1=mean(dataS$essai1-dataS$essai4)/(sd(dataS$essai1-dataS$essai4)/sqrt(length(dataS$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)
Calculer les bornes de l'intervalle de confiance a 95% (a l'aide de la formule sur Moodle)
bornsup=MoyD+tcrit1*(SD/sqrt(length(diff)))
borninf=MoyD-tcrit1*(SD/sqrt(length(diff)))
Verifier ces informations a l'aide de la fonction du t-test
t.test(dataS$essai1,dataS$essai4, paired=T, alternative="greater", var.equal=T) #"greater" car hypothese: essai1 > esssai 4
t.test(dataS$essai4,dataS$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.
PARTIE 8
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).
Determiner le t-test a realiser pour tester l'hypothese du chercheur
test t pour echantillon unique, hypothèse unimatérale
Calculer le t observe permettant de tester l'hypothese du chercheur (a l'aide de la formule sur Moodle)
M1=mean(dataD$QI)
SD=sd(dataD$QI)
Tobs1= ((M1-70)/(SD/sqrt(length(dataD$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
tcrit1 = qt(p=.05,df=14,lower.tail=F)
Calculer les bornes de l'intervalle de confiance a 95% (a l'aide de la formule sur Moodle)
BorneSup = M1+tcrit1*(SD/sqrt(length(dataD$QI)))
BorneInf = M1-tcrit1*(SD/sqrt(length(dataD$QI)))
Verifier ces informations a l'aide de la fonction du t-test
t.test(dataD$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.
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.
T de Student: exemple
t(ddl)=tobs, p<.001 → Si p valeur < .001
t(ddl)=tobs, p=.038 → Si p valeur > .001
Moyenne et écart-type de chaque groupe
Corrélation: exemple
r=.65, p<.001
Partager