以对数刻度绘制线性函数[重复]

问题描述 投票:0回答:1

我想对最新 10 个数据点进行近似“线性”函数。该函数在对数尺度上应呈线性。我需要 y 轴截距和斜率。我不知道如何将函数拟合为对数函数。另外,我不确定“线性”函数应该如何出现在对数尺度上。

enter image description here

如何获得对数 Scala 中线性函数的斜率。

function matplotlib interpolation logarithm
1个回答
-1
投票

将线性函数拟合到对数尺度上的数据点涉及对对数变换后的数据执行线性回归。这是因为对数空间中的线性函数变成了原始空间中的幂律函数。

以下是在对数刻度上将线性函数近似为最新 10 个数据点并获得斜率的步骤:

对数变换:对于每个数据点(x,y),取x和y值的对数。这会将幂律关系转换为您可以使用的线性关系。

执行线性回归:对转换后的数据执行线性回归。您将拟合 y' = mx + b 形式的线性方程,其中 y' 是变换后的 y 值,m 是斜率,x 是变换后的 x 值,b 是截距。

反向变换:获得变换空间中的斜率 (m) 和截距 (b) 后,您可以将这些值反向变换到原始比例。原始幂律函数的斜率将是变换空间中获得的斜率的指数。

以下是计算变换空间中的坡度 (m) 的方法:

计算数据点的对数值:

对于每个 (x, y) 数据点,计算 log(x) 和 log(y)。 对转换后的数据进行线性回归:

分别计算log(x)和log(y)的均值。 计算 log(x) 和 log(y) 的协方差。 计算 log(x) 的方差。 变换空间中的斜率 (m) 由以下公式给出:m = 协方差(log(x), log(y)) / 方差(log(x))。 将斜率反向转换为原始比例:

您在变换后的空间中获得的斜率(m)对应于原始幂律关系的指数。因此,如果你原来的幂律函数是 y = A * x^m,那么你得到的 m 的值就是指数 m。 请注意,虽然此过程允许您在对数尺度上近似线性函数,但由于数据的性质和潜在关系,实际拟合可能并不完美。始终根据您的数据和过程中所做的假设来解释结果。

© www.soinside.com 2019 - 2024. All rights reserved.