如何表征最小二乘估计的适应性

5
我正在进行本地化项目,并使用最小二乘估计来确定发射器的位置。我需要一种统计特征“适合度”的方法,以在程序中确定我的解决方案是否良好,这可以用于告诉我是否有一个好答案,或者我需要额外的测量数据,或者有坏数据。我已经阅读了关于使用“决定系数”或R平方的文章,但是没有找到任何好的例子。如果你有关于如何表征是否有好的解决方案,或需要额外的测量的任何想法,将不胜感激。
谢谢!
我的代码给出以下输出,
grid_lat和grid_lon对应于可能目标位置的纬度和经度坐标网格。
grid_lat = [[ 38.16755799  38.16755799  38.16755799  38.16755799  38.16755799
  38.16755799]
  [ 38.17717199  38.17717199  38.17717199  38.17717199  38.17717199
    38.17717199]
  [ 38.186786    38.186786    38.186786    38.186786    38.186786    38.186786  ]
  [ 38.1964      38.1964      38.1964      38.1964      38.1964      38.1964    ]
  [ 38.20601401  38.20601401  38.20601401  38.20601401  38.20601401
    38.20601401]
  [ 38.21562801  38.21562801  38.21562801  38.21562801  38.21562801
    38.21562801]
  [ 38.22524202  38.22524202  38.22524202  38.22524202  38.22524202
    38.22524202]]

grid_lon = [[-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
    -75.79807588]
  [-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
    -75.79807588]
  [-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
    -75.79807588]
  [-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
    -75.79807588]
  [-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
    -75.79807588]
  [-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
    -75.79807588]
  [-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
    -75.79807588]]

grid_error对应于每个点的“好”解决方案程度。 如果我们的误差为0.0,则我们有一个完美的解决方案。 对于网格上的每个点,都要计算Grid Error到每个测量位置(下面的测量中的轨道)的距离。 每个测量位置都有一个到发射器的估计范围。 “误差”对应于从测量中到发射器的估计范围减去测量范围位置和网格点之间计算出的实际范围。 误差越低,我们靠近实际发射器位置的机会就越大。

# Calculate distance between every grid point and every measurement in meters 
measured_distance = spatial.distance.cdist(grid_ecef_array, measurement_ecef_array,    'euclidean')

measurement_error = [pow((measurement - estimated_distance),2) for measurement in measured_distance]

mean_squared_error = [numpy.sqrt(numpy.mean(measurement)) for measurement in measurement_error]

# Find minimum solution 
# Convert array of mean_squared_errors to 2D grid for graphing
N3, N4 = numpy.array(grid_lon).shape
grid_error = numpy.array(mean_squared_error).reshape((N3, N4))

grid_error = [[ 2.33608445  2.02805063  1.85638288  1.84620283  2.02757163  2.38035108]
  [ 1.73675429  1.40649524  1.21799211  1.06503271  1.27373554  1.74265406]
  [ 1.44967789  0.96835022  0.62667257  0.52804942  0.91189678  1.50067864]
  [ 1.70155286  1.24024402  0.9642869   1.00517531  1.32606411  1.81754752]
  [ 2.40218247  2.07449106  1.91044903  1.94272889  2.15511638  2.51683715]
  [ 3.29679348  3.05353929  2.93662134  2.95839307  3.11583615  3.39320682]
  [ 4.27303679  4.08195869  3.99203754  4.00926823  4.13247105  4.35378011]]

# Generate the 3D plot with the Z coordinate being the mean squared error estimate
plot3Dcoordinates(grid_lon, grid_lat, grid_error)

# Generic function using matplotlib to plot coordinates
def plot3Dcoordinates(X, Y, Z):
    fig = plt.figure()
    ax = Axes3D(fig)

    surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,
          linewidth=0, antialiased=False)

    fig.colorbar(surf, shrink=0.5, aspect=5)

这里是在一个更大的网格上处理算法的示例图像。从视觉上看,我可以判断我有一个相当不错的解决方案,因为形状平滑地收敛到单一的最小点(解决方案),看起来有点像倒置的巫师帽。

enter image description here

第二张图片显示了所有的测量和位置,并在其上绘制了解决方案,最小点作为解决方案(红色x)。

enter image description here

什么是确切的问题?通过 grid_error,你似乎已经回答了自己的问题。你提供的细节和图表很棒,但我们不知道你的程序是什么以及它是如何工作的。我们只看到输入和输出。 - Steve Tjoa
Steve- 我可以从视觉上看出我有一个好的答案,你可以看到干净的置信区间远离红色X,这直接关系到随着我们远离目标点而增加的均方误差。我面临的挑战是如何在不需要人类观察的情况下编程确定我是否有一个好的解决方案。 - Alex
在 grid_error 定义的上方添加了一些代码,以展示误差估计是如何生成的。 - Alex
1个回答

3

R-squared越接近1.0,拟合效果越好。选择自己的“够好”的阈值,我认为典型的阈值在0.92到0.98之间。


Paul- 我一直没有找到一个好的解释,说明R-squared与我的数据有什么关系。例如,我通过开发这个程序的经验知道,一个好的解决方案将具有一个干净的倒置的女巫帽形状,随着您远离解决方案,周围网格点上的误差值会以线性方式增加。我只是不确定R-squared值如何解释这一点,以及在给定上述测试数据的情况下使用哪个好的公式来计算R-squared。谢谢! - Alex
在你的帖子中,你已经说你正在进行最小二乘估计 - 参见此页面(http://mathworld.wolfram.com/CorrelationCoefficient.html),方程式22给出了一个用于计算R平方的表达式,使用方差成分可以在最小二乘计算期间计算。该页面还显示了一些具有不同数据集的示例拟合及相应的R平方值。 - PaulMcG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接