Вы находитесь на странице: 1из 25

Sries chronologiques

Calcul de la srie dsaisonnalise pour la


Consommation lectrique d'un CHU le dimanche

Par Omran ALLATIF


LP Biostatistiques - Grenoble
Mars 2011

Consommation lectrique le dimanche d'un CHU ________________________________ 3


I. Reprsentation graphique ______________________________________________________ 3
I.1. Reprsentation graphique de la chronique _______________________________________________ 3
I.2. Reprsentation graphique du mouvement saisonnier de la chronique __________________________ 5

II. Modle de Buys-Ballot : aspects descriptifs _______________________________________ 6


II.1. Estimation de la tendance ___________________________________________________________
II.2. Estimation du mouvement saisonnier __________________________________________________
II.3. Calcul de la srie ajuste ainsi que la prvision pour le dimanche 16 octobre 2005 ______________
II.4. Reprsentation des rsidus __________________________________________________________
II.5. Reprsentation de la srie observe, de la tendance, de la srie ajuste et de la prvision__________

6
6
6
7
8

III. Modle de Buys-Ballot : aspects inductifs ________________________________________ 9


III.1. Reprsentation des rsidus studentiss ainsi que la bande de confiance 95% _________________ 9
III.2. Dtermination des coefficients saisonniers studentiss et le niveau de leur signification en termes de
p-valeur ____________________________________________________________________________ 10
III.3. Test sur la ncessit de la tendance __________________________________________________ 10
III.4. Test du mouvement saisonnier dans son ensemble ______________________________________ 10

IV. Lissage par moyenne mobile __________________________________________________ 11


IV.1. Dtermination de la tendance par lissage _____________________________________________
IV.2. Estimation du mouvement saisonner _________________________________________________
IV.3. Dtermination de la srie corrige des variations saisonnires (CVS) _______________________
IV.4. Reprsentation de la srie observe, de la tendance et de la srie CVS ______________________
IV.5. Reprsentation du mouvement saisonnier de la srie CVS ________________________________

11
11
12
13
14

Annexe _______________________________________________________________________ 15

2/25

Consommation lectrique le dimanche d'un CHU

I. Reprsentation graphique

I.1. Reprsentation graphique de la chronique

10000
9000
8000
7000
6000

Consomation lectrique le dimanche (kwh)

11000

La consommation lectrique d'un CHU le dimanche


Du dimanche 14 Aout au dimanche 16 Oct

20

40

60

80

Tranche horaire
10 dimanches * 8 Tranches horaires par dimanche = 80 observations

Cette chronique prsente deux pics, le premier, autour de 9000, a eu lieu le dimanche 4
septembre pendant la tranche horaire 15-18. Le deuxime a eu lieu le 20 octobre de 9-12.
Le mouvement de cette chronique manque relativement de rgularit.

3/25

Voil la matrice initiale Yij qui nous a permis de tracer cette chronique1.
Yij
Tranche_0.3 Tranche_3.6 Tranche_6.9 Tranche_9.12 Tranche_12.15 Tranche_15.18 Tranche_18.21 Tranche_21.24
14Aout
6436
6328
6653
7003
6842
7013
6579
6732
21Aout
6710
6464
6699
6825
6945
6907
6961
6904
28Aout
6245
6144
6292
6534
6803
7336
7023
7121
04Sept
7509
7115
7298
7833
8320
8902
8640
8136
11Sept
6847
6563
6816
7364
7248
6986
6973
6878
18Sept
6690
6615
7114
7030
6655
6836
7075
6998
25Sept
6774
6720
7356
7325
7095
7579
7561
7487
02Oct
6690
6730
7328
7325
6863
7016
7254
7022
09Oct
7022
6889
9022
11142
10897
9836
8219
7596
16Oct
6806
6621
7276
7218
6862
7151
7341
7082

Cf Annexe en page 15 pour la syntaxe R qui a permis d'obtenir tous les rsultats prsents dans ce document
ainsi que l'dition graphique. Cette syntaxe est prte fonctionner (copier/coller dans R) pour des priodes

