トピックス プログラム、シミュレーション 品質 統計

コマンド1行でグループ分けできます

投稿日:

どんど焼きの準備を午前中に行い、午後どんど焼きを実施してきました。餅をついてお汁粉をふるまったり、燃えカスを処分したりと冬なのに汗だくの1日でした。疲れたので、先ほどブログを書いていて、つい居眠りをしてしまいました。 本日は、統計ソフト「R」を利用した「クラスター分析」の実施例を説明します。

資料をご覧ください。 →  クラスター分析

p.1 クラスター分析の手順を①~④にまとめました。 その下に「plot(hclust(dist(scale("○○.csv"))))」というコマンドを書きました。この1行でクラスター分析をして樹状図(デンドログラム)を描いてくれます。 他のソフトであれば、もっといろいろなプロセスが必要です。こんなに簡単に分析できてしまうのです。 ①予めExcel等でデータを表にして、CSV形式で作業フォルダに保存しておいてください。今回は、「cldata.csv」というファイルを「R」で読み込んで「cdata」という変数に代入します。なのでコマンドは「cdata<-read.csv("cldata.csv")」となります。②読み込んだものを表示して確認します。そのコマンドは「print(cdata)」です。実行結果を左下に示します。③グラフにしてみます。コマンドは、「plot(cdata)」です。横軸がx1、縦軸がx2です。

p.2 左上がデータの表です(再掲)。 ⑤以前、統計のところで「基準化」を説明しましたが、覚えていますか? 国語、算数あるいは理科の試験の得点を同じ土俵にするために、「(ある得点−その科目の平均値)÷標準偏差(σ)」という数値に置き換えて比較します。この操作を「基準化」と言います。今回のデータも基準化します。x1とx2の列のデータを基準化するコマンドは「scale(cdata)」です。x1の平均値が5.75、x2の平均値が4.25、標準偏差が3.807887ですので、仮にx1が5.75であれば、基準化すると「(5.75−5.75)÷3.807887=0」よる0となります。基準化とは、別の表現では「平均値を0にして標準偏差を1にする操作」を言います。 したがってx1もx2も平均値より小さいデータは基準化するとマイナスの値となります。 ⑥次は、各点と点の間の距離をピタゴラスの定理(a+b=c)を用いて算出します。このコマンドが「dist(cdata)」です。 distance(距離)から来ています。1~8のデータの組み合わせは、(8-1)×8÷2=28通りのマトリクスとなります。⑦クラスタ分析実行のコマンドは「hclust()」です。

p.3 上述の一連の操作を「plot(hclust(dist(scale(cdata))))」で一度の入力してリターンすると、左図のような樹状図(デンドログラム)が描かれます。 右図は、生のデータを散布図で表したものです。色、オレンジ色及びピンク色の○で囲んだものが同じグループとみれると思います。例えばデンドログラムののところでは縦線と3か所で交わります。このを閾値とすると、3つのグループに分類可能です。この閾値を上の方にずらすと2つのグループに、下にずらすと4~5に分類できます。

いかがですか? 「R」は非常に簡単なコマンドが多いです。 クラスター分析にはいろいろな手法があるようです。調べてみてください。どれが一番精度がよいか比較してみてください。

 

-トピックス, プログラム、シミュレーション, 品質, 統計

Copyright© 進化するガラクタ , 2019 All Rights Reserved Powered by STINGER.