НачатьНачать бесплатно

Анализ коэффициента детерминации R² регрессии

Коэффициент детерминации R² показывает, насколько точно данные соответствуют линии регрессии. В простой регрессии R² связан с корреляцией между двумя переменными: модуль корреляции равен квадратному корню из R², а знак корреляции совпадает со знаком коэффициента регрессии.

В этом упражнении вы начнёте работать со статистическим пакетом statsmodels, который предоставляет широкий набор инструментов для статистического моделирования и тестирования — аналогичных тем, что доступны в R, SAS и MATLAB.

Вы возьмёте два ряда, x и y, вычислите их корреляцию, а затем построите регрессию y на x с помощью функции OLS(y,x) из библиотеки statsmodels.api (обратите внимание: зависимая переменная y передаётся первым аргументом). Большинство линейных регрессий включают константу — свободный член (\(\small \alpha\) в уравнении \(\small y_t=\alpha + \beta x_t + \epsilon_t\)). Чтобы добавить константу при использовании функции OLS(), необходимо добавить столбец из единиц в правую часть регрессии.

Модуль statsmodels.api уже импортирован как sm.

Это упражнение является частью курса

Анализ временных рядов на Python

Посмотреть курс

Инструкции к упражнению

  • Вычислите корреляцию между x и y с помощью метода .corr().
  • Постройте регрессию:
    • Сначала преобразуйте Series x в DataFrame dfx.
    • Добавьте константу с помощью sm.add_constant() и сохраните результат в dfx1.
    • Регрессируйте y на dfx1 с помощью sm.OLS().fit().
  • Выведите результаты регрессии и сравните значение R² с корреляцией.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Import the statsmodels module
import statsmodels.api as sm

# Compute correlation of x and y
correlation = ___
print("The correlation between x and y is %4.2f" %(correlation))

# Convert the Series x to a DataFrame and name the column x
dfx = pd.DataFrame(x, columns=['x'])

# Add a constant to the DataFrame dfx
dfx1 = sm.add_constant(___)

# Regress y on dfx1
result = sm.OLS(___, ___).fit()

# Print out the results and look at the relationship between R-squared and the correlation above
print(result.summary())
Редактировать и запускать код