L'application de la théorie des réponses aux items dans la comparaison des résultats aux tests d'acquisition:cas du Cameroun( Télécharger le fichier original )par Karima BELHAJ Institut national de statistique et d'économie appliquée Maroc - Ingénieur d'état 2012 |
Annexe III
#création d'une fonction qui estime les paramètre du modèle# #sur 50% de l'échantillon tirer aléatoirement# estimation<- function (data11) { echantillon <- sample(1:nrow(data11), ceiling(nrow(data11)*0.5)) y<-ltm(data11[echantillon, ] ~ z1) coef<-coef(y)} estimation(data11) #appeler la fonction 5 fois avec la fonction replicate()# resultat <- replicate(5, estimation(data11)) resultat[1,1,1] resultat[1,1,] #calculer la moyenne de l'indice de difficulté de l'item # #FIN5F__E dans les cinq itération# mean(resultat[1,1,]) #toutes les moyennes et variances de tout les items# #et des deux indices# apply(resultat, MARGIN = c(1,2),FUN=mean) apply(resultat, MARGIN = c(1,2),FUN=var)
#Importation des données au format csv # data11<-read.csv(" C:/Users/acer/Desktop/stage/data11.csv", header = TRUE,sep = ",") # data05<-read.csv(" C:/Users/acer/Desktop/stage/data05.csv", header = TRUE,sep = ",") # summary(data05) ############### #library# ############### library(ltm) # ############################################################# #le modèle à deux paramètres non contraint (BIR)# ############################################################# #Données PASEC# P<- ltm(data11 ~ z1) Y<-coef(P) #indice de difficulté (2011)# y<-Y[1:33,1] y<- as.matrix(y) #indice de difficulté des items communs (2011)# p<-Y[1:5,1] p<- as.matrix(p) #indice de discrimination des items communs (2011)# d<-Y[1:33,2] d<- as.matrix(d) #moyenne et ecart-type des indices de difficulté des items communs (2005)# mean(p) var(p) SP<-sqrt(var(p)) #Données Cameroun 2005# V<- ltm(data05 ~ z1) X<-coef(V) #indice de difficulté des items communs# v<-X[1:5,1] v<- as.matrix(v) #moyenne et ecart-type des indices de difficulté des items communs (2005)# mean(v) SV<-sqrt(var(v)) #les paramètre de transformation linéaire (slope/intercept)# slope<-SV/SP intercept<-(mean(p)*slope)+mean(v) #paramètre de difficulté de 2011 mis à l'echelle de 2005# Diff11<- y*rep(slope)+rep(intercept) Diff11[1:5,1]<- y[1:5,1] #paramètre de discrimination de 2005 mis à l'echelle de 2005# Dis11<-d/rep(slope) Dis11[1:5,1]<- d[1:5,1] #proba de réussite à l'item i# theta<-c(-1,0,1) proba11<- function(Dis11, Diff11, theta) {inv.logit(Dis11*(theta-Diff11))} score11<- function (theta) {sum(proba11(Dis11,Diff11,theta))} prcscore11<-function(theta){score11(theta)/33} #2005# #indice de difficulté (PASEC)# Diff5<-X[1:33,1] Diff5<- as.matrix(Diff5) #indice de dicrimination# Dis5<-X[1:33,2] Dis5<- as.matrix(Dis5) proba5<- function(Dis5, Diff5, theta) {inv.logit(Dis5*(theta-Diff5))} score5<- function (theta) {sum(proba5(Dis5,Diff5,theta))} prcscore5<-function(theta){score5(theta)/33} #courbe# score11_bis<-c(score11(-1), score11(0), score11(1)) score5_bis<-c(score5(-1), score5(0), score5(1)) plot ( theta,score5_bis,col="green",ylab="Estimated true score",xlab="Trait latent",ylim=c(0,30),xlim=c(-2,2)) lines ( theta,score11_bis, col="red") proba11_P<- function(Dis11, Diff11, theta1) {inv.logit(Dis11*(theta1- Diff11))} score11_P<- function (theta1) {sum(proba11(Dis11,Diff11,theta1))} proba5_P<- function(Dis5, Diff5, theta1) {inv.logit(Dis5*(theta1-Diff5))} score5_P<- function (theta1) {sum(proba11(Dis5,Diff5,theta1))} theta1<-c(-2,-1.5,-1,-0.75,-0.5,- 0.25,0,0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,2.75,3) length(theta1) length(score5_bis_P) score5_bis_P<-c(score5_P(-2),score5_P(-1.5),score5_P(-1),score5_P(- 0.75),score5_P(-0.5),score5_P(- 0.25),score5_P(0),score5_P(0.25),score5_P(0.5),score5_P(0.75),score5_P(1), score5_P(1.25), score5_P(1.5), score5_P(1.75),score5_P(2), score5_P(2.25), score5_P(2.5), score5_P(2.75),score5_P(3)) score11_bis_P<-c(score11_P(-2),score11_P(-1.5),score11_P(- 1),score11_P(-0.75),score11_P(-0.5),score11_P(- 0.25),score11_P(0),score11_P(0.25),score11_P(0.5),score11_P(0.75),score11_P(1), score5_P(1.25), score5_P(1.5), score5_P(1.75),score5_P(2), score5_P(2.25), score5_P(2.5), score5_P(2.75),score5_P(3)) plot ( theta1,score5_bis_P,col="green",ylab="Estimated true score",xlab="Trait latent",ylim=c(0,30),xlim=c(-2,2)) lines ( theta1,score11_bis_P, col="red") III. &RdI-I5 SRXLID IPisI-AIIIéERI-RI- DAI-E lI- SDEkDge Irtoys # La méthode MS est mean/sigma est appliquée # scaling_11on5_bis<-sca(old.ip=coef5,
new.ip=coef11,old.items=1:5,new.items=1:5,old.qu = NULL, new.qu
= #On récupère les coef mis à l'échelle # coef11_scaled5_bis<-scaling_11on5_bis$scaled.ip coef11scaled5bis # estimated true score # true_score <- function (coef, theta) { sum(inv.logit(coef[34:66]*(rep(theta,33)-coef[1:33]))) } # comparaison des true score # true_score2005<-c(true_score(coef5,-2),true_score(coef5,- 1.5),true_score(coef5,-1),true_score(coef5,-0.75),+ true_score(coef5,-0.5),true_score(coef5,-0.25),true_score(coef5,0),+ true_score(coef5,0.25),true_score(coef5,0.5),true_score(coef5,0.75),true_score(c oef5,1),true_score(coef5,1.5),true_score(coef5,2)) true_score_scaled5_bis <- c(true_score(coef11_scaled5_bis,- 2),true_score(coef11_scaled5_bis,-1.5),+ true_score(coef11_scaled5_bis,-1),true_score(coef11_scaled5_bis,- true_score(coef11_scaled5_bis,0),true_score(coef11_scaled5_bis,0.25),true_scor e(coef11_scaled5_bis,0.5),+ true_score(coef11_scaled5_bis,0.75),true_score(coef11_scaled5_bis,1),true_scor e(coef11_scaled5_bis,1.5),true_score(coef11_scaled5_bis,2)) theta1<-c(-2,-1.5,-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1,1.5,2) plot ( theta1,true_score2005,col="green",main="Test characteristisc curves 2005-scaled2011",type="l",ylab="Estimated true score",xlab="Ability scale",ylim=c(0,30),xlim=c(-2,2)) lines ( theta1,true_score_scaled5_bis, col="red") |
|