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

Зміст курсу

Основи Теорії Ймовірностей

Основи Теорії Ймовірностей

1. Базові Поняття Теорії Ймовірностей
2. Ймовірність Складних Подій
3. Поширені Дискретні Розподіли
4. Поширені Неперервні Розподіли
5. Коваріація та Кореляція

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

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

course content

Зміст курсу

Основи Теорії Ймовірностей

Основи Теорії Ймовірностей

1. Базові Поняття Теорії Ймовірностей
2. Ймовірність Складних Подій
3. Поширені Дискретні Розподіли
4. Поширені Неперервні Розподіли
5. Коваріація та Кореляція

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