Seaborn residplot – Построение остатков линейной регрессии
В этом учебнике вы узнаете, как создать график остатков с помощью Seaborn, используя функцию sns.residplot()
. Графики остатков позволяют оценить остатки аппроксимации регрессии, легко понимая их различия.
К концу этого руководства вы узнаете следующее:
Что такое остаточные графики и как их создать с помощью функции
sns.residplot()
Как изменить порядок аппроксимации базовой регрессии
Как настроить остаточные графики в Seaborn, используя цвета и линии Lowess
Оглавление
Что такое остаточный участок?
График остатков используется для отображения остаточных значений после построения модели линейной регрессии. Это позволяет легко определить, насколько хороша подгонка модели регрессии.
На изображении ниже мы сначала строим график регрессии слева, а остатки - справа. Сравнивая два графика, можно понять, насколько полезен график остатков для лучшего понимания качества подгонки модели.
В следующем разделе вы узнаете, как понимать важные параметры функции sns.residplot().
Понимание функции Seaborn residplot
Перед тем как перейти к построению остаточных графиков, давайте на момент рассмотрим функцию sns.residplot()
. Как вы можете видеть в приведенном ниже блоке кода, функция имеет множество различных параметров и аргументов по умолчанию. Хотя мы не будем исследовать их все в этом учебнике, вы узнаете о важных из них.
Давайте исследуем некоторые важные параметры функции
data
: Набор данных.x
,y
: Имена переменных в данных для осей x и y соответственно.x_partial
,y_partial
: Дополнительные переменные для частичной регрессии.lowess
: Булевое значение, указывающее, следует ли применять метод низкочастотного сглаживания к отображаемым данным.order
: Порядок полинома для подгонки регрессионной линии.robust
: Булевое значение, указывающее, следует ли использовать робастные методы оценки регрессии.dropna
: Булевое значение, указывающее, следует ли удалять отсутствующие значения из данных.label
: Метка для графика.color
: Цвет точек на графике.scatter_kws
: Дополнительные параметры для управления внешним видом точек.line_kws
: Дополнительные параметры для управления внешним видом линии регрессии.ax
: Объект оси Matplotlib, на котором будет построен график.
Теперь, когда вы узнали о некоторых более важных параметрах функции, давайте перейдем к построению графика остатков.
Построение невязок регрессии в Seaborn с помощью residplot
В этом разделе вы узнаете, как построить график остатков. Давайте построим распределение и применим модель линейной регрессии, используя функцию sns.regplot()
. Для этого мы воспользуемся встроенным в Seaborn набором данных 'tips'
. Посмотрите на приведенный ниже блок кода, чтобы увидеть, как это можно сделать:
В приведенном выше блоке кода мы просим Seaborn построить график зависимости суммы счета от суммы чаевых, предполагая, что сумма счета влияет на размер чаевых. Ознакомьтесь с возвращенной ниже регрессионной моделью:
Хотя мы можем видеть, насколько далеко значения находятся от линии регрессии, это не самый интуитивно понятный способ увидеть, насколько хорошо модель соответствует данным. Вместо этого мы можем построить график остатков, который показывает остаток для каждой точки данных с использованием функции
В приведенном выше блоке кода мы только изменили функцию на residplot()
, оставив параметры такими же. Это одно из преимуществ Seaborn: простой API для его функций во многом консистентен.
Посмотрите на график ниже, чтобы узнать, что будет возвращено:
Мы видим, что теперь появилась пунктирная горизонтальная линия. Эта линия представляет собой регрессионную модель. Каждая точка, таким образом, представлена резидуальным значением между линией и линией наилучшего соответствия. Когда значение для R-квадрата приближается к 1, значения также будут ближе к пунктирной линии.
В следующем разделе вы узнаете, как изменить порядок регрессионной модели.
Изменение порядка остатков регрессии в residplot Seaborn
Одно из преимуществ построения графика остатков заключается в том, что он может выявить несоответствие модели. Например, если регрессионная модель должна быть другого порядка, построение графика остатков подчеркнет это.
В приведенном ниже блоке кода мы загружаем новый набор данных. Затем мы строим график зависимости мощности автомобиля от его расхода топлива на галлон:
Используя приведенный выше код, мы получаем ниже представленную визуализацию данных:
На изображении выше мы видим, что данные имеют криволинейную зависимость. По этой причине может быть более целесообразным использовать модель регрессии другого порядка.
Чтобы изменить порядок базовой модели регрессии на графике остатков в Seaborn, вы можете использовать параметр order=
. Давайте изменим порядок модели на 2.
Путем изменения порядка остаточного графика мы можем увидеть, что значения графика подходят гораздо точнее, как показано на графике ниже:
В следующем разделе вы узнаете, как добавить линию Lowess к остаточному графику в Seaborn.
Добавление линии Лоусса к резидентному графику Seaborn
Seaborn позволяет добавлять линию LOWESS к residplot, используя lowess=True
. Линия LOWESS (локально взвешенное сглаживание точечных диаграмм) создает гладкую линию на графике, чтобы помочь вам лучше понять взаимосвязь между двумя переменными.
Давайте посмотрим, как мы можем использовать Seaborn для добавления линии LOWESS:
В приведенном ниже блоке кода мы построили предыдущую зависимость, используя первый порядок. Мы также попросили Seaborn построить линию lowess. Это привело к визуализации ниже:
Мы видим, что линия образует квадратичную кривую, что говорит нам о возможной необходимости использовать полином другого порядка.
В следующем разделе вы научитесь изменять цвет линии lowess.
Раскраска линии Лоусса на графике проживания Seaborn
По умолчанию Seaborn использует тот же цвет для линии LOWESS, что и для базовой диаграммы рассеяния. Это означает, что линия может быть немного трудно заметной. Для настройки параметров, таких как цвет линии LOWESS, можно использовать параметр line_kws=
Чтобы изменить цвет линии, можно передать словарь с ключевыми аргументами во внутреннюю функцию отрисовки линии. Давайте рассмотрим, как это сделать.
В приведенном выше блоке кода мы использовали line_kws={'color': 'cornflowerblue'}
, что указывает на то, что линия должна быть окрашена в светло-синий цвет.
Теперь мы видим, насколько легче стало разглядеть линию, что делает основные тенденции гораздо более очевидными.
Настройка residplot Seaborn с помощью заголовка и меток осей
В этом последнем разделе вы узнаете, как настраивать остаточный график Seaborn, добавляя заголовок и подписи осей. Seaborn предлагает множество возможностей для добавления заголовков и подписей осей. Добавив заголовок и настроив подписи осей, вы можете сделать вашу визуализацию гораздо понятнее.
Давайте рассмотрим, как мы можем настроить наш график, построив график в начале учебника, который содержит график регрессии и график остатков.
В указанном выше блоке кода мы построили два графика, используя функцию subplots()
. Затем мы вывели оба графика на соответствующие объекты осей. В заключение, мы добавили заголовок и метки осей. Также мы использовали функцию убирания границ Seaborn для удаления правой и верхней границ каждого графика.
Чтобы установить общий заголовок, мы используем метод suptitle()
, так как нам нужно применить заголовок ко всей фигуре. Затем мы используем метод .set_title()
для каждого из объектов осей, обращаясь к индексированному значению. Наконец, мы перебираем каждую ось и используем методы .set_xlabel()
и
Это возвращает изображение ниже:
Добавляя и настраивая заголовки и подписи осей, мы можем создать информативную визуализацию.
Заключение
В этом уроке вы научились создавать график остатков с использованием Seaborn, применяя функцию sns.residplot()
. Графики остатков позволяют легко оценить остатки после подгонки регрессии, понимая их различия.
Сначала вы научились создавать графики остатков, используя модель простой линейной регрессии. Затем вы узнали, как изменить порядок основной регрессионной модели. После этого вы научились добавлять и настраивать линию LOWESS. Наконец, вы научились добавлять заголовок и настраивать подписи осей на графике остатков в Seaborn.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с приведенными ниже ресурсами:
Диаграммы рассеяния Seaborn в Python: полное руководство
Линейный график Seaborn – Создавайте линейные графики с помощью Seaborn
Last updated