🛠️
Bemind
Инструменты оценки
Инструменты оценки
  • Основные показатели стратегии
  • Инструменты оценки модели линейной регрессии
    • 1. Средняя квадратическая ошибка
    • 2. Средняя абсолютная ошибка
    • 3. Корень из средней квадратической ошибки.
    • 4. Коэффициент детерминации
    • 5. Скорректированный коэффициент детерминации:
    • 6. Коэффициенты модели
    • 7. Проверка гипотез о коэффициентах модели
    • 8. Проверка предположений о модели
  • Инструменты оценки качества обучения классифицирующей нейронной сети
    • Точность (Accuracy)
    • Матрица ошибок (Confusion Matrix)
    • Кривая ROC (Receiver Operating Characteristic)
    • Кросс-энтропийная функция потерь (Cross-Entropy Loss)
    • Precision, Recall, F1-score
    • Разделение данных на тренировочный, валидационный и тестовый наборы
    • Мониторинг метрик на валидационном наборе во время обучения для предотвращения переобучения
  • Линейная, логистическая и регрессия Пуассона.
    • Введение в простую линейную регрессию
    • Введение в регрессию Пуассона для подсчета данных
    • Введение в простую линейную регрессию
    • Полное руководство по линейной регрессии в Python
      • Как создать остаточный график в Python
      • Понимание гетероскедастичности в регрессионном анализе
      • Как выполнить тест Дарбина-Ватсона в Python
      • Четыре допущения линейной регрессии
    • Как рассчитать VIF в Python
    • Руководство по мультиколлинеарности и VIF в регрессии
  • Мультиколлинеарность и коэффициент инфляции дисперсии (VIF) в регрессионной модели (с кодом Python)
    • Фактор инфляции дисперсии в Python
  • Функции потерь в Python — простая реализация
  • CADE — интересный способ поиска аномалий в многомерных данных
  • Как использовать Python для проверки нормальности
  • Анализ карты Пуанкаре
    • Анализ Финансовых Рынков: Автокорреляция и Спектральный Анализ Криптовалют
  • Предсказания цен с использованием постоянной Фейгенбаума
  • Расчет вероятности серии убыточных сделок в серии игр.
  • Анализ данных ставок и результатов с использованием Python
Powered by GitBook
On this page
  1. Инструменты оценки модели линейной регрессии

8. Проверка предположений о модели

Восьмым инструментом является проверка предположений о модели (Assumption Checks). В линейной регрессии существуют несколько предположений о данных, которые должны выполняться для правильного применения модели. Эти предположения включают в себя:

  1. Линейность: Отношение между зависимой переменной и независимыми переменными должно быть линейным.

  2. Независимость ошибок: Ошибки модели должны быть независимыми друг от друга.

  3. Нормальность ошибок: Ошибки модели должны иметь нормальное распределение.

  4. Гомоскедастичность: Ошибки модели должны иметь постоянную дисперсию.

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

В качестве примера вызова проверки предположений о модели в линейной регрессии на Python можно использовать следующий код с использованием библиотеки statsmodels:

import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

# Данные
X = np.array([3, -0.5, 2, 7])
y = np.array([2.5, 0.0, 2, 8])

# Подгонка модели линейной регрессии
X = sm.add_constant(X)  # Добавляем константу для вычисления смещения
model = sm.OLS(y, X).fit()

# Проверка линейности
fig = sm.graphics.plot_regress_exog(model, exog_idx=1, fig=plt.figure())

# Проверка нормальности остатков
sm.qqplot(model.resid, line='s', fit=True)
plt.show()

# Проверка гомоскедастичности
plt.scatter(model.fittedvalues, model.resid)
plt.xlabel("Fitted Values")
plt.ylabel("Residuals")
plt.show()

# Проверка мультиколлинеарности
print(np.max(np.abs(np.corrcoef(X.T))))

Разберем этот код:

  1. Мы создаем массивы X и y с данными.

  2. Добавляем константу к массиву X с помощью sm.add_constant(X), чтобы учесть смещение в модели.

  3. Подгоняем модель линейной регрессии с помощью sm.OLS(y, X).fit().

  4. Проверка линейности: Строим график остатков по отношению к предсказанным значениям и независимой переменной с помощью sm.graphics.plot_regress_exog(model, fig=plt.figure()).

  5. Проверка нормальности остатков: Строим qq-график для остатков с помощью sm.qqplot(model.resid, line='s', fit=True) и отображаем его с помощью plt.show().

  6. Проверка гомоскедастичности: Строим график остатков по отношению к предсказанным значениям с помощью plt.scatter(model.fittedvalues, model.resid) и отображаем его с помощью plt.show().

  7. Проверка мультиколлинеарности: Вычисляем максимальный абсолютный коэффициент корреляции между независимыми переменными с помощью np.max(np.abs(np.corrcoef(X.T))).

Анализируя графики и значения, полученные в результате выполнения этого кода, вы можете сделать вывод о том, выполняются ли предположения модели линейной регрессии для данных X и y.

И еще один пример:

Предположения, которые необходимо проверить, включают:

  1. Линейность

  2. Нормальность остатков

  3. Гомоскедастичность (постоянная дисперсия остатков)

  4. Отсутствие мультиколлинеарности

Вот пример кода, демонстрирующий эти проверки:

import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt

# Создаем некоторые тестовые данные
np.random.seed(12345)
n = 100
x = np.linspace(0, 10, n)
X = np.column_stack((x, x**2))
beta = [0.5, 0.1]
e = np.random.normal(size=n)
y = np.dot(X, beta) + e

# Создаем DataFrame для входных данных
data = pd.DataFrame({"x": x, "x_squared": x**2, "y": y})

# Подгоняем модель линейной регрессии
X = data[["x", "x_squared"]]
y = data["y"]
model = sm.OLS(y, X).fit()

# Проверка линейности
fig = sm.graphics.plot_regress_exog(model, "x", fig=plt.figure())

# Проверка нормальности остатков
sm.qqplot(model.resid, line='s', fit=True)
plt.show()

# Проверка гомоскедастичности
plt.scatter(model.fittedvalues, model.resid)
plt.xlabel("Fitted Values")
plt.ylabel("Residuals")
plt.show()

# Проверка мультиколлинеарности
print(np.max(np.abs(np.corrcoef(X.T))))

Previous7. Проверка гипотез о коэффициентах моделиNextИнструменты оценки качества обучения классифицирующей нейронной сети

Last updated 1 year ago