金子邦彦研究室プログラミングR のプログラム例階層的クラスタ分析の例(R, pvclust パッケージを使用)

階層的クラスタ分析の例(R, pvclust パッケージを使用)

前準備

R システムのインストール

R のプログラミングについては,別のページにまとめている.

pvclust パッケージのインストール

URL: http://www.is.titech.ac.jp/~shimo/prog/pvclust/

  1. R の起動

    [image]
  2. install.packages("som") の実行
    if (!require("pvclust")) install.packages("pvclust")
    

    [image]

    初回実行時には,インストールが始まる.

    1. Windows では,初めて何らかのパッケージをインストールするとき,管理者権限がない場合,ユーザ領域にインストールするという表示が出る.「はい」をクリック.

      [image]

      次の表示が出た場合には,「はい」をクリック.

      [image]
    2. ミラーサイトは,日本から選ぶ
      [image]
  3. library(pvclust) の実行
    library(pvclust)
    

    [image]
  4. サンプルの表示
    example(pvclust)
    

    [image]
  5. ヘルプの表示
    help(pvclust)
    

階層的クラスタリングの実行

ここでは,iris をクラスタリングする.iris は,Rシステムに組み込み済みのデータ.

pvclust() を使う.主なオプションは次の通り.

install.packages("pvclust")
data(iris)
c <- pvclust( t( iris[1:4] ) ) 
plot(c) 

hclust を使用した階層的クラスタ分析の例

CSVファイルを読み込み,テーブルに格納

  1. (前準備) 使用する CSV ファイルの作成

    ※ ここでは Book1.csv をダウンロードし,分かりやすいディレクトリに置く

    参考:「外国為替データ(時系列データ)の情報源の紹介」の Web ページ

    以下の説明では、

    として説明を続ける.

    自前の CSV ファイルを使うときの注意: read.table() 関数を使うので, 属性名は英語になっていること.属性名は,CSV ファイルの第一行目に書いていること.

  2. 使用する CSV ファイルの確認

    属性名が CSV ファイルの1行目に書かれていることを確認する.

    [image]
  3. R の起動

    Windows での動作画面例

    [image]

    Ubuntu での動作画面例

    [image]
  4. read.table」を用いて,CSV ファイルを R のデータフレームに読み込み

    次のコマンドを実行.

    Windows での動作手順例

    X <- read.table("C:/R/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE);
    

    ◆ Linux での動作手順例

    X <- read.table("/tmp/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE);
    

    R の read.table のオプション

    • X <- ・・・ 変数 X に読み込むという意味
    • C:/R/Book1.csv, "/tmp/Book1.csv" ・・・ 読み込む CSV ファイル名Windows では区切りには「/」を使うことに注意.
    • header="TRUE" または header="FALSE" ・・・ 列ラベルが設定されているか
    • seq="," や seq="\" や seq=" " や ・・・ 列を区切る記号(CSV ファイルのときは「seq=","」)
    • na.string="NA" ・・・ Not a Number には "NA" を使うという意味
    • dec="."  ・・・ ファイルで使われている小数点記号(既定値は,ピリオド)
    • strip.white=TRUE ・・・ 個々のデータの先頭や末尾にある「空白文字」を取り除いて読み込む
    • skip=<行数> ・・・ 読み飛ばし行数
    • nrow=<行数> ・・・ 読み込み行数
    • (その他のオプション) dec: ファイルで使われている小数点記号を指定できる

    [image]
  5. オブジェクト X の確認

    次のコマンドを実行.

    edit(X);
    

    [image]

    次のコマンドを実行.

    str(X)
    

    [image]

    hclust() の実行

    HClust.1 <- hclust(dist(model.matrix(~-1 + USD+EUR+AUD, X)) , method= "ward")
    plot(HClust.1, main= "Cluster Dendrogram for Solution HClust.1", xlab= "Observation Number in Data Set Dataset", sub="Method=ward; Distance=euclidian")
    

    [image]