Как найти ожидаемое расстояние между двумя равномерно распределенными точками?

9

Если бы я должен был определить координаты и где( X 2 , Y 2 )(X1,Y1)(X2,Y2)

X1,X2Unif(0,30) and Y1,Y2Unif(0,40).

Как бы я нашел ожидаемое значение расстояния между ними?

Я думал, так как расстояние рассчитывается как будет ожидаемое значение просто быть ?(Икс1-Икс2)2+(Y1-Y2)2)(1/30+1/30)2+(1/40+1/40)2

Mathlete
источник
Ваш код LaTeX не отображался правильно. Я надеюсь, что мое исправление - то, что вы намеревались
Питер Флом
Почти, но это помогло мне в итоге получить большое спасибо.
Mathlete
2
Эквивалентный вопрос на математическом сайте: Среднее расстояние между случайными точками в прямоугольнике . Смежный вопрос: вероятность того, что равномерно случайные точки в прямоугольнике имеют евклидово расстояние меньше заданного порога . (К сожалению, я так и не удосужился разобраться с @whuber по его предложениям. Я постараюсь найти время для этого.)
кардинал
1
Спасибо за эти ссылки, @cardinal. Хотя математическая версия не объясняет ответ - она ​​просто представляет его - она ​​содержит ссылки на один вывод, который стоит рассмотреть.
whuber

Ответы:

2
##problem
x <- runif(1000000,0,30)
y <- runif(1000000,0,40)
Uniform <- as.data.frame(cbind(x,y))
n <- nrow(Uniform)
catch <- rep(NA,n)
for (i in 2:n) {
      catch[i] <-((x[i+1]-x[i])^2 + (y[i+1]-y[i])^2)^.5
}
mean(catch, na.rm=TRUE)
18.35855

Если я правильно понимаю, что вы ищете, возможно, это поможет. Вы пытаетесь выяснить расстояние между случайными точками, значения X которых генерируются из unif (0,30), а значения Y генерируются из unif (0,40). Я просто создал миллион RV от каждого из них до распределения, а затем связал x и y, чтобы создать точку для каждого из них. Затем я вычислил расстояние между точками 2 и 1 до расстояния между точками 1 000 000 и 999 999. Среднее расстояние составило 18,35855. Дайте мне знать, если это не то, что вы искали.

Эрик Петерсон
источник
Взял на себя свободу редактирования для форматирования.
curious_cat
2
Вы подошли довольно близко - возможно, случайно. Правильный ответ =18.345919. Ваш код имеет две проблемы: (1) итерации не являются взаимно независимыми; и (2) чтобы получить разумную точность, она должна быть закодирована, чтобы быть быстрее. Почему бы не сделать симуляцию напрямую, как в. Это даст вам около четырех значимых цифр (за меньшее время), что вы можете проверить, вычислив стандартную ошибку. 1108(871+960log(2)+405log(3))18.345919...n <- 10^7; distance <- sqrt((runif(n,0,30)-runif(n,0,30))^2 + (runif(n,0,40)-runif(n,0,40))^2)sd(distance) / sqrt(n)
whuber
@whuber: Можете ли вы объяснить свой № 1? например, скажем (Случай-I) Я нарисовал пары случайных чисел из любого данного распределения и вычислил различия и взял среднее. По сравнению с (Случай II) Я продолжал рисовать одно число за раз и продолжал вычислять текущие различия относительно последнего числа, а затем усреднять. Будут ли средние показатели по случаям I и II систематически отличаться?
curious_cat
1
@curious_cat Нет, средние значения будут примерно одинаковыми, но расчет стандартной ошибки будет другим. Нам нужен этот расчет, чтобы оценить, насколько близко среднее значение может прийти к истинному значению. Вместо того, чтобы разрабатывать более сложные вычисления SE, проще просто генерировать пары точек совершенно независимо друг от друга, в точности так, как это предусмотрено в вопросе. (Существует так много способов, которыми симуляция может пойти не так - я знаю по опыту! - что разумно, чтобы симуляция имитировала реальность как можно ближе.)
whuber
@whuber: Спасибо за разъяснения. Итак, если бы Кларк выполнял свой код дольше, он мог бы получить больше десятичных знаков, верно?
curious_cat
16

Если смотреть на вопрос геометрически, ясно, что ожидаемое расстояние между двумя независимыми, равномерными, случайными точками в выпуклом множестве будет чуть меньше половины его диаметра . (Это должно быть меньше, потому что две точки относительно редко располагаются в экстремальных областях, таких как углы, и чаще всего они находятся рядом с центром, где они находятся близко.) Так как диаметр этого прямоугольника равен , Исходя из одних рассуждений, мы ожидаем, что ответ будет чуть меньше 25 .5025

Точный ответ получается из определения ожидания как взвешенного по вероятности значения расстояния. В общем, рассмотрим прямоугольник сторон и λ ; мы будем масштабировать его до нужного размера впоследствии (при установке λ = 40 / 30 и умножения ожидания на 30 ). Для этого прямоугольника, используя координаты ( x , y ) , равномерная плотность вероятности равна 11λλзнак равно40/3030(Икс,Y). Среднее расстояние в этом прямоугольнике определяется как1λdИксdY

0λ010λ01(Икс1-Икс2)2+(Y1-Y2)21λdИкс1dY11λdИкс2dY2,

Используя элементарные методы интеграции, это просто, но болезненно; Я использовал систему компьютерной алгебры ( Mathematica ), чтобы получить ответ

[2+2λ5-21+λ2+6λ21+λ2-2λ41+λ2+5λArcSinh(λ)+5λ4журнал(1+1+λ2λ)]/(30λ2),

Наличие 1+λ2303040

λзнак равно4/3301108(+871+960журнал(2)+405журнал(3))18.345919...


1+λ2λ01λ1/λλλзнак равно1

участок

1/30,330,373:1

Whuber
источник
Должно ли это быть "диагональ" вместо "диаметр"? Извините, если я придираюсь.
curious_cat
@curious_cat По определению, диаметр набора точек (в любом метрическом пространстве) является верхним пределом расстояний между любыми двумя точками в нем. Для прямоугольника это (очевидно) длина диагонали.
whuber
Спасибо! Я этого не осознавал. Я использовал наивную концепцию диаметра.
curious_cat
В качестве отступления: для всех прямоугольников данной области среднее расстояние будет минимальным для квадрата?
curious_cat
2
В духе этого , я хотел бы, чтобы вы начали этот ответ с "Это самолет ..." (+1)
кардинал