点到固定目标点的平均距离

Posted

技术标签:

【中文标题】点到固定目标点的平均距离【英文标题】:Mean distance of the points from a fixed target point 【发布时间】:2020-12-11 21:32:05 【问题描述】:

我的数据中有一些点,我正在尝试找到到目标点的平均(算术平均)距离。 我在这里走两条路线: 一,使用'Distance Between Two Points' 公式计算每个点到目标之间的距离,然后得到这些距离值的平均距离。 其他的,找到所有点的平均点,然后找到这个平均点到目标点的距离。 如果我想获得所有点到目标点的平均距离,我不确定哪种方法是正确的(两者都给出不同的答案)? 我的目标点为绿色,平均点为红色。 以下是我的 R 代码:

# three data points
a <- c(1.6, 2.3, 3.4)
b <- c(3.1, 4.1, 0.5)

# target point
t_x <- 1.1
t_y <- 0.1

df <- data.frame("x" = a, "y" = b)

# mean of the distances
df$distance <- sqrt(((df$x - t_x)^2) + ((df$y - t_y)^2)) 
print(mean(df$distance))

# distance from the mean point to the target
mean_x <- mean(df$x)
mean_y <- mean(df$y)
print(sqrt((mean_x - t_x)^2 + (mean_y - t_y)^2))

# plotting all
ggplot(df, aes(x = x, y = y)) + 
  geom_point() +
  coord_cartesian(xlim = c(-5,5), ylim = c(-5,5)) +
  geom_point(aes(x=mean_x, y=mean_y), color = "red") + 
  geom_point(aes(x=t_x, y=t_y), color = "green") 

【问题讨论】:

它们可能都是正确的,具体取决于您如何定义距离:(1) 平均距离,或 (2) 到平均点的距离。 【参考方案1】:

只考虑一个目标点和另外两个点的情况

Target: (0,0)
Point1: (-1,0)
Point2: (1, 0)

如果取点 1 和 2 的平均值,则得到 (0,0),因此到目标的平均距离为 0。但每个点到目标的距离为 1,因此 1 中的平均距离. 总的来说,这两种计算方式是完全不同的

这真的取决于你如何定义问题。在本例中,您希望答案是 0 还是 1。

【讨论】:

感谢@MrFlick 提供的示例。我重新评估了我的问题陈述,发现我需要找到距离的平均值。【参考方案2】:

以下是为什么您的第一种方法是正确方法的直观解释。想象一下你的目标在 (0, 0):

t_x <- 0
t_y <- 0

现在假设我们在它周围画一些与它的距离相同的点——事实上,它们都位于单位圆上,并且根据定义与目标的距离为 1:

library(ggplot2)

t_x <- 0
t_y <- 0

rads <- seq(0, 2 * pi, length.out = 17)[-17]
df   <- data.frame(x = cos(rads), y = sin(rads), xend = 0, yend = 0)

ggplot(df, aes(x, y)) + 
  geom_point(col = "red") +
  geom_segment(aes(xend = xend, yend = yend), linetype = 2) +
  coord_equal() +
  geom_point(x = t_x, y = t_y, size = 5, colour = "red")

现在,毫不奇怪,由于所有点与目标的距离为 1,毕达哥拉斯的平均距离也将为 1:

# mean of the distances
df$distance <- sqrt(((df$x - t_x)^2) + ((df$y - t_y)^2)) 
print(mean(df$distance))
#> [1] 1

但是现在考虑如果我们取所有 x 值的平均值会发生什么 - 它们取消为 0。y 值也是如此,所以所有点的平均值为 (0, 0)。当你测量从 (0, 0) 到 (0, 0) 的距离时,答案当然是 0:

mean_x <- mean(df$x)
mean_y <- mean(df$y)
print(sqrt((mean_x - t_x)^2 + (mean_y - t_y)^2))
#> [1] 0

由reprex package (v0.3.0) 于 2020 年 8 月 22 日创建

【讨论】:

以上是关于点到固定目标点的平均距离的主要内容,如果未能解决你的问题,请参考以下文章

如何获取从固定点到特定距离的坐标邻居

算法 图最短距离

求一条线段上与两点最近距离的点的位置的方法是啥?求与两个固定点的距离相等的点的方法是啥?

点到平面的距离公式 是怎么推出来的

树上点到路径的距离, 以及树上路径到路径的距离

切比雪夫距离