Contenu du cours
Les Bases de la Théorie des Probabilités
Les Bases de la Théorie des Probabilités
Qu'est-ce Que la Covariance ?
La covariance est une mesure numérique qui quantifie la relation entre deux variables.
Elle mesure comment les variations d'une variable correspondent aux variations d'une autre variable. Plus précisément, la covariance mesure la variabilité conjointe de deux variables et offre des indications sur la direction (positive ou négative) de cette variabilité.
Calcul de la covariance
- Réalisez plusieurs fois la première expérience stochastique et notez les résultats de chaque essai dans un tableau. Ce sera un tableau
x
; - Réalisez plusieurs fois la deuxième expérience stochastique et enregistrez les résultats dans le tableau
y
; - Calculez la covariance en utilisant la bibliothèque
numpy
:covariance = np.cov(x, y)[0, 1]
.
Exemples
import numpy as np import matplotlib.pyplot as plt # Assume that results of some stochastic experiments are stored in x array x = np.random.rand(100) * 10 # We provide another stochastic experiment by using the value of x and adding some noise y = x + np.random.randn(100) # Calculate the covariance covariance = np.cov(x, y)[0, 1] plt.scatter(x, y) # Add labels and title plt.xlabel('X') plt.ylabel('Y') plt.title('Covariance is '+ str(round(covariance, 3) )) # Show the plot plt.show()
On observe qu'à mesure que la valeur de x
augmente, la valeur de y
augmente également. La corrélation est donc positive. Proposons une autre expérience:
import numpy as np import matplotlib.pyplot as plt # Assume that resylts of some stohastic experiments are stored in x array x = np.random.rand(100) * 10 # We provide another stohastic experiment by using the value of -x and adding some noise y = -x + np.random.randn(100) # Calculate the covariance covariance = np.cov(x, y)[0, 1] plt.scatter(x, y) # Add labels and title plt.xlabel('X') plt.ylabel('Y') plt.title('Covariance is '+ str(round(covariance, 3) )) # Show the plot plt.show()
Maintenant, alors que la valeur x
augmente, la valeur y
diminue et la covariance est négative. Voyons maintenant la covariation entre les résultats de deux expériences indépendantes:
import numpy as np import matplotlib.pyplot as plt # Generate random data for two variables with zero correlation np.random.seed(0) x = np.random.rand(200) y = np.random.rand(200) # Calculate the covariance covariance = np.cov(x, y)[0, 1] plt.scatter(x, y) # Add labels and title plt.xlabel('X') plt.ylabel('Y') plt.title('Covariance is '+ str(round(covariance, 3) )) # Show the plot plt.show()
En conséquence, nous pouvons tirer une conclusion :
- Si la covariance entre deux valeurs est positive, alors, avec l'augmentation de la première valeur, la deuxième valeur augmente également ;
- Si la covariance entre deux valeurs est négative, alors, avec l'augmentation de la première valeur, la deuxième valeur diminue ;
- Si les valeurs sont indépendantes, alors elles ont une corrélation nulle (elles sont non corrélées).
Faites attention au dernier point : la corrélation est nulle si les valeurs sont indépendantes. Mais la réciproque n'est pas vraie : si la corrélation est nulle, cela ne signifie pas l'indépendance. Regardez l'exemple :
import numpy as np import matplotlib.pyplot as plt # Set the number of vectors/points to generate num_points = 1000 # Generate random angles uniformly distributed between 0 and 2*pi angles = np.random.uniform(0, 2*np.pi, num_points) # Convert angles to vectors in polar coordinates r = np.sqrt(np.random.uniform(0, 1, num_points)) # Square root to achieve uniform distribution within the circle x = r * np.cos(angles) y = r * np.sin(angles) # Calculate the covariance covariance = np.cov(x, y)[0, 1] plt.scatter(x, y) # Add labels and title plt.xlabel('X') plt.ylabel('Y') plt.title('Covariance is '+ str(round(covariance, 3) )) # Show the plot plt.show()
Les points dans l'exemple ci-dessus se trouvent à l'intérieur du cercle unité et sont donc dépendants mais non corrélés.
En général, seules les relations linéaires entre les valeurs peuvent être correctement identifiées à l'aide de la covariance. Ainsi, dans le cas de valeurs non corrélées, nous pouvons conclure qu'elles n'ont pas de dépendances linéaires, mais peuvent présenter des types de dépendances plus complexes.
Merci pour vos commentaires !