rによるウイスキー分析
TRANSCRIPT
![Page 1: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/1.jpg)
によるウイスキー分析Tokyo.R#53 2016-04-30 @kashitan
![Page 3: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/3.jpg)
これを
でやりたい
http://itpro.nikkeibp.co.jp/atcl/column/16/032500073/032500001/
![Page 4: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/4.jpg)
• ggradarによる可視化
• 多次元尺度法によるポジショニングの確認
![Page 5: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/5.jpg)
ggradarによる可視化
![Page 6: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/6.jpg)
ウイスキーデータ• スコットランドのストラスクライド⼤学が提
供する86種類のウイスキーのフレーバーに関するオープンデータ
Distillery Medicinal Winey Floral
Body Tobacco Nutty Postcode
Sweetness Honey Malty Latitude
Smoky Spicy Fruity Longitude
![Page 7: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/7.jpg)
![Page 8: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/8.jpg)
平均の算出> # データロード > 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")
![Page 9: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/9.jpg)
レーダーチャートの描画> library(ggradar) > ggradar(overall, grid.min=0, grid.mid=2, grid.max=4)
![Page 10: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/10.jpg)
代表7銘柄の抽出> # 代表7銘柄 > w.list <- c("OldFettercairn","Caol Ila", "Talisker", "Highland Park", "Macallan", "Auchentoshan", "Glenfiddich") > w.sub <- w %>% + filter(Distillery %in% w.list) %>% + select(-RowID, -Postcode, -Latitude, -Longitude)
![Page 11: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/11.jpg)
代表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)
![Page 12: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/12.jpg)
代表7銘柄の レーダーチャート描画
![Page 13: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/13.jpg)
多次元尺度法による ポジショニングの確認
![Page 15: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/15.jpg)
多次元尺度法とは• 多次元尺度法(MDS: multi-dimensional scaling)は、
個体間の親近性データを、2次元あるいは3次元空間に類似したものを近く、そうでないものを遠くに配置する⽅法で、データの構造を考察する⽅法である。
• 多次元尺度法は計量多次元尺度法と⾮計量多次元尺度法に⼤別される。計量多次元尺度法とは距離データを低次元に配置する⽅法で、⾮計量多次元尺度法は、順序尺度のデータの類似度あるいは距離に変換可能な親近性データを低次元に配置する⽅法である。
https://www1.doshisha.ac.jp/~mjin/R/27/27.html
![Page 16: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/16.jpg)
多次元尺度法のステップ
1.距離を求める。 2.座標値を求める 3.2〜3次元上で個体を配置する 4.信頼性について考察する
![Page 17: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/17.jpg)
距離の計算
> library(proxy) > # コサイン類似度の計算 > w.dist <- w %>% + select(-RowID, -Distillery, -Postcode, -Latitude, -Longitude) %>% + dist(method="cosine")
![Page 18: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/18.jpg)
階層クラスタリング> ## 階層型クラスタリング > 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)
![Page 19: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/19.jpg)
階層クラスタリング> # デンドログラムを描画 > library(networkD3) > dendroNetwork(w.hc, width="1000", treeOrientation="vertical")
![Page 20: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/20.jpg)
座標値を求める
> w.cmd <- w.dist %>% + # MDS + cmdscale() %>% + as.data.frame() %>% + add_rownames() %>% + rename(Distillery = rowname, + x = V1, + y = V2) %>% + inner_join(w.cls, by="Distillery")
![Page 21: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/21.jpg)
プロット
> library(rCharts) > dP <- dPlot( + y ~ x, + groups = c("Distillery","group"), + data = w.cmd, + type = "bubble" + ) > dP$xAxis( type = "addMeasureAxis" ) > print(dP)
![Page 22: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/22.jpg)
プロット
![Page 23: Rによるウイスキー分析](https://reader031.vdocuments.site/reader031/viewer/2022030306/586f91f41a28ab54768b7e4d/html5/thumbnails/23.jpg)