Université de CAEN M2-MASS Modèles de régression
1 Profil complet enseignement
1.1 Description
On veut modéliser l’appréciation notée d’un enseignement fait par un étudiant en fonction de trois variables à
l’aide d’un modèle linéaire.
La nature de l’enseignemnt
Les prérequis
Le niveau du cours.
nature prerequis niveau note
1 professionnel M1 difficile 7
2 professionnel M1 facile 6
3 professionnel sans difficile 6
4 professionnel sans facile 4
5 theorique M1 difficile 9
6 theorique M1 facile 8
7 theorique sans difficile 9
8 theorique sans facile 7
1.2 Enoncé
1. Lire les données contenues dans le fichier enseignement.tx.
2. Quels sont le codage associé aux variables qualitatives. Changer le codage par defaut de toutes les variables
qualitatives en utilissant le contraste R contr.sum. Interprétez les nouvelles inconnues associées à ce contraste.
3. Constuire un modèle linéaire expliquant la moyenne des notes par un modèle additif sans interactions. Quel sont
les degrés de libertés utilisés ? quel est le nombre minimal de personne que l’on aurait pu interroger ?
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.0000 0.1768 39.60 0.0000
nature1 -1.2500 0.1768 -7.07 0.0021
prerequis1 0.5000 0.1768 2.83 0.0474
niveau1 0.7500 0.1768 4.24 0.0132
4. Soit x= (nature, prerequis, niveau)un stimuli, calculer la note prédite pour x:E(
b
Yx)de deux manières
différentes.
5. Quel est le stimuli le moins apprécié, le mieux apprécié.
6. soit x2 X 2une modalité de la variable prerequis et x3 X 3une modalité de la variable niveau. On appelle
variation de la variable
b
Ypour la variable X1:P X 1:
range(X1)(x2, x3) = maxx1∈X 1,x
1∈X 1|E(
b
Y(x1,x2,x3)
b
Y(x
1,x2,x3))|
Expliquez pourquoi range(X1)ne dépend ni de x2ni de x3.
7. On appelle importance de la variable X1le nombre exprimé en pourcentage de variation total.
100 range(X1)
range(X1) + range(X2) + range(X3)
Calculer alors le tableau des importances de chaque variables
nature prerequis niveau
50 20 30
8. Dans SAS, lire la table et faire l’analyse conjointe du profil avec l’aide de la procédure transreg
proc transreg utilities data=table;
title2 ’Analyse conjointe metrique’;
model linear(note) = class(nature prerequis niveau / zero=sum);
run;
AC 1 francois.kauffmann@unicaen.fr
Université de CAEN M2-MASS Modèles de régression
1.3 Solutions
1.3.1 Solution R
require(xtable)
X=read.table(’enseignement.txt’,header=TRUE)
summary(X) # tout est en facteur
contrasts(X$nature) # contr.treatment ordre alphabetique
options("contrasts") # defaut unordered="contr.treatment" ordered="contr.poly"
# modifier les contrastes
contr.sum(5) # delta(ieme modalite) - delta(dernire modalite)
contrasts(X$nature) =contr.sum(2)
contrasts(X$prerequis)=contr.sum(2)
contrasts(X$niveau) =contr.sum(2)
contrasts(X$niveau) # difficile -facile
# modèle linéaire sans interaction
Z=model.matrix(~nature+prerequis+niveau,data=X)
m=lm(note~nature+prerequis+niveau,data=X)
# interprétation des coefficients du modèle
nature="professionnel";prerequis="M1";niveau="difficile"
note.pred1=predict(m,newdata=data.frame(nature,prerequis,niveau))
note.pred=
coef(m)[["(Intercept)"]]+
coef(m)[["nature1"]]*((nature=="professionnel") -(nature=="therorique"))+
coef(m)[["prerequis1"]]*((prerequis=="M1") -(prerequis=="sans"))+
coef(m)[["niveau1"]]*((niveau=="difficile")-(niveau=="facile"))
# R2
summary(m) # 0.95
# stimuli les moins apréciés
X[X$note==min(X$note),]
# stimuli les plus apréciés
X[X$note==max(X$note),]
# importance
noms=strsplit(deparse(formula(m)),"~")[[1]][2]
noms=strsplit(noms,’+’,extended=FALSE)[[1]]
noms=gsub(" ","",noms)
importances=list()
for (nom in noms) importances[[nom]]=2*max(abs(coef(m)[grep(nom,names(coef(m)))]))
importances=unlist(importances)
importances=importances/sum(importances)*100
# graphiques
X.pred=X;X.pred$note=predict(m)
#pdf(file="ps/plot_design.pdf")
plot.design(note~.,data=X.pred)
#dev.off()
# non métrique pas de succes dans R
# echec prog lineaire quadratique
# echec reg multinomiale ordonnée
# ERREUR G PAS DEFINI POSITIVE....
library(quadprog)
Y=matrix(0,nrow(X),nrow(X))
for (c in 1:ncol(Y)) {
for (l in c:nrow(X)) {
Y[l,c]=1
}
}
Y=cbind(Y, -Z)
G=t(Y)%*%Y
Gl=rep(0,nrow(G))
C=diag(1,nrow(X),ncol(Y))
C=t(C[-1,])
C0=rep(0.5,ncol(C))
solve.QP.compact(G*2,Gl,C,C0) # ERR par def positif....
AC 2 francois.kauffmann@unicaen.fr
Université de CAEN M2-MASS Modèles de régression
# regression ordinale singulier 7 dl pour les termes constants
tmp=polr(factor(note,ordered=TRUE)~nature,data=X)
AC 3 francois.kauffmann@unicaen.fr
Université de CAEN M2-MASS Modèles de régression
1.3.2 Solution SAS
/*
----------------------------------------------------------------
INITIALISATION
----------------------------------------------------------------
*/
%let titre=Preferences en enseignement;
%let home=C:\users\francois\SAS\enseignement;/*HOME DIRECTORY*/
options user="C:\users\francois\SAS\lib"; /* LIBRAIRIE UTILISATEUR */
goptions reset=all; /* option par defaut */
proc datasets library=user KILL;run; /* effecement librairie */
%let idate=%sysfunc(datetime());
%let date=%sysfunc(putn(&idate,datetime20.));
title1 "&titre";
footnote j=r "&titre" j=l "FK &date";/* les textes sont entre quote */
title &titre;
/*
----------------------------------------------------------------
LECTURE TABLE
----------------------------------------------------------------
*/
data table;
infile "&home\enseignement.txt" firstobs=2;
input nature ~$15. prerequis ~$15. niveau ~$15. note;
;run;
/* preferences */
proc sort data=table;
by note;
run;
/*
----------------------------------------------------------------
ANALYSE CONJOINTE
----------------------------------------------------------------
*/
proc transreg utilities data=table;
title2 ’Analyse conjointe metrique’;
model linear(note) = class(nature prerequis niveau / zero=sum);
run;
ods latex file="&home\transreg.tex";
proc transreg utilities data=table;
title2 ’Analyse conjointe non metrique’;
model monotone(note) = class(nature prerequis niveau / zero=sum);
output out=conjoint;
run;
ods latex close;
title2 h=1 ’Analyse conjointe non metrique’;
symbol1 v=plus i=join;
axis1 order=(1 to 10) label=(angle=90 ’f(note)’);
axis2 order=(1 to 9) label=(’note’);
proc gplot data=conjoint gout=user.graphes;
plot tnote * note = 1 / frame haxis=axis2 vaxis=axis1
name=’transre’;
format tnote 4.;
run;
goptions reset=all;
/*
----------------------------------------------------------------
MODELE LINEAIRE
----------------------------------------------------------------
*/
/*
identique au modele transreg linear(note)
ne marche pas en multinomial+cumlogit
PB =monotone(note)
*/
ods latex file="&home\genmod.tex";
proc genmod data=table;
class nature prerequis niveau (param=effect ref=LAST) ;
model note =nature prerequis niveau/
dist=normal
link=id;
run;
ods latex close;
AC 4 francois.kauffmann@unicaen.fr
Université de CAEN M2-MASS Modèles de régression
/*
-------------------------------------------------------------
SORTIES GRAPHIQUES PS
-------------------------------------------------------------
*/
FILENAME psdir "&home\PS";
goptions reset=all gsfname=psdir device=pslepsfc;
proc greplay igout=user.graphes nofs;
replay _ALL_;
run;
quit;
AC 5 francois.kauffmann@unicaen.fr
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !