В этой статье мы увидим, как в Python строится регрессионная модель. Во-первых, давайте поговорим о том, что на самом деле означает регрессионный анализ.

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

Давайте посмотрим на уравнения простой линейной регрессии и множественной линейной регрессии.

Здесь y - зависимая переменная, а xi - независимые переменные. b0 - это точка пересечения или константа, которая определяется как среднее значение зависимой переменной, когда все независимые переменные установлены в ноль.

Мы будем применять концепцию множественной линейной регрессии для прогнозирования стоимости медицинского страхования. Давайте посмотрим, как построить модель на Python.

1) Импортируйте библиотеки Python

2) Импортируйте данные

3) Обработка недостающих значений

4) фиктивное создание категориальных переменных

5) Корреляция для выбора переменных

6) Разделение данных (обучение и тестирование)

7) Построение модели

8) Анализ упадка и проверка ошибок

Здесь вы увидите данные РАСХОДЫ НА СТРАХОВАНИЕ ЗДОРОВЬЯ. Основная цель построения модели - спрогнозировать стоимость медицинского страхования с учетом некоторых факторов. Итак, без промедления приступим.

Данные имеют 7 столбцов:

  1. age: возраст основного бенефициара.
  2. пол: пол
  3. ИМТ: индекс массы тела
  4. Дети: количество детей, охваченных медицинским страхованием / количество иждивенцев
  5. Курильщик
  6. Регион: жилая зона получателя помощи в США, северо-восток, юго-восток, юго-запад, северо-запад.
  7. Сборы: индивидуальные медицинские расходы, оплачиваемые страховкой здоровья.

Важные библиотеки Python, которые необходимо импортировать:

Теперь мы импортируем данные о стоимости медицинского страхования и просматриваем данные. На изображении ниже показаны первые пять строк данных.

Нашим следующим шагом будет изучение данных. Нам нужно увидеть, нужно ли проводить обработку пропущенных значений или выбросов. К счастью, у нас нет пропущенных значений, и наши данные чистые.

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

На изображении выше показаны общие расходы на страхование мужчин и женщин.

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

Теперь посмотрим, сколько курящих мужчин и женщин - 18 лет.

Удивительно, но мы видим, что 18 лет тоже имеют привычку курить.

У нас есть столбец для подсчета детей, которые есть у людей. Итак, давайте посмотрим на распределение.

Мы видим, что лишь у немногих есть пятеро детей, а у многих нет детей.

Теперь давайте посмотрим на другой важный столбец данных - ИМТ (индекс массы тела). Говорят, что человек с ИМТ менее 18,5 имеет недостаточный вес. ИМТ от 18,5 до 24,9 - это идеальный. ИМТ от 25 до 29,9 означает избыточный вес, а ИМТ более 30 указывает на ожирение.

На изображении ниже показаны суммы, взимаемые с лиц с различным ИМТ, имеющих привычку курить.

Теперь давайте посмотрим на количество людей, имеющих привычку курить и подпадающих под разные категории ИМТ.

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

Теперь мы визуализировали данные в полной мере, и пришло время построить модель. Сначала сделаем макеты для категориальных переменных. Когда манекены сделаны, категориальные переменные выглядят так:

и после объединения числовых переменных мы получаем наши окончательные данные. что выглядит так:

Теперь переходим к определению множественной линейной регрессии. Здесь наша «Y» - это расходы, поскольку нам нужно спрогнозировать стоимость страховки и другие столбцы, представляющие независимые переменные («xi»). Здесь мы взяли логарифм Y, чтобы получить кривую нормального распределения. При построении модели мы разделяем данные на данные тестирования и обучения. Это означает, что мы берем 70 процентов данных как данные обучения и 30 процентов как данные тестирования.

После разделения данных нам нужно добавить константу (b0), как гласит определение многолинейной регрессии. После этого мы подбираем нашу модель и получаем результаты регрессии OLS (обычный метод наименьших квадратов). Здесь переменных меньше, поскольку важность характеристик для этих переменных была больше по сравнению с другими.

Теперь проверяем наличие ошибок в данных.

MAE: средняя абсолютная ошибка

MSE: среднеквадратичная ошибка

RMSE: среднеквадратическая ошибка

За тренировочные данные получаем:

а для данных Testing получаем:

Мы говорим, что модель переоснащается, если MSE данных обучения меньше, чем MSE данных тестирования.

Следовательно, наша модель не является ни переоснащенной, ни недостаточной, и ее можно использовать для прогнозирования стоимости страхования.

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

Например:

Стоимость медицинского страхования для лиц в возрасте 35 лет, курящих и имеющих ИМТ 24, составит:

y = b0 + (coef_age) * age + (coef_bmi) * bmi + (coef_smoker_yes) * курильщик

После решения уравнения мы получаем значение 23784. Следовательно, это будет стоимость медицинского страхования для вышеупомянутого человека. Аналогичным образом мы можем получить сумму для других.

Следовательно, вот как можно использовать модель множественной регрессии для прогнозирования.

Спасибо за чтение:)