Регрессия — 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, который поддерживает следующие параметры:

Нажмите, чтобы показать таблицу
СвойствоТипОписание
asarray(FieldName)

Имена выходных полей для сглаженных точек, создаваемых преобразованием регрессии. По умолчанию: имена входных полей x и y.

extentarray(number)

Диапазон [min, max] независимого поля x, задающий начальную и конечную точки создаваемой линии тренда.

groupbyarray(FieldName)

Поля данных для группировки. Если не заданы, используется одна группа, содержащая все объекты данных.

method['linear', 'log', 'exp', 'pow', 'quad', 'poly']

Вид регрессионной модели: "linear", "log", "exp", "pow", "quad" или "poly". По умолчанию: "linear".

onFieldName

Поле независимой переменной, используемой как предиктор.

ordernumber

Порядок полинома (число коэффициентов) для метода poly. По умолчанию: 3.

paramsboolean

Логический флаг: возвращать параметры регрессионной модели (один объект на группу) вместо точек линии тренда. Полученные объекты содержат массив coef с подобранными коэффициентами — начиная со свободного члена, затем по возрастанию порядка — и значение rSquared, обозначающее долю общей дисперсии, объяснённой моделью. По умолчанию: false.

regressionFieldName

Поле зависимой переменной, которую нужно прогнозировать.