📜  Julia 中的多项式回归

📅  最后修改于: 2022-05-13 01:55:40.694000             🧑  作者: Mango

Julia 中的多项式回归

在统计学中,多项式回归是回归分析的一种形式,其中自变量 x 和因变量 y 之间的关系被建模为 x 中的 n 次多项式。多项式回归拟合 x 值与 y 的相应条件均值之间的非线性关系,表示为 E(y |x)。多项式回归是回归分析的一个例子,它使用基函数来模拟两个量之间的函数关系。

多项式回归相对于线性回归的优势

  • 多项式提供了因变量和自变量之间关系的最佳近似值。
  • 它可以容纳广泛的功能。
  • 多项式基本上适合大范围的曲率。

Julia 中的多项式回归

Julia 中的多项式回归可以通过使用 Polynomials.jl 包来实现。 Polynomials.jl 是一个 Julia 包,它提供了对密集单变量多项式的基本算术、积分、微分、评估和求根。

要安装软件包,请运行

安装包后,您可以使用加载包



多项式的类型

  • 多项式:标准基多项式,a(x) = a₀ + a₁ x + a₂ x² + … + aₙ xⁿ,n ∈ ℕ
  • ImmutablePolynomial:由元组类型支持的标准基多项式,用于更快地评估值
  • SparsePolynomial:⁠由字典支持的标准基多项式,用于保存稀疏高次多项式
  • LaurentPolynomial:⁠ Laurent 多项式,a(x) = aₘ xᵐ + … + aₙ xⁿ m ≤ n, m,n ∈ ℤ 由偏移数组支持;例如,如果 m<0 且 n>0,则 a(x) = aₘ xᵐ + ... + a₋₁ x⁻¹ + a₀ + a₁ x + ... + aₙ xⁿ
  • ChebyshevT:第一类切比雪夫多项式

句法:

现在,让我们看看如何使用 Polynomial.jl 来实现密集单变量多项式的算术、积分、微分、评估和求根。

建设与评估

  • 从其系数数组构造多项式,最低阶在先。

  • 通过以数组的形式输入根作为函数fromroots()函数的参数,从根构造多项式

  • 通过以数组的形式输入系数作为函数polynomial()的参数,计算 x 处的多项式 p

多项式的算术运算符

通常的算术运算运算符被重载以处理多项式以及多项式和标量的组合。



所有原始数字类型都支持以下算术运算运算符:

积分和导数

逐项对多项式 p 进行积分,可选择添加常数项 k。结果多项式的次数比 p 的次数高 1(对于非零多项式)。

逐项微分多项式 p。结果多项式的次数比 p 的次数低 1。

求多项式的根

返回 p 的根(零),具有多重性。返回的根数等于 p 的次数。按照设计,这不是类型稳定的,返回的根可能是真实的或复杂的。

拟合任意数据

使用最小二乘近似将多项式(度数或更小)拟合到 x 和 y。

Julia
using Plots, Polynomials
xs = range(0, 10, length = 10)
ys = @.exp(-xs)
f = fit(xs, ys) # degree = length(xs) - 1
f2 = fit(xs, ys, 2) # degree = 2
  
scatter(xs, ys, markerstrokewidth = 0, label = "Data")
plot!(f, extrema(xs)..., label = "Fit")
plot!(f2, extrema(xs)..., label = "Quadratic Fit")