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:

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))
Je fait appel à une fonction student via "@stud" dont voici le code:

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
Est-ce que quelqu'un saurait comment faire pour obtenir la valeur seuil de mon coefficient de corrélation? merci d'avance!