4/25

I.2. Reprsentation graphique du mouvement


saisonnier de la chronique

8000

9000

10000

14_Aout
21_Aout
28_Aout
4_Sept
11_Sept
18_Sept
25_Sept
2_Oct
9_Oct
16_Oct

6000

7000

Consomation lectrique le dimanche

11000

La consommation lectrique d'un CHU le dimanche


Mouvement saisonnier de la chronique

Tranche horaire
10 dimanches * 8 Tranches horaires par dimanche = 80 observations

Nous remarquons que les courbes n'ont pas la mme allure. En effet, nous observons
de nombreux points d'intersection entre les courbes (absence de paralllisme), ce qui signifie
que le mouvement saisonnier n'est pas homogne2.

Voir le document COURS DE SERIES CHRONOLOGIQUES du professeur Serge Dgerine. Le document


pdagogique contient un exemple rsolu avec des explications dtailles, il est disponible via le lien ci-dessous:
http://ljk.imag.fr/membres/Serge.Degerine/Enseignement/SCBio.pdf

5/25

II. Modle de Buys-Ballot : aspects descriptifs

II.1. Estimation de la tendance


Alpha chapeau = 12.67
Bta chapeau = 6699.85
Tij = p*(i-1)+j
Tendance = Alpha chapeau*Tij+ Bta chapeau
Tendance
[1] 6712.523 6725.195 6737.867 6750.539 6763.211 6775.883 6788.555 6801.227 6813.898 6826.570 6839.242 6851.914
[13] 6864.586 6877.258 6889.930 6902.602 6915.273 6927.945 6940.617 6953.289 6965.961 6978.633 6991.305 7003.977
[25] 7016.648 7029.320 7041.992 7054.664 7067.336 7080.008 7092.680 7105.352 7118.023 7130.695 7143.367 7156.039
[37] 7168.711 7181.383 7194.055 7206.727 7219.398 7232.070 7244.742 7257.414 7270.086 7282.758 7295.430 7308.102
[49] 7320.773 7333.445 7346.117 7358.789 7371.461 7384.133 7396.805 7409.477 7422.148 7434.820 7447.492 7460.164
[61] 7472.836 7485.508 7498.180 7510.852 7523.523 7536.195 7548.867 7561.539 7574.211 7586.883 7599.555 7612.227
[73] 7624.898 7637.570 7650.242 7662.914 7675.586 7688.258 7700.930 7713.602

II.2. Estimation du mouvement saisonnier


Beta chapeau j = Yj - alpha.chap*((p*(n-1))/2+j) o Yj est le vecteur des moyennes en
colonne.
Beta chapeau j = 6304.041 6137.369 6691.197 7053.025 6933.453 7023.981 6817.709
6638.038
Le mouvement saisonnier :
S chapeau j = Beta chapeau j - Beta chapeau
S chapeau j = -395.810938 -562.482813 -8.654688 353.173437 233.601562
324.129687 117.857813 -61.814062

II.3. Calcul de la srie ajuste ainsi que la prvision


pour le dimanche 16 octobre 2005
Y chapeau ij = alpha chapeau*Tij+beta chapeau+S chapeau j
Y chapeau ij
Tranche_0.3 Tranche_3.6 Tranche_6.9 Tranche_9.12 Tranche_12.15 Tranche_15.18 Tranche_18.21 Tranche_21.24
14Aout 6316.712 6162.712 6729.212 7103.712
6996.812
7100.012
6906.413
6739.413
21Aout 6418.087 6264.087 6830.587 7205.087
7098.188
7201.387
7007.788
6840.788
28Aout 6519.462 6365.462 6931.962 7306.462
7199.562
7302.762
7109.163
6942.163
04Sept 6620.837 6466.837 7033.337 7407.837
7300.938
7404.137
7210.538
7043.538
11Sept 6722.212 6568.212 7134.712 7509.212
7402.312
7505.512
7311.913
7144.913
18Sept 6823.587 6669.587 7236.087 7610.587
7503.688
7606.887
7413.288
7246.288
25Sept 6924.962 6770.962 7337.462 7711.962
7605.062
7708.262
7514.663
7347.663
02Oct 7026.337 6872.337 7438.837 7813.337
7706.438
7809.637
7616.038
7449.038
09Oct 7127.712 6973.712 7540.212 7914.712
7807.812
7911.012
7717.413
7550.413
16Oct 7229.087 7075.087 7641.587 8016.087
7909.188
8012.387
7818.788
7651.788

