Problème : Je dois calculer le coefficient de corrélation de Pearson pour deux ensembles de mesures stockés dans ma base de données SQL Server. Comment puis-je faire cela ?
Solution : Le coefficient de corrélation de Pearson, également connu sous le nom de coefficient de Pearson, est un calcul mathématique permettant de déterminer la corrélation linéaire entre deux ensembles de données. Le coefficient de Pearson peut avoir une valeur de -1 à +1 inclus. Plus le coefficient de Pearson est proche de +1, plus la corrélation positive est forte. En d’autres termes, lorsque les valeurs de la première mesure augmentent, les valeurs de la deuxième mesure augmentent également. Plus le coefficient de Pearson est proche de -1, plus la corrélation négative est forte. En d’autres termes, lorsque les valeurs de la première mesure augmentent, les valeurs de la deuxième mesure diminuent. Un coefficient de Pearson proche de 0, qu’il soit positif ou négatif, indique qu’il y a peu ou pas de corrélation entre les deux ensembles de données.
Une fois que nos données sont dans une table, l’écriture d’une requête T-SQL pour calculer le coefficient de corrélation de Pearson est assez simple. Cependant, étant donné que le calcul implique des nombres à virgule flottante et une division, nous devons veiller à ce que tous nos nombres soient des nombres à virgule flottante afin de ne pas obtenir un coefficient de Pearson ayant uniquement les valeurs entières -1, 0 ou +1.
Examinons trois exemples pour comprendre comment calculer le coefficient de Pearson dans SQL Server.
Exemple de corrélation positive
Commençons par notre exemple de corrélation positive. Nous allons créer une table avec des colonnes pour la mesure A et la mesure B, et insérer 20 lignes de données dans la table.
create table dbo.tblPositiveCorrelation
(
pkID integer identity(1,1) primary key,
measurementA float,
measurementB float
)
insert into dbo.tblPositiveCorrelation values (1.23350258, 1.095695912)
insert into dbo.tblPositiveCorrelation values (2.740809824, 2.515451457)
insert into dbo.tblPositiveCorrelation values (3.921364427, 3.535163576)
insert into dbo.tblPositiveCorrelation values (5.727112392, 5.440233141)
insert into dbo.tblPositiveCorrelation values (7.20400738, 7.034966693)
insert into dbo.tblPositiveCorrelation values (8.631639604, 8.657499396)
insert into dbo.tblPositiveCorrelation values (9.861575884, 10.25266377)
insert into dbo.tblPositiveCorrelation values (11.26773017, 11.26025417)
insert into dbo.tblPositiveCorrelation values (12.5538764, 12.73863763)
insert into dbo.tblPositiveCorrelation values (13.77519226, 14.52156486)
insert into dbo.tblPositiveCorrelation values (15.75008844, 16.27021747)
insert into dbo.tblPositiveCorrelation values (16.8040222, 18.04587966)
insert into dbo.tblPositiveCorrelation values (18.63079433, 19.52058173)
insert into dbo.tblPositiveCorrelation values (20.39947639, 21.38713489)
insert into dbo.tblPositiveCorrelation values (21.97242484, 22.42767485)
insert into dbo.tblPositiveCorrelation values (23.19091439, 24.18502987)
insert into dbo.tblPositiveCorrelation values (24.28721758, 26.09195563)
insert into dbo.tblPositiveCorrelation values (26.24160723, 27.51123988)
insert into dbo.tblPositiveCorrelation values (27.33126123, 28.93676183)
insert into dbo.tblPositiveCorrelation values (28.73483376, 29.97030518)
Ensuite, nous exécuterons la requête T-SQL pour calculer le coefficient de Pearson. Nous afficherons également les valeurs du numérateur et du dénominateur pour nous aider à vérifier que la formule est correcte.
SELECT
(Avg(measurementA * measurementB) - (Avg(measurementA) * Avg(measurementB))) / (StDevP(measurementA) * StDevP(measurementB)) as PearsonCoefficient,
(Avg(measurementA * measurementB) - (Avg(measurementA) * Avg(measurementB))) as numerator,
(StDevP(measurementA) * StDevP(measurementB)) as denominator
FROM dbo.tblPositiveCorrelation
Le résultat sera un coefficient de Pearson proche de +1, indiquant une forte corrélation positive entre la mesure A et la mesure B.
Exemple de corrélation négative
Ensuite, passons à notre exemple de corrélation négative. Nous allons créer et remplir une table distincte avec les colonnes Mesure A et Mesure B.
create table dbo.tblNegativeCorrelation
(
pkID integer identity(1,1) primary key,
measurementA float,
measurementB float
)
insert into dbo.tblNegativeCorrelation values (1.581662726, 29.65152293)
insert into dbo.tblNegativeCorrelation values (3.4369907, 28.01601842)
insert into dbo.tblNegativeCorrelation values (5.20372199, 26.64762377)
insert into dbo.tblNegativeCorrelation values (6.548564275, 25.52941989)
insert into dbo.tblNegativeCorrelation values (8.236812206, 24.46357622)
insert into dbo.tblNegativeCorrelation values (9.37715358, 22.94984262)
insert into dbo.tblNegativeCorrelation values (10.51055702, 21.25097239)
insert into dbo.tblNegativeCorrelation values (11.82382087, 19.31299184)
insert into dbo.tblNegativeCorrelation values (13.40427251, 17.97538895)
insert into dbo.tblNegativeCorrelation values (15.24348405, 16.23958242)
insert into dbo.tblNegativeCorrelation values (16.64768328, 14.69010224)
insert into dbo.tblNegativeCorrelation values (18.04064143, 12.86494034)
insert into dbo.tblNegativeCorrelation values (19.51671012, 11.4152393)
insert into dbo.tblNegativeCorrelation values (20.58177787, 10.30092096)
insert into dbo.tblNegativeCorrelation values (22.04140726, 8.625347334)
insert into dbo.tblNegativeCorrelation values (23.81958423, 6.721438358)
insert into dbo.tblNegativeCorrelation values (25.02552769, 5.340616899)
insert into dbo.tblNegativeCorrelation values (26.9841361, 3.958114624)
insert into dbo.tblNegativeCorrelation values (28.04718847, 2.624742871)
insert into dbo.tblNegativeCorrelation values (29.6213496, 1.264092442)
La requête T-SQL pour calculer le coefficient de Pearson est la même que ci-dessus, à l’exception du nom de la table.
Le résultat sera un coefficient de Pearson proche de -1, indiquant une forte corrélation négative entre la mesure A et la mesure B.
Exemple sans corrélation
Enfin, examinons un exemple où il y a peu ou pas de corrélation. Nous allons créer et remplir une table distincte avec les colonnes Mesure A et Mesure B.
create table dbo.tblNoCorrelation
(
pkID integer identity(1,1) primary key,
measurementA float,
measurementB float
)
insert into dbo.tblNoCorrelation values (0.80544264, 0.16208355)
insert into dbo.tblNoCorrelation values (0.895563605, 0.764382306)
insert into dbo.tblNoCorrelation values (0.169711771, 0.958280698)
insert into dbo.tblNoCorrelation values (0.377226503, 0.26927763)
insert into dbo.tblNoCorrelation values (0.695216156, 0.889767386)
insert into dbo.tblNoCorrelation values (0.864166528, 0.93030605)
insert into dbo.tblNoCorrelation values (0.909937206, 0.146715435)
insert into dbo.tblNoCorrelation values (0.126278394, 0.090460955)
insert into dbo.tblNoCorrelation values (0.743036786, 0.284939579)
insert into dbo.tblNoCorrelation values (0.482858255, 0.958005081)
insert into dbo.tblNoCorrelation values (0.452936554, 0.521588833)
insert into dbo.tblNoCorrelation values (0.232092942, 0.891831068)
insert into dbo.tblNoCorrelation values (0.303048204, 0.543747358)
insert into dbo.tblNoCorrelation values (0.562067989, 0.852912301)
insert into dbo.tblNoCorrelation values (0.752175511, 0.721606105)
insert into dbo.tblNoCorrelation values (0.09224805, 0.443346524)
insert into dbo.tblNoCorrelation values (0.390609317, 0.470526115)
insert into dbo.tblNoCorrelation values (0.925485575, 0.815146232)
insert into dbo.tblNoCorrelation values (0.598509836, 0.060795557)
insert into dbo.tblNoCorrelation values (0.87523696, 0.334668821)
La requête T-SQL pour calculer le coefficient de Pearson pour cette table est la même que ci-dessus.
Le résultat sera un coefficient de Pearson proche de 0, indiquant peu ou pas de corrélation entre la mesure A et la mesure B.
Conclusion
Le calcul du coefficient de corrélation de Pearson dans SQL Server est un processus simple. En utilisant la requête T-SQL appropriée, nous pouvons déterminer la force et la direction de la corrélation entre deux ensembles de mesures. Qu’il s’agisse d’une corrélation positive, d’une corrélation négative ou d’une absence de corrélation, le coefficient de Pearson fournit des informations précieuses sur la relation entre les données.
N’oubliez pas de vous assurer que tous les nombres utilisés dans le calcul sont des nombres à virgule flottante pour éviter des résultats incorrects. De plus, il est toujours bon de vérifier le coefficient de Pearson calculé à l’aide d’autres outils ou méthodes, tels qu’Excel, pour garantir l’exactitude des résultats.