점군의 중심을 구합니다


27

웹을 검색하는 동안 다각형 중심을 찾는 솔루션이 다소 자주 등장합니다. 내가 관심이있는 것은 여러 점의 중심을 찾는 것입니다. 가중 평균입니다. 누군가가 포인터, 의사 코드 (또는 더 나은 경우, 이미 해결 한 R 패키지) 또는이 문제를 해결할 수있는 링크를 제공 할 수 있다면 고맙겠습니다.

편집하다

수렴이 다시 시작되었습니다. iant는 좌표를 평균화하고 중심에 사용하는 방법을 제안했습니다. 이것이 바로이 웹 페이지 에서 올바른 그림을 보았을 때 내 마음을 어지럽 힌 것 입니다.

다음은이를 보여주는 다음 그림을 그리는 간단한 R 코드입니다 (×는 중심).

xcor <- rchisq(10, 3, 2)
ycor <- runif(10, min = 1, max = 100)
mx <- mean(xcor)
my <- mean(ycor)

plot(xcor, ycor, pch = 1)
points(mx, my, pch = 3)

여기에 이미지 설명을 입력하십시오

편집 2

cluster::pam()$medoids클러스터 집합의 메도 이드를 반환합니다. 이것은 @Joris Meys에서 뻔뻔스럽게 도난당한 예입니다.

library(cluster)
df <- data.frame(X = rnorm(100, 0), Y = rpois(100, 2))
plot(df$X, df$Y)
points(pam(df, 1)$medoids, pch = 16, col = "red")

1
포인트의 평균 중심 또는 최소 거리 중심이 충분하지 않은 이유가 있습니까?
Andy W

1
@Roman : 그래픽이 올바르지 않습니다. 중간 값이 아닌 mean 을 사용해야합니다 . 2D 공간 점 구름의 경우 중앙 중심의 아날로그가 있지만 좌표 중심이기 때문에 그 중 하나가 아닙니다 . stats.stackexchange.com/q/1927/919 를 참조하십시오 .
whuber

1
나는 또한 crimestat 통합 문서의 4 장 체크 아웃 제안 icpsr.umich.edu/CrimeStat/files/CrimeStatChapter.4.pdf을 . 매우 부드러운 소개이며, 더 높은 차원의 중간 값에 고유 한 솔루션이없는 이유를 설명하고 그래픽으로 표시하며, 중심점 경향과 공간 포인트 패턴의 변동에 대한 다른 측정 값을 설명합니다.
Andy W

점점 더 흥미로워지고 있습니다. 답변 주셔서 감사합니다. 문제를 조사하고 있습니다.
Roman Luštrik

2
"좌표를 평균화하고 중심에 사용하는 방법을 제안했습니다." 사실 이것은 단순히 근사치를 정의하는 것이 아니라 중심의 정의입니다.
Colin K

답변:


43

X와 Y 좌표를 평균화하고 (원하는 경우 가중치를 곱하면) 중심이 있습니다.


4
+1 훌륭한 솔루션. 스페 로이드의 중심점까지 확장됩니다 (이 점이 지구 전체에 퍼져있을 때 투영 관련 왜곡을 피하는 데 필수적 임) : 먼저 (lat, lon)을 3D (x, y, z)로 변환합니다 ( 지오 중심) 좌표를 지정하고 평균을 계산 한 다음 결과를 다시 (lat, lon)으로 변환합니다 (3D 평균이 표면 아래 깊숙이 될 것이라는 거의 불가피한 사실은 무시).
whuber

귀하의 답변을 반영하여 내 질문을 업데이트했습니다.
Roman Luštrik

1

geosphere 패키지에서 중심 기능을 사용할 수 있습니다.

https://www.rdocumentation.org/packages/geosphere/versions/1.5-5/topics/centroid


GIS StackExchange에 오신 것을 환영합니다. 답변을 제출해 주셔서 감사합니다. 초점을 맞춘 Q & A 형식에 대해 알아 보려면 둘러보기 를 검토하십시오 . 일반적으로 원래 포스터 나 향후 검색자를 돕기 위해 더 긴 (1-2 문장이 아닌) 답변을 찾고 있으므로 자세한 내용을 포함하도록 답변을 수정하십시오. 이 도구가 도움이된다고 생각하는 이유 또는 코드 스 니펫 / 스크린 샷을 포함시키는 것이 좋습니다.
smiller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.