6/25

Y chapeau ij du 16 octobre
Tranche_0.3 Tranche_3.6 Tranche_6.9 Tranche_9.12 Tranche_12.15 Tranche_15.18 Tranche_18.21 Tranche_21.24
7229.087
7075.087
7641.587
8016.087
7909.188
8012.387
7818.788
7651.788

II.4. Reprsentation des rsidus


Residus = Yij-Y chapeau ij

La rpartition des rsidus n'est pas homogne d'un ct et de l'autre de la valeur zro
pour la partie du milieu. Cela est srement d aux pics de consommations que nous avons

7/25

signal en paragraphe I.1. Pas de problme d'homoscdasticit par contre, les rsidus sont
relativement bien rpartis pour les valeurs importantes sur l'axe des x.

II.5. Reprsentation de la srie observe, de la


tendance, de la srie ajuste et de la prvision

Prvision
pour le
dimanche 16
octobre

8/25

III. Modle de Buys-Ballot : aspects inductifs

III.1. Reprsentation des rsidus studentiss ainsi que


la bande de confiance 95%

Les limites de la bande de confiance : qt(1-0.05/2,n*p-p-1) o n = 10 et p = 8, soit


1.994. Nous avons trois observations qui dpassent ces limites, nous pouvons alors penser
des valeurs aberrantes.

9/25

III.2. Dtermination des coefficients saisonniers


studentiss et le niveau de leur signification en termes de
p-valeur
S chapeau j studentiss
-1.686 -2.396 -0.037 1.504

0.995

1.381

0.502

-0.263

Significations en termes de p-valeur (sig si < 0.05)


0.048

0.010

0.485

0.068

0.162

0.086

0.309

0.397

III.3. Test sur la ncessit de la tendance


Alpha chapeau = 12.67
Alpha chapeau zro = 13.45
Sigma chapeau carr = 627886.7
Cpn = 2.37e-05
test.pente<-(alpha.chap - alpha.chap.zero)/(sqrt(sigma.chap.carre*Cpn))
Tobs<-abs(test.pente)
Tobs = 0.2011998
Tcritique<- qt(0.975,n*p-p-1)
Tcritique = 1.993943
Tobs < Tcritique donc pas d'effet pour la pente, autrement dit la tendance n'est pas
significative.

III.4. Test du mouvement saisonnier dans son


ensemble
fisher.obs<-((n*p-p-1)*(residu.carre.zero-residu.carre))/((p-1)*residu.carre)
fisher.obs = 1.757901
ficher.critique <- qf(0.95,p-1,n*p-p-1)
fisher.critique = 2.141539
fisher.obs < fisher.critique donc pas de rejet de H0. Globalement l'effet saisonnier n'est
pas significatif, s1=s2=...=sp=0.

10/25

IV. Lissage par moyenne mobile

IV.1. Dtermination de la tendance par lissage


Voil la matrice obtenue par les moyennes mobiles (p = la priode = 8) :
Moyij
[1]
NA
NA
NA
NA 6715.375 6741.000 6752.375 6744.125 6739.438 6739.250 6756.500 6791.125
[13] 6772.812 6723.750 6678.312 6634.688 6607.625 6625.562 6656.250 6673.688 6766.250 6905.938 7029.500 7173.562
[25] 7349.562 7542.250 7741.188 7905.688 7927.750 7851.875 7787.250 7727.812 7631.500 7444.750 7220.812 7038.000
[37] 6949.562 6943.000 6964.875 6962.625 6904.688 6858.250 6855.250 6869.125 6881.875 6893.688 6915.375 6948.938
[49] 6994.875 7068.812 7145.625 7206.562 7231.875 7227.250 7226.125 7224.375 7209.875 7160.188 7105.812 7057.562
[61] 7049.250 7079.938 7195.750 7540.188 8030.875 8459.250 8695.812 8792.000 8814.375 8784.125 8658.250 8303.875
[73] 7806.438 7386.438 7163.750 7076.750
NA
NA
NA
NA

