★データ解析備忘録★

ゆる〜い技術メモ

easystatsについて①: パッケージ群の紹介

これはR Advent Calendar2019の第1日目の記事です。

はじめに

R言語の特徴として

  • 統計解析向けの手法がたくさん実装されている
  • CRANやGitHubに誰でもパッケージを公開できる

というものがあるかと思います。他にも tidyverse パッケージ群の登場によってデータハンドリング、可視化周りが強くなったり、shiny パッケージでwebアプリが作れたりと最近は色々できるようになっていますが、上記の特徴は大きな特徴の一つと僕は思います。

さて、いろんな手法を別の人が実装した結果、各パッケージのアウトプットが異なるという問題がおこります。(手法が違えば出力が違うのはしょうがないのですが。)例えば、同じデータでいくつかの手法で試してみてその結果を比較したいとき。

model1 <- lm(Sepal.Length ~ Petal.Length, data=iris)
model2 <- rstanarm::stan_glm(Sepal.Length ~ Petal.Length, data=iris)

この例でこの比較に意味があるのかはさておき、この2つのモデルに対して回帰係数をそれぞれ見たいとき、

model1$coefficients
#>  (Intercept) Petal.Length 
#>    4.3066034    0.4089223
model2$coefficients
#>  (Intercept) Petal.Length 
#>    4.3076763    0.4085251

のように見ることもできますが、rstanarm::stan_glm() の出力のリストに coefficients という項目があることは事前知識があるか、model2の中を実際に見てみないとわかりません。

あるいは lme4 パッケージや brms パッケージでランダム効果を入れたモデルを作成したときに、そのランダム回帰係数を見たいと言われたら、 model_brms <- brmss(...) で作ったmodel_brms中を探しに行かなければなりません。

このような統計モデル系のパッケージの間を埋めてくれるのが easystats パッケージ群です。

そのあたりを解決してくれるのが easystats パッケージ群です。tidyversetidymodels のようなパッケージ「群」です。インストールをして library(easystats) を実行すれば複数のパッケージがまとめて読み込まれます。つまり tidyversedplyr パッケージや tidyr パッケージを組み合わせていたように、複数のパッケージをを組み合わせることが想定されているということです。細かいパッケージの使い方は別記事に譲るとして、本記事では library(easystats) を実行したときに読み込まれるパッケージの紹介と、「例えばこんなことができるよ」的なものを紹介できればと思います。

続きを読む

「白金鉱業 Meetup Vol.12(白金鉱業 x IBM社内勉強会dsn 合同企画回)」に参加しました。

白金鉱業 Meetup Vol.12(白金鉱業 x IBM社内勉強会dsn 合同企画回)に参加しました。 白金鉱業 Meetupの参加自体始初めてだったのですが、非常に楽しめました。

brainpad-meetup.connpass.com

続きを読む

「データアーキテクト(データ整備人)を”前向きに”考える会」に参加しました

はじめに

11/27に開催された「データアーキテクト(データ整備人)を”前向きに”考える会」にブログ枠として参加させて頂いたのでイベントの様子をレポートとして書きます。

analytics-and-intelligence.connpass.com

会場: 株式会社オプト

続きを読む

RからGoの関数をつかう→はやい

これはなに

こんな話があります(だいぶ昔

qiita.com

qiita.com

で、RからRustを使おうというのが ゆたにサンの記事。*1

notchained.hatenablog.com

それで、この記事はRからGoを使おうって話です。

速度の比較をやりたいので、本記事ではフィボナッチ数列の関数を書いて比較します。

※この記事は別に「みんなGoを使おうぜ」みたいな趣旨ではないです。現状だとC++使うほうが応用範囲は広いと思うので

*1:余談ですが、僕はこの記事に関する発表をTokyo.Rで見た覚えがあるんですが、もう3年以上前のことなのですね。。。光陰矢の如し。

続きを読む

Rおじさん、Lisperへの道 (Common Lisp環境設定編)

はじめに

Twitter上でこんなやりとりがあって、Lispをちゃんと勉強しようかなと思った次第。これまでEmacsを使って設定ファイルも(汚いけど)それなりに書いてきたので基礎を知ってるくらいなので、ここは一つCommon Lispをちゃんとやっておきたいなというのが主な動機です。

ところで、このブログは「データ解析周りを中心に、プログラミング全般について書く」と明言してるわけですがこれからやるCommon Lispがどのくらい役に立つかは未知数。

続きを読む