統計ER

統計ソフトRの使い方を中心に、統計解析方法の解説をするブログ。ありそうでなかなか見つからないサンプルサイズ計算などニッチな方法について紹介しています。

ユークリッド距離を二次元で表示してみると?

ブログランキングに参加しています。
まずはぽちぽちっとお願いします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
にほんブログ村 科学ブログ 数学へ

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

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

二次元でユークリッド距離を例示してみるためのサンプルデータは、統計ソフト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))

f:id:toukeier:20190707190314p:plain

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

二次元ユークリッド距離の計算例として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)

f:id:toukeier:20190707190351p:plain

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

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と計算された。図中に表示した。

f:id:toukeier:20190707190413p:plain

まとめ

ユークリッド距離を二次元の世界で例示してみた。二次元の世界つまり平面だと図示しやすいし理解しやすい。

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

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

ユークリッド距離が近く感じられるようになっただろうか。