Aujourd’hui, on va commencer la partie du cours sur les tests, avec une introduction par les tests non-paramétriques. On parlera (dans la continuité de ce qu’on a fait jusqu’à présent) de tests d’ajustement de lois, mais aussi de tests plus divers, comme des tests d’indépendance (entre observations successives).
Le test le plus classique est le test des signes. L’idée est de regarder puis de compter le nombre de fois où (différence positive) et le nombre de fois où (différence négative).
> (X=rnorm(20)) [1] 0.81352495 0.78076709 -0.58654359 0.52805014 -0.31101282 -0.65022034 -0.93619729 -0.16483729 -1.97396753 -0.22506985 1.14959851 -0.38895448 -0.09298421 > (S=c("N","P")[1+1*(diff(X)>0)]) [1] "N" "N" "P" "N" "N" "N" "P" "N" "P" "P" "N" "P" "P" "N" "P" "N" "P" "P" "N"
On verra ce test en cours. On peut par exemple compter le nombre de fois où la différence était positive,
> sim=function(a=0){ + n=100 + epsilon=X=rnorm(n) + for(t in 2:n) X[t]=a*X[t-1]+epsilon[t] + S=c("N","P")[1+1*(diff(X)>0)] + return(sum(S=="P"))}
(je fais ici une fonction un peu plus compliqué pour voir ce qui se passe si les données ne sont pas indépendantes, justement). Si on génère plein d’échantillons, on peut voir que le nombre de variations positives suit une loi normale, si les observations sont effectivement indépendantes,
> library(ggplot2) > set.seed(1) > vectS=unlist(lapply(rep(0,1000),sim)) > ggplot(data=data.frame(vectS = vectS), + aes(x = vectS)) + + geom_histogram(aes(y = ..density..), + binwidth = 1, fill = "light blue", + col = "black") + + stat_function(fun=function(x) dnorm(x, + (n-1)/2+.5,sqrt((n+1)/12)), + col = "red", size = 1) + ylab("Densite") + + ggtitle("Histogramme")