Bonjour.
J'ai calculé un coefficient de corrélation (temporel),r, et j'aimerais pouvoir dire à partir de quelle valeur de coefficient on peut considérer qu'il est significatif (seuil significatif de 95%).
Pour ce faire j'utilise un test d'hypothèse avec H0: r=0
On a T= r.(racine((n-2)/(1-r^2))) distribué selon une loi student à n-2 degré de liberté.
Voici mon code matlab:
Je fait appel à une fonction student via "@stud" dont voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function Z = correl; % page 149 ncid = netcdf.open('cor_pohlm.nc','NC_NOWRITE'); A = netcdf.getVar(ncid,80);% coefficient de corrélation B = ones (20,1); % initialise un vecteur avec des 1 partout qu'on remplace ensuite par les valeurs D = ones (20,1); n = 20 ; % nbr d'ensemble T = abs(A) .* (sqrt((n-2)./(1-(A.^2)))); % Statistique t for i = 1:20; C = double(T(i)); B(i,1) = quad(@stud,0,C) % limites de l'intégrale de la distribution de student :0 à C y = 2 .* B(i,1) % Test bilatéral car H0: coeff_correl=0 if y > 0.995; D(i,1) = 1; else D(i,1) = 0; end end Seuil = B % one-sided? si two-sided, c'est seuil= 2.* B %plot (1:20,D(1:20))
Est-ce que quelqu'un saurait comment faire pour obtenir la valeur seuil de mon coefficient de corrélation? merci d'avance!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function y = stud(x); y = tpdf(x,18); % 18 car on a 20 ensembles - 2![]()
Partager