La srie initiale est plus longue que la srie lisse. On a p/2 valeurs qui manquent de
chaque extrmit.

IV.2. Estimation du mouvement saisonner


Nous calculons d'abord les S'j :
Nous crons la matrice med qui rcupre les diffrences entre la srie originale et la
srie obtenue par les moyennes mobiles.
med = Yij - Moyij
les S'j sont alors les mdianes des colonnes de la matrice med.
S'j
-362.62 -430.19 112.25 141.25 126.62 272.00 58.25 -12.12
les S chapeau j sont les S'j centrs, c'est dire qu'on retranche chaque S'j la moyenne
des S'j.
S chapeau j
-350.80 -418.37 124.07 153.07 138.45 283.82 70.07 -0.30

11/25

IV.3. Dtermination de la srie corrige des variations


saisonnires (CVS)
Pour obtenir la srie CVS, on retranche chaque valeur de la srie initiale les S chapeau j (par
colonne) obtenus grce aux moyennes mobiles en IV.2.
Srie CVS
Tranche_0.3 Tranche_3.6 Tranche_6.9 Tranche_9.12 Tranche_12.15 Tranche_15.18 Tranche_18.21 Tranche_21.24
14Aout
6786.8
6746.4
6528.9
6849.9
6703.6
6729.2
6508.9
6732.3
21Aout
7060.8
6882.4
6574.9
6671.9
6806.6
6623.2
6890.9
6904.3
28Aout
6595.8
6562.4
6167.9
6380.9
6664.6
7052.2
6952.9
7121.3
04Sept
7859.8
7533.4
7173.9
7679.9
8181.6
8618.2
8569.9
8136.3
11Sept
7197.8
6981.4
6691.9
7210.9
7109.6
6702.2
6902.9
6878.3
18Sept
7040.8
7033.4
6989.9
6876.9
6516.6
6552.2
7004.9
6998.3
25Sept
7124.8
7138.4
7231.9
7171.9
6956.6
7295.2
7490.9
7487.3
02Oct
7040.8
7148.4
7203.9
7171.9
6724.6
6732.2
7183.9
7022.3
09Oct
7372.8
7307.4
8897.9
10988.9
10758.6
9552.2
8148.9
7596.3
16Oct
7156.8
7039.4
7151.9
7064.9
6723.6
6867.2
7270.9
7082.3

12/25

IV.4. Reprsentation de la srie observe, de la


tendance et de la srie CVS

Nous observons une variation lente de la tendance compare la srie initiale. Elle
montre aussi une certaine stabilit pour certains endroits de la chronique. Nous vrifions ici
que la srie CVS n'a pas limin les variations qui sont dues aux erreurs (irrgularits
rsiduelles). La proximit entre les courbes bleue et verte montre clairement le faible poids
de l'effet saisonnier.

13/25

IV.5. Reprsentation du mouvement saisonnier de la srie


CVS

C'est la srie dsaisonnalise, en effet, elle occulte artificiellement l'effet saisonnier,


elle ne modifie pas pour autant la partie sous-jacente de la srie originale (la tendance + le
bruit). Le but est de pouvoir comparer les valeurs qui se produisent des moments proches
sur l'chelle du temps sans que l'interprtation soit tire par la hausse ou la baisse dues au
mouvement saisonnier. C'est ainsi que nous arrivons valuer l'volution (hausse/baisse)
intrinsque de la chronique.

14/25

