Trouver valeur seuil dans un t-test
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:
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:
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!;)