Как выполнить двумерный анализ в Python (с примерами)

Как выполнить двумерный анализ в Python (с примерами)

Термин двумерный анализ относится к анализу двух переменных. Вы можете запомнить это, потому что приставка «би» означает «два».

Цель двумерного анализа состоит в том, чтобы понять взаимосвязь между двумя переменными.

Существует три распространенных способа выполнения двумерного анализа:

1. Диаграммы рассеяния

2. Коэффициенты корреляции

3. Простая линейная регрессия

В следующем примере показано, как выполнить каждый из этих типов двумерного анализа в Python с использованием следующего кадра данных pandas, который содержит информацию о двух переменных: (1) количество часов, потраченных на учебу, и (2) оценка за экзамен, полученная 20 разными студентами:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'hours': [1, 1, 1, 2, 2, 2, 3, 3, 3, 3,
 3, 4, 4, 5, 5, 6, 6, 6, 7, 8],
 'score': [75, 66, 68, 74, 78, 72, 85, 82, 90, 82,
 80, 88, 85, 90, 92, 94, 94, 88, 91, 96]})

#view first five rows of DataFrame
df.head ()

 hours score
0 1 75
1 1 66
2 1 68
3 2 74
4 2 78

1. Диаграммы рассеяния

Мы можем использовать следующий синтаксис, чтобы создать диаграмму рассеивания часов обучения по сравнению с результатами экзаменов:

import matplotlib.pyplot as plt

#create scatterplot of hours vs. score
plt.scatter (df.hours , df.score )
plt.title('Hours Studied vs. Exam Score')
plt.xlabel('Hours Studied')
plt.ylabel('Exam Score')

По оси x отложено количество часов обучения, а по оси y – полученный балл за экзамен.

Из графика видно, что между двумя переменными существует положительная взаимосвязь: по мере увеличения количества часов обучения экзаменационные баллы также имеют тенденцию к увеличению.

2. Коэффициенты корреляции

Коэффициент корреляции Пирсона — это способ количественной оценки линейной зависимости между двумя переменными.

Мы можем использовать функцию corr() в pandas для создания матрицы корреляции:

#create correlation matrix
df.corr ()

 hours score
hours 1.000000 0.891306
score 0.891306 1.000000

Коэффициент корреляции оказывается равным 0,891.Это указывает на сильную положительную корреляцию между отработанными часами и полученными экзаменационными баллами.

3. Простая линейная регрессия

Простая линейная регрессия — это статистический метод, который мы можем использовать для количественной оценки взаимосвязи между двумя переменными.

Мы можем использовать функцию OLS() из пакета statsmodels, чтобы быстро подобрать простую модель линейной регрессии для часов обучения и полученных баллов за экзамен:

import statsmodels.api as sm

#define response variable
y = df['score']

#define explanatory variable
x = df[['hours']]

#add constant to predictor variables
x = sm.add_constant (x)

#fit linear regression model
model = sm. OLS (y, x). fit ()

#view model summary
print(model. summary ())

 OLS Regression Results 
==============================================================================
Dep. Variable: score R-squared: 0.794
Model: OLS Adj. R-squared: 0.783
Method: Least Squares F-statistic: 69.56
Date: Mon, 22 Nov 2021 Prob (F-statistic): 1.35e-07
Time: 16:15:52 Log-Likelihood: -55.886
No. Observations: 20 AIC: 115.8
Df Residuals: 18 BIC: 117.8
Df Model: 1 
Covariance Type: nonrobust 
==============================================================================
 coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 69.0734 1.965 35.149 0.000 64.945 73.202
hours 3.8471 0.461 8.340 0.000 2.878 4.816
==============================================================================
Omnibus: 0.171 Durbin-Watson: 1.404
Prob(Omnibus): 0.918 Jarque-Bera (JB): 0.177
Skew: 0.165 Prob(JB): 0.915
Kurtosis: 2.679 Cond. No. 9.37
==============================================================================

Подогнанное уравнение регрессии оказывается таким:

Экзаменационный балл = 69,0734 + 3,8471*(часы обучения)

Это говорит нам о том, что каждый дополнительный час обучения связан со средним увеличением экзаменационного балла на 3,8471 .

Мы также можем использовать подогнанное уравнение регрессии, чтобы предсказать балл, который получит учащийся на основе общего количества часов обучения.

Например, предполагается, что студент, который занимается 3 часа, получит 81,6147 баллов :

  • Экзаменационный балл = 69,0734 + 3,8471*(часы обучения)
  • Экзаменационный балл = 69,0734 + 3,8471*(3)
  • Экзаменационный балл = 81,6147

Дополнительные ресурсы

В следующих руководствах представлена дополнительная информация о двумерном анализе:

Введение в двумерный анализ
5 примеров двумерных данных в реальной жизни
Введение в простую линейную регрессию
Введение в коэффициент корреляции Пирсона

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.