Annexe
rm(list=ls())
#Omran Allatif LP Biostatistiques - Mars 2011.
#Importation des donnes
tab1<-read.csv("/Users/LP_Biostat/SerieChrono/TablePourR.csv",
row.names = "dimanche",
header =T, sep=";" , dec =",")
tab1
#Tranche_Horaire Tranche_0.3 Tranche_3.6 Tranche_6.9 Tranche_9.12
Tranche_12.15 Tranche_15.18 Tranche_18.21
#Dimanche
0
1
2
3
4
5
6
7
#14_Aout
1
6436
6328
6653
7003
6842
7013
6579
#21_Aout
2
6710
6464
6699
6825
6945
6907
6961
#28_Aout
3
6245
6144
6292
6534
6803
7336
7023
#4_Sept
4
7509
7115
7298
7833
8320
8902
8640
#11_Sept
5
6847
6563
6816
7364
7248
6986
6973
#18_Sept
6
6690
6615
7114
7030
6655
6836
7075
#25_Sept
7
6774
6720
7356
7325
7095
7579
7561
#2_Oct
8
6690
6730
7328
7325
6863
7016
7254
#9_Oct
9
7022
6889
9022
11142
10897
9836
8219
#16_Oct
10
6806
6621
7276
7218
6862
7151
7341
Tranche_21.24
#Dimanche
8
#14_Aout
6732
#21_Aout
6904
#28_Aout
7121
#4_Sept
8136
#11_Sept
6878
#18_Sept
6998
#25_Sept
7487
#2_Oct
7022
#9_Oct
7596
#16_Oct
7082

15/25

#Convertion des donnees en une matrice


mat<-as.matrix(tab1[-1,-1], ncol=1)
mat
#Convertion de la matrice mat en un vecteur
vec<-as.numeric(t(mat))
vec
#numrotation des chroniques (les lments de la table)
num<-seq(1,length(vec),by=1)
num
#II.1. Estimation de la tendance :
# Estimation de la pente
n<-nrow(mat)
n
p<-ncol(mat)
p
yi.barre<- apply(mat,1,mean)#Moyennes des lignes
yi<-as.vector(yi.barre)
yi
yj.barre<- apply(mat,2,mean)#Moyennes des colonnes
yj<-as.vector(yj.barre)
yj
#calcul des ti. barre
ti.barre<-0
for (i in 1:n){ti.barre[i]<-p*(i-1)+(p+1)/2}
ti<-as.vector(ti.barre)
ti
alpha.chap<-cov(ti,yi)/var(ti)
alpha.chap
beta.chap<-mean(mat)-alpha.chap*((n*p+1)/2)
beta.chap

beta.chap.j<-0
for (j in 1:p) {beta.chap.j[j]<-yj[j]-alpha.chap*((p*(n-1))/2+j)}
beta.chap.j
s.chap.j<-0
for (j in 1:p){s.chap.j[j] <-beta.chap.j[j]-beta.chap}
s.chap.j
sum(s.chap.j)

16/25

paste( " La somme des Sj chapeau = ",round(sum(s.chap.j),5))


#####################
#calcul de la srie ajust
#calcul des Tij
tij<-mat
for(i in 1:n){
for (j in 1:p){
tij[i,j]<-p*(i-1)+j
}
}
tij
tij.vect<-as.numeric(t(tij))
tij.vect
#Calcul de la tendance
tendance<-tij
for(i in 1:n){
for(j in 1:p){
tendance[i,j]<-alpha.chap*tij[i,j]+beta.chap
}
}
tendance<-as.numeric(t(tendance))
tendance
#calcul des Y chapeau ij ajust
y.chapij<-tij
for(i in 1:n){
for (j in 1:p){
y.chapij[i,j]<- alpha.chap*tij[i,j]+beta.chap+s.chap.j[j]
}
}
y.chapij# y.chapij est la srie ajust
y.chapij.vect<-as.numeric(t(y.chapij))

###################################
#calcul de la prvision pour le dimanche 16 Oct.
y.chapij['16Oct',]

17/25

#################################

Residus <-mat-y.chapij

