MENU

【無料プレゼント付き】学会発表・論文投稿に必要な統計を最短で学ぶことができる無料メルマガ

R でユークリッド距離を二次元で表示してみた

二次元でユークリッド距離を図示してみた。


二次元のユークリッド距離を示すサンプルデータ

二次元でユークリッド距離を例示してみるためのサンプルデータは、R に組み込まれているUSArrestsというデータを使う。

USArrestsの1列目 Murderと2列目 Assaultを使って図示してみる。

head()でデータの先頭部分を表示してみる。

> head(USArrests)
Murder Assault UrbanPop Rape
Alabama      13.2     236       58 21.2
Alaska       10.0     263       48 44.5
Arizona       8.1     294       80 31.0
Arkansas      8.8     190       50 19.5
California    9.0     276       91 40.6
Colorado      7.9     204       78 38.7

二次元空間にサンプルデータをプロットしてみる

二次元空間、つまり縦軸と横軸がある平面にサンプルデータMurderとAssaultをプロットしてみる。

plot()を使う。

with(USArrests, plot(Murder, Assault))


二次元ユークリッド距離の計算例

二次元ユークリッド距離の計算例としてAlabama(1行目)とAlaska(2行目)の距離を計算してみる。

図にAlabamaとAlaskaのラベルと距離を表す実線を描き入れてみる。

text(USArrests[1,1],USArrests[1,2]-7,"Alabama")
text(USArrests[2,1],USArrests[2,2]+7,"Alaska")
arrows(USArrests[1,1],USArrests[1,2],USArrests[2,1],USArrests[2,2],length=0)

二次元ユークリッド距離を計算する

AlabamaとAlaskaを結んだ実線の距離を計算する。

計算方法は、X軸、Y軸ともに、AlabamaとAlaskaの差を算出し、二乗して合計し、最後に平方根を取る、という方法だ。

A.A.dist <- round(sqrt((USArrests[1,1]-USArrests[2,1])^2+(USArrests[1,2]-USArrests[2,2])^2),1)
text((USArrests[1,1]+USArrests[2,1])/2, (USArrests[2,2]+USArrests[1,2])/2-7, A.A.dist)

距離は27.2と計算された。

図中に表示した。

まとめ

ユークリッド距離を二次元の世界で例示してみた。

二次元の世界つまり平面だと図示しやすいし理解しやすい。

実際のユークリッド距離は、何次元にも拡張して計算できるため、図では表示できなくなる。

しかし、原則はいつも同じで、2つの点のユークリッド距離は、点の座標軸ごとに差を取って、差を二乗をし、すべてを合計して、平方根を取る、と計算する。

関連記事

https://toukeier.hatenablog.com/entry/2019/06/26/211841toukeier.hatenablog.com

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメントする

目次