Contenu connexe
Plus de Takashi Kitano (10)
Rによるウイスキー分析
- 8. 平均の算出
> # データロード
> w <- read.csv("https://www.mathstat.strath.ac.uk/outreach/nessie/
datasets/whiskies.txt", header=TRUE, stringsAsFactor=FALSE)
> rownames(w) <- w$Distillery
> # 平均
> library(dplyr)
> library(ggradar)
> overall <- w %>%
+ select(-RowID, -Distillery, -Postcode, -Latitude, -Longitude) %>%
+ summarise_each(funs(mean), everything()) %>%
+ add_rownames("group") %>%
+ mutate(group = "overall")
- 10. 代表7銘柄の抽出
> # 代表7銘柄
> w.list <-
c("OldFettercairn","Caol Ila", "Talisker", "Highland Park", "Macallan", "Auchent
oshan", "Glenfiddich")
> w.sub <- w %>%
+ filter(Distillery %in% w.list) %>%
+ select(-RowID, -Postcode, -Latitude, -Longitude)
- 11. 代表7銘柄の
レーダーチャート描画
> # 個別にプロット
> ggradar(w.sub[1, ], grid.min=0, grid.mid=2, grid.max=4)
> ggradar(w.sub[2, ], grid.min=0, grid.mid=2, grid.max=4)
> ggradar(w.sub[3, ], grid.min=0, grid.mid=2, grid.max=4)
> ggradar(w.sub[4, ], grid.min=0, grid.mid=2, grid.max=4)
> ggradar(w.sub[5, ], grid.min=0, grid.mid=2, grid.max=4)
> ggradar(w.sub[6, ], grid.min=0, grid.mid=2, grid.max=4)
> ggradar(w.sub[7, ], grid.min=0, grid.mid=2, grid.max=4)
- 15. 多次元尺度法とは
• 多次元尺度法(MDS: multi-dimensional scaling)は、
個体間の親近性データを、2次元あるいは3次元空間
に類似したものを近く、そうでないものを遠くに配置
する⽅法で、データの構造を考察する⽅法である。
• 多次元尺度法は計量多次元尺度法と⾮計量多次元尺度
法に⼤別される。計量多次元尺度法とは距離データを
低次元に配置する⽅法で、⾮計量多次元尺度法は、順
序尺度のデータの類似度あるいは距離に変換可能な親
近性データを低次元に配置する⽅法である。
https://www1.doshisha.ac.jp/ mjin/R/27/27.html
- 17. 距離の計算
> library(proxy)
> # コサイン類似度の計算
> w.dist <- w %>%
+ select(-RowID, -Distillery, -Postcode, -Latitude, -Longitude) %>%
+ dist(method="cosine")
- 18. 階層クラスタリング
> ## 階層型クラスタリング
> w.hc <-w.dist %>%
+ hclust(method="ward.D2")
> # クラスタ番号の付与
> w.cls <- w.hc %>%
+ cutree(k = 4) %>%
+ as.matrix() %>%
+ as.data.frame() %>%
+ add_rownames() %>%
+ rename(Distillery = rowname,
+ group = V1)
- 20. 座標値を求める
> w.cmd <- w.dist %>%
+ # MDS
+ cmdscale() %>%
+ as.data.frame() %>%
+ add_rownames() %>%
+ rename(Distillery = rowname,
+ x = V1,
+ y = V2) %>%
+ inner_join(w.cls, by="Distillery")
- 21. プロット
> library(rCharts)
> dP <- dPlot(
+ y ~ x,
+ groups = c("Distillery","group"),
+ data = w.cmd,
+ type = "bubble"
+ )
> dP$xAxis( type = "addMeasureAxis" )
> print(dP)