統計コンサルの議事メモ

統計や機械学習の話題を中心に、思うがままに

R

RとPythonの結果を一致させたい

背景 RからPythonを呼び出す 線形回帰 ロジスティック回帰 終わりに 背景 通常、私はデータを分析する際には主にRを使用します。しかし分析結果を既存のシステムに投入するなど実装を考えた場合には、Rではなく別の言語を求められることもあると思います。 …

Stanを使って変数選択したい

背景 データ準備 ライブラリの読み込み シミュレーションデータの作成 フィッティング stan_glmによるフィッティング 結果の確認 追試 終わりに 背景 Stanを使ってモデリングをしている時に不満を感じる点として、変数選択が難しいということが挙げられます…

Ad-Stock効果を推定しつつ回帰を回したい⑤

背景 しつこいようですが、Marketing Mix Modeling(MMM)の話題です。 先日、こんな面白い論文を見つけました。 GoogleのResearcherによるMMMの論文(彼らはMedia Mix Modelingと呼んでいます)なのですが、ヒルの式を用いて広告のShape効果(Carveture効果…

RでWebスクレイピングしたい

背景 ちょっとした用事によりリコール情報について調査する機会がありました。これまでWebスクレイピングは経験がなかったのですが、便利なライブラリ({rvest})もあることだし、挑戦してみた結果を紹介します。 内容としては、国交省のサイトにある「リコ…

階層ベイズと状態空間モデルで広告効果を推定したい

背景 これまでMarketing Mix Modeling(MMM)におけるAdStock効果の推定について色々と記事を書いてきましたが、その他にも試したいと思っているモデルがいくつかあります。その一つが階層ベイズモデルと状態空間モデルを同時に取り扱うものです。 例えば「…

スタイン推定量を確かめてみる

いきなりですが、最近購入したベイズモデリングの世界を読んでいて非常に面白い話題を発見しました。 ベイズモデリングの世界作者: 伊庭幸人出版社/メーカー: 岩波書店発売日: 2018/01/18メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る…

Bayesian GLMで過適合を避ける

長らく知人に貸していた「みんなのR」が手元に戻ってきたのでパラパラと見ていたら、見逃していた面白いトピックを見つけたので紹介します。内容としてはこちらの記事とほぼ同じで、基本的には書籍の該当部分を再現しているだけですが、{purrr}のmapを使った…

ベイジアンネットワークで変数間の関連性を見る

実務でデータ分析を行うときにしばしば変数間の因果関係の有無およびその強さについて問われることがあるのですが、その回答としてベイジアンネットワークを使いたいと思っていたので調べてみました。 この記事ではベイジアンネットワークを扱うためのパッケ…

WAICを計算してみる

ある統計モデルの予測精度を表す指標としてAIC(Akaike Information Criterion)というものがよく使われますが、stanを用いてモデリングした場合にはAICを計算することができません。しかし2009年に渡辺澄夫先生が発表したWAIC(Widely Applicable Informati…

Stanで疑似相関を見抜く

ベイズ統計をちゃんと勉強しようと思い、最近Statistical Rethinkingという本を読んでいます。Statistical Rethinking: A Bayesian Course with Examples in R and Stan (Chapman & Hall/CRC Texts in Statistical Science)作者: Richard McElreath出版社/メ…

Ad-Stock効果を推定しつつ回帰を回したい④

これまでにMarketing Mix Modelingにおける広告の累積効果の推定について、以下のような記事を書いてきた。ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com今回は遺伝的アルゴリズムを用いてパラメータの推定を行った…

Bayesian t-testを書いてみたい

IBM SPSS Statisticsにベイズ推論が実装されるらしい。news.mynavi.jpこれ以外にも最近は身の回りでやけにBayesian t-testに関する話題を耳にすることが多いので、t-検定をベイズ化することのどこにニーズがあるのかを考えていたのだけれど、どうやらA/B tes…

Random Forestの結果をSQLに落としたい

Random Forestは数ある機械学習アルゴリズムの中でも、高い精度を得やすく分散処理が容易であることから頻繁に用いられるものの一つであると思う。 Rでは{randomForest}パッケージが有名だが、最近では{ranger}や{Rborist}といった新しいパッケージが出てい…

ggvisによるRで可視化

面白いパッケージを発見したので紹介。可視化のための機能を提供してくれるもので、{ggvis}というもの。もしかすると{ggplot2}を超えるかもしれない。使い方が非常にシンプルで、思想として{ggplot2}に似ているので慣れた人にはスイッチしやすいと思う。dply…

Ad-Stock効果を推定しつつ回帰を回したい③

Marketing Mix Modelingにおける広告の累積効果の推定について、以下の記事を書いた。ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com本日はこの続きで、同じような条件で作成したデータに対してstanを用いたベイズ推定を実施したので、その内容を…

Ad-Stock効果を推定しつつ回帰を回したい②

先日、Marketing Mix Modelingにおける広告の累積効果(Ad-Stock効果)の推定について以下のような記事を書いた。ushi-goroshi.hatenablog.comその後も推定方法について調べていたところ、以下のような記事を発見した:www.mm-lab.jp要するに一期前の目的変…

Keras for R

RstudioがR上でKerasによるディープラーニングのモデルを構築するためのライブラリ{keras}を公開した。R Interface to Keras • keras以前から{tensorflow}を使えばtensorflow::import(module = "keras")でKerasを導入することができたようだが、{keras}を先…

Ad-Stock効果を推定しつつ回帰を回したい

最近ずっとMarketing Mix Modeling(MMM)をやっている。その中で広告効果(いわゆるROI)を推定しているのだけれど、広告の効果というものは出稿した時点だけでなく将来に渡って影響を及ぼすため、過去の広告の累積による影響(いわゆる残存効果・Ad-Stock…

dplyr::filterの注意点

R

最近すっかりHadley信者になってしまいデータ加工にもdplyrをよく使っているのだけれど、filterで少し躓いてしまったのでメモ。まずは{dplyr}と{dtplyr}を読み込む: library(dplyr) library(dtplyr) やりたかった処理とは以下のようなもので、irisを例とす…

summaryの罠

R

年月を6桁の数値(YYYYMM)で表すために以下のように書いて何気なくsummaryを実行したところ、思わぬ挙動となった。 > Year <- rep(2012:2016, each=12) > Month <- rep(1:12, 5) > YM <- Year * 100 + Month > summary(YM) Min. 1st Qu. Median Mean 3rd Q…

SparklyrによるApache Sparkのインストールとロジスティック回帰の実行

{sparklyr}というパッケージを使うことでWindowsであってもApache Sparkのインストールが簡単にできる。また{sparklyr}にはSpark MLlibの機械学習用の関数がラップされており、それを使ってみた結果を記しておく。基本的にはRstudioの{sparklyr}の紹介ページ…

Microsoft R Clientによる大規模データの分析

R

Revolution Analyticsを買収したMicrosoftが、Revolution R Openに代わりMicrosoft R OpenというRのラッパーのようなものを出している。それに更に大規模データ分析用の独自開発パッケージを追加したMicrosoft R Client(MRC)というツールがあり、MRCの独自…

RでTensorFlow

知らない間にRでTensorFlowが使えるようになっていたので触ってみました。それにしてもRStudioは相変わらずイイ仕事をしますね。まずは以下の通り、RStudioのGitHubからTensorFlowのライブラリをインストールします。なおこのライブラリはあくまでPCに事前に…

optimってあんまり信用できないなぁ、って話

タイトルの通りです。仕事で使うことがあったのでRのoptimを使って回帰を解いてみたのですが、これが意外に安定しません。変数の数なのか、ダミー変数が含まれるとダメなのか、原因についてはよくわかりませんが想定以上に解がバラついてしまいました。実行…

Data Scientist Workbench

こんなサービスがあることを最近知った。 ■Data Scientist Workbench datascientistworkbench.com IBMが提供しているサービスで、ブラウザ上でRStudioやJupyterが実行できる環境を提供してくれる(無料で!)。分析手法よりもHadoopやSparkなど大規模データ…

RでBI

忙しかったので久しぶりの更新です。 最近Rでこんなパッケージを発見して驚いた。その名もrpivotTable。なんとRでTableauのようなBIツールを再現してしまうという夢のようなパッケージだ。パッケージのインストールから実行までは以下のようになる: install…

遺伝的アルゴリズムで変数選択を行うパッケージ

遺伝的アルゴリズム(GA)をRで実行するためのパッケージを探していたら、GAによる変数選択という非常に興味深いものを発見した。パッケージ名はGALGO。Genetic Algorithms to solve Optimization problemsらしい。早速使ってみたが、インストールに少し手間取…

データ分析にあたっての参考書籍

データ分析に興味を持ち始めた方から、参考となる書籍についての質問を受けることがあります。統計や機械学習、データ分析に関する本は世に溢れているので、どれを読めばよいか困りますよね。そんな時にいつもお薦めしている本が2冊あります。 ①統計学入門 …

Google's R style Guide

R

プログラミングは人によって色々と「お作法」が異なっているため、他人の書いたコードを見ると非常に勉強になったり、はたまた困惑したりします。 個人の趣味や絶対に他人が関わらない範囲であれば構わないのですが、チームでプロジェクトに入った時などは、…

60 R Language Tips

R

RであれPythonであれ、プログラミング言語というのは多くの人がハマりがちなポイントがありますよね。そのようなときは先人の残した知恵に頼るのが良い解決策であり、Tipsが集積された資料があると大変うれしいですね。というわけでこれ。60 R Launguage Tip…