16 Introduction à la régression spline
Exercice 1 (Questions de cours)
- C
- A
- A
- B
Exercice 2 (Fonction polyreg)
On importe les données
<- read.table("../donnees/ozone_simple.txt",header=T,sep=";") ozone <- sd(ozone$T12) sdT12
On crée la grille
<- seq(min(ozone$T12)-sdT12,max(ozone$T12)+sdT12, length =100) grillex
On transforme en data frame
<- data.frame(T12=grillex) df
On effectue une regression polynomiale de degré 3
<- poly(ozone$T12,degree=3,raw=T) basepoly <- predict(basepoly,df$T12) newval <- data.frame(O3=ozone$O3,basepoly) dfpoly <- lm(O3~.,data=dfpoly) regpoly
On prévoit sur une grille
<- data.frame(newval) dfnewval <- predict(regpoly,dfnewval) prev plot(O3~T12,data=ozone) lines(grillex,prev,col=2)
Création de la fonction
<- function(ozone,degre=3){ polyreg <- sd(ozone$T12) sdT12 <- seq(min(ozone$T12)-sdT12,max(ozone$T12)+sdT12, length =100) grillex <- data.frame(T12=grillex) df <- poly(ozone$T12,degree=3,raw=T) basepoly <- predict(basepoly,df$T12) newval <- data.frame(O3=ozone$O3,basepoly) dfpoly <- lm(O3~.,data=dfpoly) regpoly <- data.frame(newval) dfnewval <- predict(regpoly,dfnewval) prev return(list(grillex,prev)) }
Exercice 3 On applique la fonction précédente
<- read.table("../donnees//ozone_simple.txt",header=T,sep=";")
ozone plot(O3 ~ T12, xlim=c(0,35), ylim=c(0,150), data=ozone)
<- 1
iter for(ii in c(1,2,3,9)){
<- polyreg(ozone,d=ii)
tmp lines(tmp$grillex,tmp$grilley,col=iter,lty=iter)
<- iter+1
iter
}legend(15,150,c("d=1","d=2","d=3","d=9"),col=1:4,lty=1:4)
Exercice 4 Considérons la matrice \(X_B\) du plan d’expérience obtenue à partir d’une variable réelle \(X\) transformée dans \(\mathcal{S}_{\xi}^{d+1}\) . Cette matrice est composée des \(d+K+1\) fonction de base notée \(b_j\) et où \(K\) est le nombre de noeuds intérieurs et \(d\) le degré.
Dans le cours, il est indiqué que les fonctions de base \(b_j\) et \(b_{j+d+1}\) en conservant l’ordre des fonctions. Donc \(b_1\) est orthogonale à toutes les fonctions \(b_j\) avec \(j>d+1\), idem pour \(b_2\) avec \(j>d+2\).
En faisant donc le calcul \(X_B'X_B\) on obtient une matrice bande et donc les termes \(a_{ij}\) sont nuls quand \(j>i+d+1\).
On en déduit que les paramètres estimées \(\hat \beta_k\) ne sont pas corrélés avec les \(\hat \beta_j\) dès que \(j>k+d+1\). XB est une matrice bande.