####################
#III Modle de Buys-Ballot : aspects inductifs
# Rsidus studentis
residu.carre<-sum(Residus^2)
sigma.chap.carre<-sum(Residus^2)/(n*p-p-1)
#H<-mat%*%solve(t(mat)%*%mat)%*%t(mat)
#hii<-diag(H)
#sum(hii)
#residu.studentise<-Residus
#legth(diag(H)) = 10
#for (i in 1:n){
#
for(j in 1:p){
#
#
residu.studentise[i,j]<Residus[i,j]/(sqrt(sigma.chap.carre)*sqrt(1-hii[i]))
#
#
}
#
}
#residu.studentise
#Deuxieme facon pour calculer les rsidus studentises
residu.studentise2<-Residus
for (i in 1:n){
for(j in 1:p){
residu.studentise2[i,j]<-Residus[i,j]/
(
(
sqrt(sigma.chap.carre)/sqrt(n*p)
)
*
sqrt
(
(
p*(n-1)(
(12*(i-(n+1)/2)^2)
/(n^2-1)
)

18/25

)
)
)
}
}
residu.studentise2
residu.studentise<-as.numeric(residu.studentise2)

#Coefficient saisonnier studentis


s.chap.j.studentise<- s.chap.j
for (j in 1:p){
s.chap.j.studentise<- (s.chap.j/sqrt(sigma.chap.carre))*
((1/(n*p))*
((p-1)+12*(j-(p+1)/2)^2/(p^2*(n^2-1)))
)^(-1/2)
}
s.chap.j.studentise
# Apprcier le niveau de signification
#s.chap.j.studentise suit la loi de Student np-p-1 ddl
signification<-s.chap.j.studentise
for (j in 1:p){
signification[j]<-1-pt((abs(s.chap.j.studentise[j])), n*p-p-1)}
round(signification,3) # c'est la p-valeur
# test de la prsence ou non de leffet saisonnier de faon globale
y..barre<-mean(vec)
t..barre<-mean(tij.vect)
alpha.chap.zero<-cov(tij.vect,vec)/var(tij.vect)
alpha.chap.zero
beta.chap.zero<-y..barre-alpha.chap.zero*t..barre
beta.chap.zero
y.chap.ij.zero<-alpha.chap.zero*tij+beta.chap.zero
y.chap.ij.zero
residu.carre.zero<-sum((mat-y.chap.ij.zero)^2)
residu.carre.zero
sigma.chap.carre.zero<-sum((mat-y.chap.ij.zero)^2)/(n*p-2)

19/25

sigma.chap.carre.zero
#3. Test de la ncessit de la tendance:
#(alpha chap - alpha zro)/(sigma.chap *sqrt(c(p,n))) suit un
Student (p*n-p-1) ddl.
Cpn <-12/(n*p*p^2*(n^2-1) )
Cpn
test.pente<-(alpha.chap alpha.chap.zero)/(sqrt(sigma.chap.carre*Cpn))
Tobs<-abs(test.pente)
Tobs # = 0.2011998
Tcritique<- qt(0.975,n*p-p-1)
Tcritique # = 1.993943
#Pas d'effet pour la pente.

#les deux formules pour calculer la var de alpha chap ne sont pas
tout fait quivalentes.
#v.alpha<-(sigma.chap.carre/n)/(p*var(ti))
#v.alpha
#v.alpha2<-(12*sigma.chap.carre)/(n*p*p^2*(n^2-1))
#v.alpha2
#3. Test de la ncessit du mouvment saisonnier dans son ensemble.
#Sous lhypoth`ese nulle, le rapport de deux estimateurs sans biais
de 2 ,
fisher.obs<-((n*p-p-1)*(residu.carre.zero-residu.carre))/((p1)*residu.carre)
#fisher.obs = 1.757901
ficher.critique <- qf(0.95,p-1,n*p-p-1)
# fisher.critique = 2.141539
#Pas de rejet de H0. Globalement l'effet saisionnier n'est pas
significatif., s1=s2=...=sp=0
####################################################################
#############################
################################################################
########################
################################################################
################
################################################################
#####
#IV. Lissage par moyenne mobile d'ordre 3 (on divise la somme des 3
valeurs par 3)
# on converti la matrice de dpart en vecteur. ici la periode p = 8,
la moyenne mobile se fait sur la periode. Donc on commence (p+1)/2

