「R」を始める

多次元尺度法をやろうと思って、エクセルで行列計算を試みたけど2010では無理だとわかった。
それで、フリーソフト「R」をインストールした。
 
これがとても便利。 R言語 - Wikipedia
 
そもそもなぜやろうとしたのかというと、要素を空間でとらえてその距離からたがいの遠近を調べるということに興味を持ったから。
試しに、3点の間の距離がわかれば、この三角形の形がわかるのは当然。
では4点だとどうか?
これも出来そうだが、計算が大変になる。
この時行列を使うと計算しやすい。
例えば、互いの距離がわかれば、地図が作図できる。
 
 
最初は計算しようとしたけど、あきらめてRをインストールした。
グラフも簡単。
行列の計算が直ぐにできる。
 
irisデータでいろいろ試してみると、グラフが直ぐにでてくる。
ちなみに「アイリス花データ」とは、
『1936年の論文に、英国の統計学者・植物学者であったロナルド・フィッシャー氏が発表した多変量データです。 データセットは、アイリスの花の3種類(「Iris setosa」と「 Iris virginica」と「Iris versicolor」) を各々50サンプルずつ集めた計150のデータからなり、変数は、がく片の長さと幅、花びら長さと幅をcmで計測した4つの変量からなります。 この4つの変量の組合せを基にアイリスの花の種類(Iris setosa/Iris virginica/Iris versicolor)を分類するLDA(Linear Discriminant Analysis)モデルを開発したのでした。』
 
こうやって試しながら少しずつ理解が進んでいく。
つまりRで統計を学び、さらにDLへと進んでいきたいと思っている。
知ることは作ること」 ラトゥール
 
data=iris
data
data$Sepal.Length
summary (iris)
hist(data$Sepal.Length)
イメージ 1

plot(Petal.Length ~ Sepal.Length, data=iris)
 
# 2クラス、2次元
xlist <- iris[51:150,c(1,3)]
tlist <- ifelse(iris[51:150,5]=="versicolor",1,0)
plot(xlist,col=ifelse(tlist,"red","blue"))
 
#パッケージのダウンロード
install.packages("scatterplot3d", dependencies = TRUE)
colmap <- c("setosa"="black", "versicolor"="red", "virginica"="blue")
pairs(iris[,1:4], col=colmap[iris[,5]])
#scatterplot3dというパッケージを使えば3次元の散布図が描ける
library(scatterplot3d)
scatterplot3d(iris[,1], iris[,2], iris[,3], color=colmap[iris[,5]])
イメージ 2

ir <- iris[,c(1,2,3,4)]  #5列目がirisの種類(正解データ??)なので、これ以外の列1、2、3、4のみを取り出す
di <- dist(ir)     #前の例と同じように、距離を求める
hc <- hclust(di)  #距離からデンドログラムを作成する
plot(hc, hang=-1) #作図する
rect.hclust(hc, 3) #3つのグループに分けてみる(3種類のアイリスがあるのが分かっているので)

cl <- kmeans(ir, 3)  #3つのグループに分ける
cl$cluster   #これにより各々がどのグループに入るのかラベルを付けてくれる
plot(ir, col=cl$cluster)