新年あけましておめでとうございます。
令和初の1月です。
今年もデータ分析の仲間としてよろしくお願いします。
去年末にデータ分析会社に転職して、忙しさにかまけてEDAsalonを疎かにしていましたが EDAの重要性を再認識する今日この頃です。
なので、1月投稿ギリギリですが間に合いよかったです!!
今回のテーマはオリンピック
先にいいますと、今回の投稿は手法の勉強にオリンピックを利用させていただいたという形です(IOCのみなさん、ごめんなさい)
じゃあ、この投稿の価値は何かといいますと
1. ExploratoryとRSQLiteの連携
2. RFM分析のデータへの適用(with SQL code)
3. Exploratoryのパラメータ機能を使ってみる
4. 3次元散布図の使用(Mac限定)
5. Mac PCでのexplotaroty使用
です。
SQLの勉強として、SQLiteを触りました。適当なデータベースねたがなかったので、EDAsalonのオリンピックデータ使いました(IOC,exploratoryのみなさん、ごめんなさい)
確か、exploratoryはSQLも連携できると聞いたなーと思って、ググったら https://exploratory.io/note/2ac8ae888097/8482041754876436
いいHow toがありました。
これを元にさくっと行けるだろうと思って、やったら少してこずりました。
ポイントは私の場合、二つありました。
一つ目は以下のように書くことです。
4行目を書かずに3行目までだとエラーになります
library(DBI)
library(RSQLite)
con <- dbConnect(SQLite(), "/Users/shotanabe/SQL/EDAsalon.db")
dbGetQuery(conn, "SELECT * FROM olympic_data")
二つ目のポイントは、文字列の囲み文字は’を使うことです。“は引数の記述に使われており(一つ目のポイントの4行目のdbGetQuery関数)、ツールが変な動作になります。
SELECT CASE
WHEN medal = 'Gold' THEN 3
WHEN medal = 'Silver' THEN 2
WHEN medal = 'Bronze' THEN 1
これさえ、クリアしたらさくっとSQLiteのコードが動きました。よかった。。
勉強に使った本にRFM分析のことが書いてあり、以前のExploratoryのブートキャンプでもやったなーと思って、復習がてらやってみました。
オリンピックデータに対してのRFM分析の定義は 1. Recency:各チームの直近のメダル獲得年と2020年現在の差分(小さい方が優秀)
2. Frequency:各チームの過去120年のメダル獲得年の回数
3. Medatary(造語):金銀銅の獲得重みを3、2、1とした各チームの過去120年のメダル獲得量(獲得なしは0)
RFM分析結果を可視化したら予想以上に見辛かった。
困ったなーとビールを飲みながら、考えていたら
パラメータ機能を思い出したので使ってみた。
これまた 良いHow toがありました。
https://exploratory.io/note/BWz1Bar4JF/Bpn7RbJ5Hs
西田さんが以前にチラッと言っていた。
「この機能、Mac限定だよ」
その時の俺の心の声(Windowsユーザー)
「( ͡° ͜ʖ ͡°) え?」
でも今は、、
気付いたら、俺はMacユーザーになっていた。
(2本指クリックは1週間経って存在を知った)
というわけで、3次元散布図を使ってみた。
グリグリできる!! 面白い!!
みんな 使おう!!(Mac限定)
評判よかったら、Exploratoryスタッフさんが頑張ってWindowsにも実装してくれるはず。
「こいつ、、、、早いぞ!」
サクサク動いてくれる。
以下のように作りました。
パラメータの枠をクリックすると、候補チームがリストで出るので興味のあるチームを選択してRFM的に面白いチームを探してみください。
明日の勉強会、これで胸はって参加できる。
exploratoryのみなさん、よろしくお願いします。