Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Що таке коваріація? | Коваріація та Кореляція
Основи Теорії Ймовірностей

bookЩо таке коваріація?

Коваріація — це числова міра, яка кількісно визначає зв'язок між двома змінними.
Вона показує, як зміни однієї змінної відповідають змінам іншої змінної. Більш конкретно, коваріація вимірює спільну варіативність двох змінних і дає уявлення про напрямок (додатній або від’ємний) цієї варіативності.

Обчислення коваріації

  1. Провести перший стохастичний експеримент кілька разів і записати результати кожного експерименту в масив. Це буде масив x;
  2. Провести другий стохастичний експеримент кілька разів і записати результати в масив y;
  3. Обчислити коваріацію за допомогою бібліотеки numpy: covariance = np.cov(x, y)[0, 1].

Приклади

12345678910111213141516171819
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()
copy

Ми бачимо, що зі збільшенням значення x значення y також зростає. Кореляція, отже, є позитивною. Розглянемо інший експеримент:

12345678910111213141516171819
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()
copy

Тепер, коли значення x зростає, значення y зменшується, і коваріація є негативною. Тепер розглянемо коваріацію між результатами двох незалежних експериментів:

1234567891011121314151617181920
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()
copy

У результаті можна зробити висновок:

  1. Якщо коваріація між двома величинами додатна, то зі збільшенням першої величини друга також зростає;
  2. Якщо коваріація між двома величинами від’ємна, то зі збільшенням першої величини друга зменшується;
  3. Якщо величини незалежні, то їхня кореляція дорівнює нулю (вони некорельовані).

Зверніть увагу на останній пункт: кореляція дорівнює нулю, якщо величини незалежні. Але обернене твердження не є істинним: якщо кореляція дорівнює нулю, це не означає незалежність. Розгляньте приклад:

1234567891011121314151617181920212223242526
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()
copy

Точки у наведеному вище прикладі знаходяться всередині одиничного кола, тому є залежними, але некорельованими.
Загалом, лише лінійні зв'язки між значеннями можна добре ідентифікувати за допомогою коваріації. Таким чином, у випадку некорельованих значень можна зробити висновок, що вони не мають лінійних залежностей, але можуть мати інші, більш складні типи залежностей.

question mark

Яке з наступних тверджень є правильним?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Запитайте мені питання про цей предмет

Сумаризуйте цей розділ

Покажіть реальні приклади

Awesome!

Completion rate improved to 3.85

bookЩо таке коваріація?

Свайпніть щоб показати меню

Коваріація — це числова міра, яка кількісно визначає зв'язок між двома змінними.
Вона показує, як зміни однієї змінної відповідають змінам іншої змінної. Більш конкретно, коваріація вимірює спільну варіативність двох змінних і дає уявлення про напрямок (додатній або від’ємний) цієї варіативності.

Обчислення коваріації

  1. Провести перший стохастичний експеримент кілька разів і записати результати кожного експерименту в масив. Це буде масив x;
  2. Провести другий стохастичний експеримент кілька разів і записати результати в масив y;
  3. Обчислити коваріацію за допомогою бібліотеки numpy: covariance = np.cov(x, y)[0, 1].

Приклади

12345678910111213141516171819
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()
copy

Ми бачимо, що зі збільшенням значення x значення y також зростає. Кореляція, отже, є позитивною. Розглянемо інший експеримент:

12345678910111213141516171819
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()
copy

Тепер, коли значення x зростає, значення y зменшується, і коваріація є негативною. Тепер розглянемо коваріацію між результатами двох незалежних експериментів:

1234567891011121314151617181920
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()
copy

У результаті можна зробити висновок:

  1. Якщо коваріація між двома величинами додатна, то зі збільшенням першої величини друга також зростає;
  2. Якщо коваріація між двома величинами від’ємна, то зі збільшенням першої величини друга зменшується;
  3. Якщо величини незалежні, то їхня кореляція дорівнює нулю (вони некорельовані).

Зверніть увагу на останній пункт: кореляція дорівнює нулю, якщо величини незалежні. Але обернене твердження не є істинним: якщо кореляція дорівнює нулю, це не означає незалежність. Розгляньте приклад:

1234567891011121314151617181920212223242526
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()
copy

Точки у наведеному вище прикладі знаходяться всередині одиничного кола, тому є залежними, але некорельованими.
Загалом, лише лінійні зв'язки між значеннями можна добре ідентифікувати за допомогою коваріації. Таким чином, у випадку некорельованих значень можна зробити висновок, що вони не мають лінійних залежностей, але можуть мати інші, більш складні типи залежностей.

question mark

Яке з наступних тверджень є правильним?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 1
some-alt