Регрессия — Regression
Преобразование regression подбирает двумерные регрессионные модели для сглаживания и прогнозирования данных. Оно может построить несколько моделей — по одной для каждой группы — и создаёт новые объекты данных, представляющие точки линий тренда. Другой вариант использования — получить объекты с параметрами регрессионной модели, по одному для каждой группы.
Поддерживаются параметрические модели следующих видов:
- Линейная (
linear): y = a + b × x. - Логарифмическая (
log): y = a + b × log(x). - Экспоненциальная (
exp): y = a × e^(b × x). - Степенная (
pow): y = a × x^b. - Квадратичная (
quad): y = a + b × x + c × x^2. - Полиномиальная (
poly): y = a + b × x + … + k × x^(order).
Все модели подбираются методом обычных наименьших квадратов. О непараметрической локальной взвешенной регрессии см. «LOESS».
Вот пример простой линейной регрессии, наложенной на исходные данные:
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
x = np.linspace(0, 10)
y = x - 5 + np.random.randn(len(x))
df = pd.DataFrame({'x': x, 'y': y})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
chart + chart.transform_regression('x', 'y').mark_line()
Параметры преобразования
Метод Chart.transform_regression основан на классе RegressionTransform, который поддерживает следующие параметры:
Нажмите, чтобы показать таблицу
| Свойство | Тип | Описание |
|---|---|---|
as | array(FieldName) | Имена выходных полей для сглаженных точек, создаваемых преобразованием регрессии. По умолчанию: имена входных полей x и y. |
extent | array(number) | Диапазон |
groupby | array(FieldName) | Поля данных для группировки. Если не заданы, используется одна группа, содержащая все объекты данных. |
method | ['linear', 'log', 'exp', 'pow', 'quad', 'poly'] | Вид регрессионной модели: |
on | FieldName | Поле независимой переменной, используемой как предиктор. |
order | number | Порядок полинома (число коэффициентов) для метода |
params | boolean | Логический флаг: возвращать параметры регрессионной модели (один объект на группу) вместо точек линии тренда. Полученные объекты содержат массив |
regression | FieldName | Поле зависимой переменной, которую нужно прогнозировать. |