AD-TECH
Lab BLOG
RCO アドテクLab ブログ

useR!2017でポスター発表しました

2017/07/12hayakawa

このエントリーをはてなブックマークに追加

こんにちは!早川です。 7月4日から7日にかけてuseR!2017というR言語に関する世界最大級のカンファレンスが開催されました。

useRは2004年から開催されており、今回で13回目となります。参加者は1000人を超えています。 当日の様子は、 https://user2017.brussels/photos にて写真が公開されています。

githubinstallパッケージの紹介

今回は初参加ながら、ポスター発表の機会を頂きました。 ポスターは、 https://www.user2017.brussels/uploads/A0_useR2017_poster.pdf にて公開されています。 発表では、友人らと共に開発を進めているgithubinstallパッケージの紹介をしました。 このパッケージを用いることによって、githubからパッケージをインストールする時の手間を省くことが出来ます。

従来は、githubからパッケージをインストールするためにはdevtoolsパッケージを用いて、

devtools::install_github("hadley/dplyr")

とする必要があり、ユーザー名とパッケージ名の2つを指定する必要がありました。

しかしながら、githubinstallパッケージを用いることによって、

githubinstall::githubinstall("dplyr")

として、パッケージ名のみを指定するだけでインストールすることが可能になりました。

多くのR言語ユーザーはパッケージ名を覚えていますが、ユーザー名は覚えていません。 なぜなら、dplyrというパッケージを利用するときは、

library("dplyr")

としかプログラムに記述していないからです。 実は、一昔前までパッケージをインストールする時にユーザー名を記述する必要はありませんでした。 CRANというR言語本体や各種パッケージを管理するサイトがこれらを一括して管理しており、パッケージ名のみで一意に特定できるためユーザー名を指定する必要がありませんでした。 しかしながら、近年はgithub上でパッケージを公開する人が増えてきたことにより、devtoolsパッケージを用いてgithubからパッケージを直接ダウンロードする事が多くなりました。これに伴って、インストールする手間が増えたためにgithubinstallパッケージが必要になりました。 このパッケージによって、R言語ライフが少しでも快適に感じて頂けたら幸いです。

他の人のセッションの紹介

いくつかのセッションを紹介したいと思います。

Efficient R programming

https://github.com/jr-packages/efficientTutorial にて公開されています。 READMEにあるようにコードを実行するとスライドを見ることが出来ます。

このセッションでは、R言語で効率よく計算する方法を紹介しています。 ベクトル操作、並列処理、C++による高速化の話がありました。これらの方法を演習形式で学ぶことが出来ます。 例えば、ベクトル操作においては、for文での繰り返し処理をベクトル操作によって実現すると高速化することが出来ます。

本セッションのスライドで演習例としては、

x = runif(1000) + 1
logsum = 0
for(i in 1:length(x))
    logsum = logsum + log(x[i])

というコードを高速化するという問題があります。 答えが気になる人は、スライドを確認してみてください。

transformation forest

https://channel9.msdn.com/Events/useR-international-R-User-conferences/useR-International-R-User-2017-Conference/Transformation-Forests にてビデオが公開されています。

ランダムフォレストでは回帰モデルを作る時に平均値を出力しますが、このモデルを利用することによって分布として得ることが出来ます。 同様に予測結果を分布として得られるQuantile Regression Forestsと比較して、分布の端では提案手法の方が優れていました。

詳細は、 https://arxiv.org/pdf/1701.02110.pdf に掲載されている論文を参照ください。

Package ggiraph: a ggplot2 Extension for Interactive Graphics

https://channel9.msdn.com/Events/useR-international-R-User-conferences/useR-International-R-User-2017-Conference/Package-ggiraph-a-ggplot2-Extension-for-Interactive-Graphics にてビデオを見られます。 ggiraphパッケージについての紹介です。 R言語にはggplot2という強力な可視化パッケージがあります。作成されるグラフは画像形式になっています。 ggiraphパッケージを使うことによって、ggplot2のグラフをD3.jsによってインタラクティブなグラフに変換することが出来ます。

mapedit - interactive manipulation of spatial objects

https://channel9.msdn.com/Events/useR-international-R-User-conferences/useR-International-R-User-2017-Conference/mapedit-interactive-manipulation-of-spatial-objects にてビデオを見られます。

RStudioの画面上に地図を表示させ、マウス操作によって範囲を指定できたり、マーカーを設置することが出来ます。 地図の描画にはLeafletパッケージを利用しています。 地図上で可視化をしながら、探索的に分析する時に役立つかと思います。

Easy imputation with the simputation package

https://user2017.sched.com/event/AxsM/easy-imputation-with-the-simputation-package に概要が載っています。 地味な作業で手間のかかる欠損値の補完を簡単にすることが出来ます。

サンプルコードを見ると分かりやすいので、 https://github.com/markvanderloo/simputationにあるREADMEから引用すると、

dat %>%
  impute_lm(Sepal.Length + Sepal.Width ~ Petal.Length + Species) %>%
  impute_cart(Species ~ .) %>% # use all variables except 'Species' as predictor
  head(10)

とあります。

パイプ演算子を用いながら、欠損値を埋められます。

lumberjackパッケージというデータ加工のロギングをする機能と組み合わせる方法も紹介されていました。

来年のuseRに向けて

来年のuseRはオーストラリアで開催されます。今回はポスターでの発表機会を頂きましたが、概要を提出して審査がありました。 参考までに、今年の通過率を載せます。

R言語界に貢献し、再びuseRで発表できるようにしたいと思います。