No.07594 クラスター分析のWard法で使える距離係数  【kk】 2008/09/08(Mon) 03:14

はじめまして。クラスター分析の方法で戸惑っております。

データの特性から,ユークリッド距離ではなく別 の距離係数(Jaccard係数)を使いたいと考えているのですが,この場合はWard法は使えず,それ以外の群平均法等を使うしかないのでしょうか? (Ward法の初心者向けの解説を見ると,距離を測る係数としてユークリッド距離を用いることが前提になっているように見受けられましたので…)

Rのhclust関数では,以下のようにすることで,Jaccard係数(を1から減じた値)を使って,Ward法によるクラスター化を行うことができます。
> hclust( dist(d, method="binary"), method="ward" )
しかも手元のデータでは,「method="average"」として群平均法を用いるよりも,好ましい結果が得られる傾向があります。

このようにして得られた結果は,たとえ好ましく見えても,統計学的に正しくないものなのでしょうか?

よろしくお願いいたします。

No.07595 Re: クラスター分析のWard法で使える距離係数  【青木繁伸】 2008/09/08(Mon) 07:53

dist に限らず,どんな類似度行列を与えても,もっともらしい結果は出ますが,正しいかどうかの判断は,簡単なテストデータを使って,数ステップ手計算してみるとそのクラスター融合方式(計算式)が正しいかどうかは分かりますよね。

No.07601 Re: クラスター分析のWard法で使える距離係数  【kk】 2008/09/08(Mon) 21:53

ご返信ありがとうございます。

> 簡単なテストデータを使って,数ステップ手計算

数 式の意味を理解した上で,これを行ってみれば分かるのだろうかとは思うのですが,,,できずにおります。生の変数の値ではなく,非類似度行列を入力として Ward法を行う方法の(なるべく易しい)解説がある書籍・資料もしくはWeb等を,もしご存知でしたら,ご教示いただけましたら幸いです。

No.07602 Re: クラスター分析のWard法で使える距離係数  【青木繁伸】 2008/09/08(Mon) 22:13

計算機のスピードが遅かった昔のことはいざ知らず,現在においては,クラスター併合後の距離行列の更新なんかは, 毎回真っ正直にやっても,たいしたことはないと思うのですけどねえ(というか,本当にそんなに計算時間の節約になっていたのかどうか。。。そのうち,やっ てみようかなと)

No.07603 Re: クラスター分析のWard法で使える距離係数  【kk】 2008/09/09(Tue) 23:02

H. C. Romesburgの『実例 クラスター分析』によれば,やはり,Ward法というからには(平方)ユークリッド距離でなくてはダメなようですね。したがって,非類似度行列を入力とす るWard法のプログラムに,ユークリッド距離以外を投入した場合,少なくともそれはもう「Ward法」とは呼べなくなるようです。

例え ば,Rで上記の「hclust( dist(中略)」を実行した場合がそれにあたります。ただ,得られる結果が解釈に値しない不正でデタラメなものとなるのか,それとも(Ward法とは別 の)なんらかの意味をもったものとなるのかまでは,判然としません。非類似度行列を入力として「Ward法」を行うプログラムの計算法が分かれば,どちら かはっきりするのかなと思いますが,これは今後の課題とします。

ありがとうございました。

No.07604 Re: クラスター分析のWard法で使える距離係数  【のね】 2008/09/09(Tue) 23:36

Ward法はユークリッド距離が前提です。しかし,目的の非類似度なり距離が,距離の公式

  f(A,B)≧0
  A=B ⇔ f(A,B)=0
  f(A,B)=f(B,A)
  f(A,B)+f(B,C)≧f(A,C)

を満たせば,f(A,B)をユークリッド距離として扱ってもかまわないと聞いた覚えがあります。さらに,Jaccard距離もこの公式を満たしていと思います。(うろ覚えですが)。

ブールデータの非類似度関数の例としては,次のHPの下の方にいくつか示されていますが,そちらでも特に問題視していないようです。
http://reference.wolfram.com/mathematica/tutorial/PartitioningDataIntoClusters.ja.html

No.07605 Re: クラスター分析のWard法で使える距離係数  【青木繁伸】 2008/09/10(Wed) 00:18

三中信宏さんの
http://cse.niaes.affrc.go.jp/minaka/R/R-top.html
にある,クラスター分析の説明が参考になるでしょう。

No.07611 Re: クラスター分析のWard法で使える距離係数  【kk】 2008/09/11(Thu) 06:14

のね様・青木様,ご返信ありがとうございます。気を取り直して,もう少し調べてみました。

ユークリッド距離を以外を用いてWard法を行っている論文は結構あるようです。

例えば下記の論文では,Jaccard係数・Russell/Rao係数などを用いてWard法を行い,どの係数で分類が上手くいくか比較しています。
Holmes Finch (2005) "Comparison of Distance Measures in Cluster Analysis with Dichotomous Data," _Journal of Data Science_ 3: 85-100

また下記の論文では単純一致係数を用いてWard法・群平均法などを行い,どのクラスター化法で分類が上手くいくか比較しています。
Hands, S. and Everitt, B. (1987). "A Monte Carlo study of the recovery of cluster structure in binary data by hierarchical clustering techniques," _Multivariate Behavioral Research_ 22: 235-243

どうやら,Jaccard係数を使ってWard法を行っても大丈夫そうに見えます。もし,より直接的に「Jaccard係数等を使ってWard法を行って良いんだよ」と書いてある資料が見つかりましたら,またご報告申し上げます。

● 「統計学関連なんでもあり」の過去ログ--- 042 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る