# Variable Selection using Cross-Validation (and Other Techniques)

A natural technique to select variables in the context of generalized linear models is to use a stepŵise procedure. It is natural, but contreversial, as discussed by Frank Harrell  in a great post, clearly worth reading. Frank mentioned about 10 points against a stepwise procedure.

• It yields R-squared values that are badly biased to be high.
• The F and chi-squared tests quoted next to each variable on the printout do not have the claimed distribution.
• The method yields confidence intervals for effects and predicted values that are falsely narrow (see Altman and Andersen (1989)).
• It yields p-values that do not have the proper meaning, and the proper correction for them is a difficult problem.
• It gives biased regression coefficients that need shrinkage (the coefficients for remaining variables are too large (see Tibshirani (1996)).
• It has severe problems in the presence of collinearity.
• It is based on methods (e.g., F tests for nested models) that were intended to be used to test prespecified hypotheses.
• Increasing the sample size does not help very much (see Derksen and Keselman (1992)).
• It allows us to not think about the problem.
• It uses a lot of paper.

# Cross Validation for Kernel Density Estimation

In a post publihed in July, I mentioned the so called the Goldilocks principle, in the context of kermel density estimation, and bandwidth selection. The bandwith should not be too small (the variance would be too large) and it should not be too large (the bias would be too large). Another standard method to select the bandwith, as mentioned this afternoon in class is the cross-validation technique (described in Chiu (1991)). Here, we would like to minimize

$\mathbb{E}\left[\int [\widehat{f}_h(x)-f(x)]^2dx\right]$

The integral can be writen

$\int \widehat{f}_h(x)^2dx-2\int \widehat{f}_h(x)f(x)dx+\int f(x)^2dx$

Since the third component is constant, we have to minimize the expected value of the sum of the first two.

The idea is to approximate it as

$J(h)=\int \widehat{f}_h(x)^2dx-\frac{2}{n}\sum_{i=1}^n \widehat{f}_{(-i)}(X_i)$

which can easily be computed. Consider here some sample, with 50 observations, from a Gaussian distribution,

> set.seed(1)
> X=rnorm(50)

From Silverman’s rule of thumb (which should be appropriate here since the sample has a Gaussian sample) the optimal bandwidth is

> 1.06*sd(X)*length(X)^(-1/5)
[1] 0.4030127

Using the cross-validation technique mentioned above, compute

> J=function(h){
+ fhat=Vectorize(function(x) density(X,from=x,to=x,n=1,bw=h)$y) + fhati=Vectorize(function(i) density(X[-i],from=X[i],to=X[i],n=1,bw=h)$y)
+ F=fhati(1:length(X))
+ return(integrate(function(x) fhat(x)^2,-Inf,Inf)$value-2*mean(F)) + } > vx=seq(.1,1,by=.01) > vy=Vectorize(J)(vx) > df=data.frame(vx,vy) > library(ggplot2) > qplot(vx,vy,geom="line",data=df) The function has the following shape and the optimal value is > optimize(J,interval=c(.1,1))$minimum
[1] 0.4687553

\$objective
[1] -0.3355477

Note that, indeed, it is close to Siverman’s optimal bandwidth.

# Maudits Français…

S’il y a une tâche que je déteste par dessus tout dans ma vie d’enseignant-chercheur, à Montréal, c’est celle de traducteur de CV de Français. Assez (pour ne pas dire trop) régulièrement, on me demande de donner un coup de main pour décoder le CV d’un étudiant Français, à la recherche d’un “stage“. Sous prétexte que les Québécois parlent le français, beaucoup d’étudiants nous envoient des CV en français, malheureusement dans une langue qui ne parle qu’aux français (de France). On y entend parler de “CPGE” (souvent sans expliquer ce que cela signifie), de “Master” ou pire, de “Stage de Master 2”. Je me souviens de dialogues savoureux avec des collègues,

ça veut dire quoi ça M2 ?
– ça correspond à la deuxième année de maîtrise, en gros… [ndlr oui, LMD c’est un système qui n’existe pas en dehors de l’Europe, le reste du monde raisonne davantage en undergraduate et graduate studies je pense]
donc ils écrivent leur mémoire ?
euh, non, ils ont encore plein de cours, tu vois ça sur le relevé de notes…
ils suivent tant de cours que ça ?
en fait, un cours, je ne sais pas trop combien ça fait d’heures, mais c’est souvent une vingtaine… il n’y a pas marqué le nombre d’heures dans le relevé de notes ? [ndlr à Montréal, un cours c’est 45 heures, et quand on suit des études graduées, c’est rare d’en suivre beaucoup]
non… d’ailleurs, pourquoi il a suivi autant de cours de physiques ? il veut être ingénieur ou faire de la finance ? s’il veut faire de la finance, pourquoi il n’a pas fait une formation en finance, avec quelques cours d’économie plutôt ?
euh… c’est compliqué  c’est le principe des école d’ingénieurs en France… souvent les élèves regardent le “classement” des écoles et pas ce qui y est enseigné… donc tu peux rentrer dans une école d’électronique avant de te rendre compte que tu aimes la finance computationnelle [ndlr suit souvent une longue discussion sur les écoles, ou la variétés d’écoles, ce qui embrouille tout le monde, car toutes les écoles ont des noms proches, et qui fait que personne n’y comprend rien]
ah ? [ndlr je vais simplifier le message d’incompréhension qui suit mon long monologue]  et 14.23 c’est bien comme moyenne ?
ça dépend,  ne veut pas dire grand chose… tiens, regarde le classement
il n’y a pas de classement…
pfffff qu’est-ce que j’en sais moi….
s’il est bon, pourquoi il ne reste pas faire son mémoire en France ? si j’ai un bon étudiant en maîtrise, je le garde au moins jusqu’à la fin de son mémoire [ndlr oui, quand tout se passe bien, à Montréal, quand un étudiant est inscrit en maîtrise, il suit son directeur pendant les deux ans, ce dernier en contrepartie le finance]
– non, c’est pas un mémoire qu’il cherche, il veut un “stage”, c’est obligatoire… normalement tu le fais en entreprise, mais tu peux aussi le faire dans un labo universitaire
en entreprise? mais il a fini ses cours?
– ben oui, je pense
– pourquoi il travaille pas alors? il pourrait chercher un emploi, ça serait mieux payé
– en fait je crois qu’un stage, c’est une période d’essai pas cher, avant une embauche…. c’est un peu une arnaque, mais ça marche comme ça en France.
– c’est louche ton histoire. S’il veut travailler en entreprise ensuite, autant qu’il cherche un stage en entreprise, et s’il veut le faire dans un labo, c’est qu’il veut faire un doctorat par la suite ?
euh… effectivement, je sais pas trop….
bon, tu nous embrouilles avec tes français, on comprend rien, on va relire les CV reçus d’étudiants de Téhéran, au moins ils sont plus clairs !

Je pense que tous mes collègues qui sont passé par le système français, et qui sont maintenant à l’étranger (disons en dehors de l’Europe) ont tous vécu des histoires similaires. Les étudiants français sont souvent bons, mais ils sont incroyablement mauvais pour se vendre ! Je ne peux que conseiller aux étudiants de tenter de postuler pour faire des césures, des stages, des semestres à l’étranger ! Mais il fait comprendre que personne ne comprend rien à vos CV ! On reçoit des applications de toutes les régions du monde, et les CV de Français sont les plus durs à comprendre, car aucun effort n’est fait pour qu’un étranger le comprenne. Je ne dis pas que c’est simple. Sur http://fr.wikipedia.org/, il y a un schéma censé comparer le système d’éducation supérieur au Québec et en France (ou disons une version simplifiée de la France), qui éclaire un peu, mais il faudrait aller un peu plus loin. Peut-être faudrait-il traîner un peu en ligne pour voir des CV d’étudiants de maîtrise, voir des formats que l’on a l’habitude de recevoir. Les commentaires sont ouverts si quelqu’un a des suggestions… mais personnellement, j’en ai marre de faire le boulot et de ré-expliquer le fonctionnement d’un système que j’ai de plus en plus de mal à comprendre…

[ndlr to be continued….]

[mardi 26 novembre] Grâce à Emmanuel Davidenkoff, il est possible d’entendre ce billet ! on n’arrête pas le progrès ! (merci à Mathieu et @FrenchRedFrog qui me l’ont appris ce matin)