【第2話】 統計分析をRからJuliaに~プロット
Juliaという言語に注目しています。Introduction to Statistical Learning with Applications in Rという教材を使って統計学を復習していますが、Rでやってた統計分析をJulia環境下でできたらいいなと思ってやってみました。
今回は頻繁に利用するPlotです。
Juliaでは主に3つのパッケージが使われています(多分)
- Plots.jl (+ StatsPlots.jl)
- PyPlot.jl
- Gadfly.jl
Plots.jlはJuliaの標準のグラフ描画ライブラリです。統計分析に使いたい場合はStatsPlotsがおすすめです(マクロ言語が予想以上にいいです)
PyPlotはPythonのmatplotlib.pyplotそのものです。PyCallを使ってJulia環境からPythonのmatplotlibを呼び込んでるのでそのまんまです。
GadflyはRのggplot2がベースです。
今回はRで記述された結果と同じものをそれぞれのパッケージを使って描画してみます。
今回は教材の第2章に沿ってAutoのデータを使ってみます。パッケージをインストールする場合は
import Pkg; Pkg.add("RDatasets")
もしくはJupyter上で下記のとおり実行して追加します。
このRDatasetsのパッケージにはいろいろありますが今回はISLRを使います。この中身を見たい場合は次のとおり。
Autoを使いましょう。
まずはヒストグラムをRCallを使ったRの結果
次はGadflyを使った場合
そしてPyPlotを使った場合
最後にPlots(StatsPlots.jl)を使った場合
BinやBreaksなど調節せずに一番シンプルに描画した場合、Rの結果に一番近いのは最後のStatsPlotsでの結果でしょうか。
Boxplotも出してみましょう
やはりRはシンプルで表示したいものをちゃんと表示してくれますね。次はGadflyの場合
シンタックスを知る必要がありますけどわかりやすいです。ですがStatsPlotsで@dfというマクロ言語を利用した場合は更にシンプルです。
もうStatsPlotsでいい気がしてきました。といってもGadflyもこれからもっと洗練されるでしょうし、matplotlibを使われてる場合はPyPlotの方が馴染みがあるでしょう。seaborn.jlも出てきました。
Juliaの良いところはこれまで慣れていた環境をできる限り利用できる所です。RCallと@rputを使って変数をR側に送りましたが@rgetを使ってR側からJuliaで利用することもできます。両方を使って分析結果を出せるわけですから良いところどりをしていきましょう。
この記事が気に入ったらサポートをしてみませんか?