source: trunk/RESULTATS/regandsignif_seriestemporelles.m @ 29

Last change on this file since 29 was 29, checked in by pinsard, 15 years ago

typo in headers

  • Property svn:keywords set to Id
File size: 7.2 KB
Line 
1%REGANDSIGNIF_SERIESTEMPORELLES calcule la regression lineaire d'une serie temporelle issue du champ de donnees initial
2% (selectionne en un point d'espace particulier) et une composante principale choisie     
3%
4% Date: Avril-Mai 2008
5% Auteur: juliette.mignot@locean-ipsl.upmc.fr
6% Contexte Ecole d'ete ENVI-STAT 2008
7%+
8%
9% module
10% ======
11%
12% ``regandsignif_seriestemporelles``
13%
14% DESCRIPTION
15% ===========
16%
17% ``regandsignif_seriestemporelles`` lit les fichiers fichiers
18% ``../DONNEES/lsmask_tropatl_PacandMedblancs.mat``,
19% ``../DONNEES/skt.mon.tropatl.mat``.
20%
21% ``regandsignif_seriestemporelles`` lit aussi le fichier
22% ``../DONNEES//eof_SSTan_tropAtl30N-20S.mat``
23% produit par eof_NCEP_an.m_.
24%
25% ``regandsignif_seriestemporelles`` calcule ++
26%
27% ``regandsignif_seriestemporelles`` affiche ++
28%
29% ``regandsignif_seriestemporelles`` sauve cette image dans
30% ``./eof_SSTan_tropAtl30N-20S.mat_regandsignif_seriestemporelles_1.ps``.
31%
32% EXAMPLES
33% ========
34%
35% ::
36%
37% >> addpath('../PROGRAMMES/')
38% >> tpacpandreg_startup
39% >> regandsignif_seriestemporelles
40%
41%
42% SEE ALSO
43% ========
44%
45% tpacpandreg_startup.m_
46%
47% .. _tpacpandreg_startup.m : tpacpandreg_startup.m.html
48%
49% eof_NCEP_an.m_
50%
51% .. _eof_NCEP_an.m : eof_NCEP_an.m.html
52%
53% TODO
54% ====
55%
56% improve description
57%
58% pourquoi ``return`` à la fin
59%
60% ajout xlabel et ylabel
61%
62% EVOLUTIONS
63% ==========
64%
65% $Id$
66%
67%
68% - fplod 2009-08-26T11:00:35Z aedon.locean-ipsl.upmc.fr (Darwin)
69%
70%   * remplacement de ``eps`` par ``ps`` pour pouvoir imprimer les figures
71%     produites par ``octave``
72%
73% - fplod 2009-08-25T10:40:16Z aedon.locean-ipsl.upmc.fr (Darwin)
74%
75%   * modif commentaires liée au renommage
76%
77% - jmignot 2009-08-25
78%
79%   * RESULTATS/Reg_seriestemporelles.m renommé en
80%     RESULTATS/regandsignif_seriestemporelles.m pour éviter confusion
81%     avec PROGRAMMES/Reg_seriestemporelles.m
82%   * chgt de noms de fichiers : ``EOF_`` devient ``eof_``
83%
84% - fplod 2009-08-24T11:44:38Z aedon.locean-ipsl.upmc.fr (Darwin)
85%
86%   * add header
87%   * répertoire de données relatifs au répertoire courant
88%   * suppression de ``clear all`` présent dans ``tpacpandreg_startup.m``
89%   * as octave save default format is ASCII and no default extension
90%     while matlab save default format is MAT v5 mat-file (little endian) and
91%     default extension is ``.mat``, write more precise save instruction
92%   * save the figure
93%   * replace file radical ``EOF_SST_tropAtl`` by ``EOF_SSTan_tropAtl``
94%   * split lines with multiple statements
95%   * handle ``corrcoef`` octave/matlab difference of output
96%
97%-
98
99%%
100%% PARAMETRES DU PROGRAMME
101% selection de la composante principale a considerer
102ipc=1; %rang de la composante principale que l'on va considerer ici
103
104% les coordonnees du point d'espace auquel on veut comparer cette
105% composante principale doit etre choisi plus bas, apres chargement des
106% longitudes et latitudes
107%%
108%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
110%%%%              CHARGEMENT ET PREPARATION DES DONNEES
111%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
112
113nannees=60;
114repertoire=[ '..' filesep 'DONNEES' filesep ]; % a adapter a chaque cas: chemin d acces aux donnees
115
116% Mask
117%------
118file='lsmask_tropatl_PacandMedblancs.mat'
119   load([repertoire file]);
120% Data
121%--------
122  repertoire2=[repertoire 'MAT' filesep] % a adapter a chaque cas: chemin d acces aux donnees
123  file=['skt.mon.tropatl.mat']
124  load([repertoire2 file]); % chargement des donnees
125  tab=permute(tab,[2 3 1]); % permutation des dimensions pour organiser le tableau sous la forme [lat lon temps]
126
127% Application du masque
128%----------------------
129mask3D=repmat(mask,[1 1 size(tab,3)]);
130tab(mask3D~=0)=NaN;
131
132
133%  MANIPULATIONS TEMPORELLES: MOYENNES
134
135% Construction de moyennes annuelles
136%---------------------------------------
137tab=reshape(tab,size(tab,1),size(tab,2),12,nannees);
138tab_an=squeeze(mean(tab,3));
139%Calcul des anomalies
140%tab_an_mean=squeeze(mean(tab_an,3));
141%tab_an_mean=repmat(tab_an_mean,[1 1 size(tab_an,3)]);
142%tab_an=tab_an-tab_an_mean;
143
144%%
145%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
146%%%% selection d'un point d'espace
147%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
148% le point d'espace est selectionne en reperant son indice i,j dans le
149% tableau de longitude et de latitude
150
151%i=find(lon>-96 & lon<-94);
152%j=find(lat>19 & lat<21);
153i=find(lon>-96 & lon<-94);
154j=find(lat>19 & lat<21);
155%i=find(lon>-21 & lon<-19);
156%j=find(lat>19 & lat<21);
157%i=find(lon>4 & lon<6)
158%j=find(lat>-11 & lat<-9)
159
160SST=squeeze(tab_an(j,i,:));
161
162%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
163%%%%% chargement des composantes principales
164%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
165
166file=['eof_SSTan_tropAtl30N-20S.mat'];
167titledataeof='SST' % je definis ce nom pour pouvoir l'inclure dans le graphique plus bas.
168if (run_octave == 0)
169 load([repertoire file]);
170else
171 load('-v7',[repertoire file]);
172end
173PC=PC(:,ipc);
174
175%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
176%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
177%%%%               NUAGE DE POINTS
178%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
179
180ifigure=1;
181figure(ifigure);
182plot(SST,PC,'x')
183hold on
184
185%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
186%%%%%%   REGRESSION LINEAIRE
187%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
188
189%[b0,b1,s,R,sigb0,sigb1] = linreg(SST,serie);
190
191SSTmean=mean(SST);PCmean=mean(PC);
192n=length(SST);
193
194% calcul de b1 et b0, coefficient directeur et ordonnee a l origine de la
195% droite de regression
196b1=sum((PC-PCmean).*(SST-SSTmean))/(sum(SST.*SST)-n*SSTmean^2);
197b0=PCmean-b1*SSTmean;
198
199PCc=b0+b1*SST;
200
201%trace de la droite de regression
202%---------------------------------
203plot(SST,PCc,'r')
204
205%Calcul du coefficient de détermination
206%----------------------------------------
207s=sqrt(sum((PC-PCc).^2)/(n-2));
208R=sum((PCc-PCmean).^2)/sum((PC-PCmean).^2);
209
210%significativite statistique comparaison de la correlation r et de la
211%valeur critique rc donnee par la table de student en fonction du nombre de
212%degres de liberte ndf
213%------------------------------
214
215r=corrcoef(SST,PC);
216if (run_octave == 0)
217 r=r(2,1);
218end
219
220% remarque: b1=r*std(PC)/std(SST)
221
222% on estime le nombre de degrés de liberté
223ndf=nannees; %(l'atmosphère est approximativement un bruit blanc à l'échelle de temps interanuellee)
224
225% on calcule le seuil de significativité au percentile P en inversant
226% l'écart réduit T=y*sqrt(nn)./(1-y.^2).^0.5 qui est distribue selon
227% un loi de student avec nn=ndf-2 degres de liberte.
228P=.95;
229nn=ndf-2;
230t=tinv(P,nn);
231rc = t ./ ( nn + t.^2 ).^0.5;
232% rc est la valeur ccritique de la correlation pour rejeter l'hypothese nulle
233
234title(['r = ' num2str(r) '  valeur critique: rc= ' num2str(rc)])
235
236% significativite statistique de b0 et b1
237%--------------------------------------------
238
239% sauvegarde de la figure
240printer='ps';
241print_printer=['-d', printer];
242fullfilename=['.' filesep file '_' mfilename '_'  num2str(ifigure) '.' printer];
243print(print_printer,fullfilename);
244clear print_printer;
245clear fullfilename;
246clear printer;
247%
248clear ifigure;
249
250return
251
Note: See TracBrowser for help on using the repository browser.