Tous les profs qui surveillent leur examen se posent la même question: que signifie un départ au bout d'une heure et demi, si l'examen est supposé durer trois heures? Que l'examen était trop facile? trop dur?
Loin de moi l'idée de blâmer les étudiants qui partent tôt ! Tout d'abord parce que j'ai toujours souvent été dans les premiers à quitter la salle lors d'examens, ou de concours. Et parce que je ne pense pas qu'il y ait un lien évident entre le fait de partir tôt, ou tard, et la note obtenue.
Mais on peut regarder (et répondre au commentaire de @kl suite à l'examen de la session passée). Car l'examen du cours ACT6420 avait lieu la semaine passée, et il était court. Autrement dit, 95% des étudiants étaient sortis avant que j'annonce la fin de l'épreuve. Et j'ai noté sur toutes les copies l'heure de sortie (pour ceux qui veulent plus d'information sur le protocole de l'expérience, les étudiants ne savaient pas que je notais l'heure).
Il s'agissait d'un examen à choix multiples, ce qui garantit une forme d'impartialité dans la correction (sinon on pourrait objecter que si je note en prenant le paquet de copie tel qu'il est arrivé, les notes pour les élèves partis tôt - corrigés en dernier - et ceux partis à la fin - corrigés en premier - pourraient ne pas être vraiment comparables). Et comme à la dernière session, je demandais aux étudiants de prédire leur nombre de réponses. La question était facultative, mais les élèves pouvaient gagner un point en répondant (à condition de prédire exactement le bon nombre).
Les données sont (partiellement) en ligne ici
> act6420=read.table( + "http://freakonometrics.blog.free.fr/public/ data/baseact6420a1.txt", + sep=";",header=FALSE,skip=1) > names(act6420)=c("n","heure","obs","pred")
On peut alors comparer les notes en fonction de l'heure de sortie, ainsi que la note prédites (les notes sont sur 30, ou plutôt les nombres de bonnes réponses), en faisant des régressions linéaires simples,
> summary(lm(obs~heure,data=act6420)) Call: lm(formula = obs ~ heure, data = act6420) Residuals: Min 1Q Median 3Q Max -6.1122 -1.6326 -0.1876 1.9351 8.9224 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.1519 6.0546 0.521 0.6039 heure 1.3209 0.5391 2.450 0.0162 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.819 on 93 degrees of freedom Multiple R-squared: 0.06063, Adjusted R-squared: 0.05053 F-statistic: 6.002 on 1 and 93 DF, p-value: 0.01616 > summary(lm(pred~heure,data=act6420)) Call: lm(formula = pred ~ heure, data = act6420) Residuals: Min 1Q Median 3Q Max -11.9427 -2.5208 0.0052 3.2404 8.3733 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.1178 8.8373 0.126 0.8996 heure 1.7234 0.7889 2.185 0.0317 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.999 on 85 degrees of freedom (8 observations deleted due to missingness) Multiple R-squared: 0.05316, Adjusted R-squared: 0.04202 F-statistic: 4.773 on 1 and 85 DF, p-value: 0.03167
On observe qu'à la fois les bons élèves (ceux avec une bonne note) et les élèves qui se pensent bons (ceux qui ont prédit une note élevée) sortent plutôt tard. Avec dans les deux cas, une significativité de la variable heure de sortie sur la prédiction de la note. Mais peut-être est-ce plus complexe que ça, et qu'il se cache un effet non-linéaire. On essayer de lisser un peu, avec des splines
> D=data.frame(Y=note,X=heure) > library(splines) > rg=lm(Y~bs(X,df=5),data=D) > newheure=seq(10.2,12.1,by=.01) > notep=predict(rg,newdata=data.frame(X= + newheure),interval="confidence")
On obtient les régressions (non-linéaires) suivantes

ou, si on souhaite rajouter des intervalles de confiance autour de la prédiction faite par nos modèles,

(avec en abscisse l'heure de sortie, l'examen finissant un peu après midi). L'analyse est un peu plus complexe qu'il n'y paraissait, avec quelques bons élèves qui finissent très tôt. Si on souhaite d'ailleurs mieux comprendre le lien entre la note obtenue (ou plutôt, encore une fois le nombre de bonnes réponses données, car aucun bonus n'est pris en compte ici), on peut faire un graphique proche de celui fait à la session passée

Le trait bleu est ici la régression obtenue à la session passée. On retrouve exactement la même chose sur les deux sessions, étonnant, non?

Mais j’arrête là pour l'analyse de ces notes. Pour ceux qui veulent en savoir plus, je mettrais bientôt en ligne une correction, avec des statistiques par réponse. On en profitera pour faire une discussion sur l'utilisation de règles démocratiques, à savoir, la majorité a-t-elle toujours raison? Et pour ceux qui n'auraient pas encore compris, on a fait ici une analyse de corrélations entre les heures de sortie, et les notes, et non pas une analyse de causalité. Donc inutile de se forcer à attendre la fin de l'examen pour sortir la prochaine fois, ça ne fera a pas (a priori) monter la note.




















As Mark Twain said "













denotes the date the prediction was made and
the date the horizon, or















With
splines, it is the same: there are knots, then we consider polynomial
interpolations on parts between knots, and we make sure that there is
no discontinuity (on the prediction, but on the derivative as well).
So, consider the following dataset, with the following spline regression,

(we define splines on the unit interval), then
, while
. The code is something like that

to the unit interval (using a simple affine transformation)








, the age of the driver) and one qualitative (
, gasoline versus diesel).
(the exposure, assumed to be constant) and 























