非线性最小二乘回归中权重的解释

机器算法验证 参考 最小二乘 非线性回归 加权回归 scipy
2022-04-05 21:35:35

我正在使用 python scipy.optimize.curve_fit 函数进行非线性最小二乘回归拟合,并试图更好地理解该方法的权重。

我有一个原始数据点的分布,我希望它适合高斯累积分布函数。我为此创建了一个函数,它采用三个参数:平均值、标准偏差和比例因子,如果我的分布不完全接近 1。

我对每个原始数据点的信心是基于一个单独的仪器计数,它不一定与数据点的值有关,所以我试图使用权重将其包含在我的拟合中。具体来说,x 的小值和大值的确定性较低,因此我希望它们在回归中的影响较小。当我通过将这些原始计数作为权重传递来进行拟合时,拟合并不是特别好,而如果我将它们作为 (1/counts) 传递,则拟合得到改善。我已经为这两个选项绘制了原始数据、拟合和归一化权重。

我想了解的是如何解释权重。我会认为权重的值越高,在回归中就越重要。但是,似乎使用“坏”原始数据点具有更高权重的权重实际上是正确的。为什么会这样,我应该如何解释权重?此外,是否有更好的资源来理解非线性回归中的权重?我发现的大多数资料都没有以我能理解的方式解释权重。

编辑:我添加了第二个图,现在显示实际(非标准化)计数,以及根据下面显示的适当拟合技术的校正拟合(根据计数加权)。

在此处输入图像描述

在此处输入图像描述

1个回答

权重应该等于计数,因为这些将与误差的方差成反比。 具体来说,数据模型(xi,yi,ni)

yiλΦ((log(xi)μ)/σ+εi

μ,σ>0,λ>0参数和εi是具有零均值和方差的独立随机变量

Var(ε(i))=σ2/ni

在哪里ni是计数。

对数拟合x视觉上没问题:

数字

在该图中,x 轴是对数刻度,点符号的面积与计数成正比(因此大圆在拟合中的影响比小圆更大),红线是最小二乘拟合。很明显,该模型并不真正合适:较小值的残差y往往很小,不管计数。可能应该最小化相对误差的平方和以获得适当的拟合。

很明显,最大的拟合度很差x,但那些也有小数目。


带有(我的版本)数据的R代码以及拟合和绘图程序如下。

y <- c(1, 1, 2, 1, 2, 1, 3, 4, 22, 30, 44, 58, 68, 69, 
       71, 72, 75, 72, 80, 78, 87, 86, 80, 82, 92, 90, 85, 61, 38, 36) / 100
x <- ceiling(exp(seq(log(20), log(500), length.out=length(y))))
counts <- c( 10, 3, 17, 20, 38, 31, 44, 55, 58, 68, 77, 
             82, 86, 82, 77, 75, 70, 65, 68, 51, 47, 41, 38, 30, 22, 14, 9, 4, 2, 1)
#
# The least-squares criterion.
# theta[1] is a location, theta[2] an x-scale, and theta[3] a y-scale.
#
f <- function(theta, x=x, y=y, n=counts) 
  sum(n * (y - pnorm(x, theta[1], theta[2]) * theta[3])^2) / sum(n)
#
# Perform a count-weighted least-squares fit.
#
xi = log(x)
fit <- optim(c(median(xi), sd(xi), max(y) * sd(xi)), f, x=xi, y=y, n=counts)
#
# Plot the result.
#
par(mfrow=c(1,1))
plot(x, y, log="x", xlog=TRUE, pch=19, col="Gray", cex=sqrt(counts/12))
points(x, y, cex=sqrt(counts/10))
curve(fit$par[3] * pnorm(log(x), fit$par[1], fit$par[2]), 
          from=10, to=1000, col="Red", add=TRUE)