回归#

回归转换将二维回归模型拟合到数据上以进行平滑和预测。此转换可以为输入数据(每组一个)拟合多个模型,并生成代表汇总趋势线点的新数据对象。另外,此转换也可以用于生成一组包含回归模型参数的对象,每组一个。

此转换支持以下函数形式的参数模型

  • 线性 (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()

转换选项#

transform_regression() 方法基于RegressionTransform 类构建,该类具有以下选项

点击显示表格

属性

类型

描述

as

array(FieldName)

回归转换生成的平滑点输出字段名称。

默认值:输入 x 和 y 值的字段名称。

extent

array(number)

独立 (x) 字段上的 [最小值, 最大值] 域,用于生成趋势线的起始点和结束点。

groupby

array(FieldName)

用于分组的数据字段。如果未指定,则使用包含所有数据对象的单个组。

method

[‘linear’, ‘log’, ‘exp’, ‘pow’, ‘quad’, ‘poly’]

回归模型的函数形式。可以是 "linear", "log", "exp", "pow", "quad", 或 "poly" 之一。

默认值:"linear"

on

FieldName

用作预测变量的独立变量数据字段。

order

number

'poly' 方法的多项式阶数(系数数量)。

默认值:3

params

boolean

一个布尔标志,指示转换是否应返回回归模型参数(每组一个对象),而不是趋势线点。结果对象包含拟合系数值的 coef 数组(从截距项开始,然后包括递增阶数的项)以及 rSquared 值(表示模型解释的总方差)。

默认值:false

regression

FieldName

要预测的因变量数据字段。