R言語のサンプル・データセットをABC順(大文字先)で端から眺めております。今回のデータセットは eurodist、ヨーロッパ都市間の距離です。以前にも似たデータをやってます。UScitiedDとな(第35回)以前のものは米国、今回は欧州。以前のものは直線距離、今回のものは道のりと。似ているようで違う、でも処理は一緒?
※「データのお砂場」投稿順Indexはこちら
eurodist
今回のサンプルデータセットの解説ページは以下です。
Distances Between European Cities and Between US Cities
実は第35回で眺めた UScitiesD と「同じ」解説ページです。ただサンプルセット名のUScitiesDが大文字始まり、eurodistが小文字始まりだったので「泣き別れ」になっておりました。
データそのものは単純です。以下のヨーロッパ各都市間の距離(道路の道のりらしいです)のデータベース、単位kmです。
Athens アテネ Barcelona バルセロナ Brussels ブリュッセル Calais カレー Cherbourg シェルブール Cologne ケルン Copenhagen コペンハーゲン Geneva ジュネーブ Gibraltar ジブラルタル Hamburg ハンブルク Hook of Holland フックオブホランド(フク・ファン・ホラント) Lisbon リスボン Lyons リヨン Madrid マドリード Marseilles マルセイユ Milan ミラノ Munich ミュンヘン Paris パリ Rome ローマ Stockholm ストックホルム Vienna ウィーン
大都市を連ねているようでいて、真ん中付近「フック・オブ・ホランド(フク・ファン・ホラント)」ってどこよ?お名前からするとオランダ付近?調べてみたら、海運と陸運の結節点?、ユーロポート(ロッテムダム港)の付近の町でした。物流の結節点間の距離ってことかい? また、西欧のみです。東欧は入っとりません。多分データセットのソースがベルリンの壁崩壊直後のものだからで、東欧の諸都市がEU圏に巻き込まれる前のもの。
そういえばベルリンの壁が崩壊した十数年後くらいに、ベルリンからフランクフルト(有名なアム・マインの方でなく、ポーランド国境のファン・デア・オーデル、半導体商売で行くところは大抵田舎の事業所)までドイツ人運転の車で往復したことがあります。皆さん200kmhくらいでアウトバーンを「普通に」走ってました。でも道路工事の場所があると速度落とせの標識があります。100kmh。運転席のドイツ人が一気に100kmhまで速度を落とすと歩いているような速さの感じ。錯覚です。その道でポーランドからやってくる大量のトラックとすれ違った記憶あり。後から後からトラックがやってきました。ドイツ人曰く、あれはみんな製造コストの安いポーランドの工場からドイツを素通りしてフランスへ行くんだ、と。すでにそのときにはEU圏の経済に東欧諸国も組み込まれてましたな。
以前の米国諸都市間の直線距離のサンプルデータセットの回は以下です。
データのお砂場(35) R言語、UScitiesD、米国都市間の直線距離とな
またそのときも今回も参照させていただいている同志社大の先生のページが以下に。
まずは生データ
生データをロードしてみると以下のようです。形式は dist とな、距離行列というようなものみたいです。全体は下三角行列的に見えます(以下は三角形の左上半分くらい)
このデータを素のまま plot に渡してみます。
plot(eurodist)
結果はこんな感じ。全部で210点の距離(km)データのプロットとなります。
横軸のindexが各都市間の組み合わせを示しているみたい。上の生データをみると20行、20列なのだけれど、行と列に記されている都市名が1個ずれていることに注意です。都市数的には21。その2都市間の距離なので、「組み合わせ」的には以下のとおり210と。
ここで気になるのは dist というデータ形式の中身です。本体は上記のプロットのように1次元のリストみたいですが、属性(アトリビュート)がついております。
SizeとLabelsとな。上記の情報があれば、1次元のリストを下三角に並べることが可能。なお、都市名はLabels属性に格納されておりこんな感じ。
都市間の距離を表引き
都市間の距離を表引きしたいと思ったのですが、distという形式はクラスタ分析用?で、それそのままでは表引きしずらいと思いました。そこで単純 Matrix形式に変形してみました。こんな感じ。
上記で返還後のMatrixの左上隅を表示してますが、21x21のMatrixになってます。行、列ともに21都市名がお名前として入ってます。こんな感じ。
そして、上記のようにMatrixをお名前で引けば、都市間の道のり(km)が求まります。
クラスタ分析、デンドログラム
第35回で各種デンドログラムをしつこく描いているので、今回は2種類のみ描いてみました。
まずは「最遠隣法」furthest neighbor method。R言語でのメソッド名は「完全連結法」(complete linkage)です。
Eurodist.complete <- hclust(eurodist, method="complete") plot(Eurodist.complete)
デンドログラムが以下に。これは結構、地域的に「わかりやすい」分類でないかい(個人の感想です。)
つづいて、「最近隣法」nearest neighbor method、ここでのメソッド名は「単連結法」(single linkage)です。
Eurodist.single <- hclust(eurodist, method="single") plot(Eurodist.single)
デンドログラムが以下に。分からないでもないけれど、個人的には腑に落ちない分類だな~。
まあ、欧州の諸都市間の距離をクラスタ分析できた?ホントか?