20/25

et on prend p/2 valeurs avant et p/2 valeurs aprs.


moy<-vec
for (i in (p/2+1):(length(vec)-(p/2))){
moy[i]<-(sum(vec[(i-(p/2))]/2,vec[(i-(p/2)+1):(i+(p/2)1)],vec[(i+(p/2))]/2))/p #on prend une valeur avant et une aprs.
}
moy
moy[c(1:(p/2))]<-NA
moy[c((length(moy)-(p/2)+1):length(moy))]<-NA
moy
moy.mat<-matrix(c(moy), byrow = TRUE, ncol =p)
round(moy.mat,2)
#On retranche la srie initiale les moyennes obtenues, le but est
de rcuprer les mdianes de chaque colonne.
med <- mat
for (i in 1: n){
for(j in 1:p){
med[i,j]<-mat[i,j]-moy.mat[i,j]
}
}
med

#############
# les S'j sont les mdianes des colonnes obtenues par les moyennes
mobiles.
s.prime.j<-0
for(j in 1:p){
s.prime.j[j] <-median(med[,j],na.rm=TRUE)
}
s.prime.j
# les S chap j sont les S'j centrs, c'est dire on retranche
chaque S'j la moyenne de tous les S'j.
s.chap.j.liss<-0
for(j in 1:p){
s.chap.j.liss[j] <-s.prime.j[j]-mean(s.prime.j)
}
s.chap.j.liss
####################
#####
##

21/25

#3. Srie CVS: on retranche chaque valeur de la srie initiale le


nouveau S chap j obtenus grce aux moyennes mobiles.
serie.cvs <- mat
for (i in 1: n){
for(j in 1:p){
serie.cvs[i,j]<-mat[i,j]-s.chap.j.liss[j]
}
}
serie.cvs
serie.cvs.vec<-as.numeric(t(serie.cvs))
##############################################
##############################################
##############################################
##############################################
##############################################
##Affichage graphique
# Reprsentation de la chronique
quartz()
plot(num,vec, type ='b', col ='blue', xlab="Tranche horaire",ylab
='Consomation lectrique le dimanche (kwh)', cex =1, pch=19, axes
=FALSE, lwd =0.4,main =c("La consommation lectrique d'un CHU le
dimanch "," Du dimanche 14 Aout au dimanche 16 Oct"), font.main =4,
col.main= 'blue', sub="10 dimanches * 8 Tranches horaires par
dimanche = 80 observations", font.sub =4, col.sub='magenta')
axis(1, col = "violet", col.axis="dark violet", lwd = 2)
axis(2, col = "gray", lwd = 3 )
lines(tij.vect,y.chapij.vect, col='magenta',pch =19, cex =0.8)#Serie
ajustee
lines(tij.vect,alpha.chap*tij.vect+beta.chap, col = 'gold', lwd=3,
lty =1)#Tendance
legend(0,11000, c('Srie', 'Ajustement','Tendance' ), col =
c('blue','magenta','gold'), text.col = "green4", lty = 1,lwd =
4,merge = TRUE, bg = 'gray90')

#Le mouvement saisonnier


quartz()
matplot(1:p,t(mat), type ='b',cex =0.8, lwd =2,pch =c(1:n), col
=c(1:n) ,xlab="Tranche horaire",ylab ='Consomation lectrique le

22/25

dimanche', axes =FALSE,main =c("La consommation lectrique d'un CHU


le dimanch"," Mouvement saisonnier de la chronique"), font.main =2,
col.main= 'blue', sub="10 dimanches * 8 Tranches horaires par
dimanche = 80 observations", font.sub =4, col.sub='magenta')
axis(1, col = "violet", col.axis="dark violet", lwd = 2)
axis(2, col = "gray", lwd = 3 )
grid()
legend(1,11000, rownames(tab1[c(2:(n+1)),]), col = c(1:n), text.col
= "green4", lty = c(1:n),lwd = 4,merge = TRUE, bg ='bisque')
####################################################################
########
#reprsetation des rsidus
quartz()
plot(num,Residus, pch =19, col ='gold', xlab = NA, main
='Distribution des rsidus', axes = FALSE)
axis(1, col = "violet", col.axis="dark violet", lwd = 2)
axis(2, col = "gray", lwd = 3)
abline(h=0, lwd =2, col ='magenta')
###
#Rprsentation des rsidu tudentis
quartz()
plot(residu.studentise, pch=19, col ='gold',ylab = 'Rsidus
studentiss', ylim =c(-3,5) , main ='Rsidus studentiss et bande de
confiance 95%', font.main =3)
abline(h=0, col ='black')
abline(h=1.993943, col ='red', lwd = 2)
abline(h=-1.993943, col ='blue', lwd =2)
# Bande de confiance Yij sera dans la bande si et seulement si
#abs(residu.studentise2)<qt(1-0.05/2,n*p-p-1)
#soit < 1.993943
###

#Affichage graphique pour moyenne


mobiles###################################
quartz()
#Srie originale
plot(num,vec, type ='l', col ='blue', xlab="Tranche horaire",ylab
='Consomation lectrique le dimanche', cex =2, pch=19, axes =FALSE,

23/25

lwd =2,main =c("La consommation lectrique d'un CHU le dimanch"," Du


dimanche 14 Aout au dimanche 16 Oct"), font.main =4, col.main=
'blue', sub="10 dimanches * 8 Tranches horaires par dimanche = 80
observations", font.sub =4, col.sub='magenta')
axis(1, col = "violet", col.axis="dark violet", lwd = 2)
axis(2, col = "gray", lwd = 3 )
#Srie moyennes mobiles
lines(num,moy, col ='red', cex =2, lwd =2)
#Srie CVS
lines(num,serie.cvs.vec, col ='green3', lwd =2)
legend(0,11000, c('Srie originale', 'Srie moyennes mobiles','Srie
CVS' ), col = c('blue','red','green3'), text.col = "white", lty =
1,lwd = 4,merge = TRUE, bg = 'blue4')

#Mouvement saisonnier de la srie CVS


matplot(1:p,t(serie.cvs), type ='b',cex =0.8, lwd =2,pch =c(1:n),
col =c(1:n) ,xlab="Tranche horaire",ylab ='Consomation lectrique le
dimanche', axes =FALSE,main =c("La consommation lectrique d'un CHU
le dimanch"," Mouvement saisonnier de la srie CVS"), font.main =1,
col.main= 'blue', sub="10 dimanches * 8 Tranches horaires par
dimanche = 80 observations", font.sub =4, col.sub='magenta')
axis(1, col = "violet", col.axis="dark violet", lwd = 2)
axis(2, col = "gray", lwd = 3 )
grid()
legend(1,11000, rownames(tab1[c(2:(n+1)),]), col = c(1:n), text.col
= "green4", lty = c(1:n),lwd = 4,merge = TRUE, bg ='bisque2')

########################################################
#####################################

#Autre faon pour afficher le mouvement saisonnier de la srie


initiale
plot.default(tab1[1,c(2:ncol(tab1))],tab1[2,c(2:ncol(tab1))],
ylim =c(6000,12000), type = 'n', xlab = '10 mesures par tranche
horaire de 3 heures (la priode = 8)', ylab ='Consommation
lectrique (kw/h)'
,main = 'Mouvement saisonnier de la chronique', font.main =3,
col.main='magenta')
for (i in 2:nrow(tab1)) {
lines(tab1[1,c(2:9)],tab1[i,c(2:9)], type ='b',col

24/25

=factor(colnames(tab1)) ,
pch =c(1:10), cex= 1.2, lwd =1)
}
grid()
legend(1,11000, rownames(tab1[c(2:(n+1)),]), col = c(1:n),
text.col = "green4", lty = c(1:n),lwd = 4,merge = TRUE, bg
='bisque2')

25/25

Вам также может понравиться