廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

R

スパークライン風のカプランマイヤープロット

層分けが多くなると凡例と見比べるのが大変なのでなんとかしたいと思った。普通にプロットする。はい。スパークライン風にプロットするとこんな感じかなあ。累積イベント発生率が25%に達する点、50%に達する点、75%に達する点に赤っぽい丸、最後のイベント発…

[googleAnalyticsR]再発事象のカプラン・マイヤープロット

survrec っていうパッケージもあるらしいけど慣れてないので survival を使います。どのチャネルが再来訪しやすいのか、何日くらいの間隔で何パーセントくらい戻ってくるのかがわかります。 library(googleAnalyticsR) library(tidyverse) library(survival)…

【rstan】グループ化時間&右切断ワイブル分布+ポアソンノイズで需要予測モデル

なにかの製品の月ごとなり週ごとなりの出荷数のデータがあるとします。 このデータを「製品が発売されてから消費者が購入に至るまでの待ち時間」を計測したものだと捉えなおすと、ワイブル分布を仮定して分析するのもさほど不自然ではないように思えます。そ…

rstan で生存関数の推定(離散時間, 2群)

いろいろやり方はあると思うけど, かんたんに書けるので, とりあえずこれでいいかなと思った.生存関数を で表し, 離散時間でハザードを考えると,, , ,...生存関数を考えると,, , ,...各時間区切りごとのイベント数を , リスクセット(その時間の直前までイベ…

AICと一個抜き交差検証法と汎化損失のシミュレーション

R

AICは汎化損失を近似するもので漸近的には一個抜き交差検証法の結果と一致するという話を聞いてやってみました。 汎化損失 分布の「近さ」を測る尺度として代表的なものが次に定義されるカルバック・ライブラ情報量です。これを変形するととなります。 を真…

dlm による LWR モデルのパラメータ推定(渋滞の予測)

シンプルな LWR モデルの近似解 - 廿TT のモデルでもう少し遊んでみる。観測点が 6 個あって、それぞれが時間ごとにトラフィックの量を計測していると考える。上記で離散化した、 が状態方程式である。 が一定という仮定はちょっと不自然な気がするが、下手…

シンプルな LWR モデルの近似解

モデル 渋滞の数理モデルの一つに LWR モデルというのがあり、以下の偏微分方程式で記述される。: 位置 : 時間 : 自動車の密度 : 自動車の通過量このモデルでは一次元の道路を通行する自動車の密度を考えている。自動車の密度 は、単位長さあたりの自動車の…

Rcpp を用いたギブスサンプリングのかんたんな例題

参考文献 Rによるモンテカルロ法入門作者: C.P.ロバート,G.カセーラ,石田基広,石田和枝出版社/メーカー: 丸善出版発売日: 2012/08/23メディア: ムック購入: 1人 クリック: 23回この商品を含むブログ (2件) を見る計算統計学の方法―ブートストラップ・EMアル…

カーネル密度推定で推定された密度からのリサンプリング

R

R です。乱数です。何の意味があるのかわかりませんけれども。一次元です。 set.seed(1) dens1 <-density(faithful$eruptions) r1 <-sample(dens1$x,1000,prob=dens1$y,replace = TRUE) hist(r1,freq = FALSE) lines(dens1,lwd=2) 二次元です。 library(MASS…

RcppNumerical でワイブル分布のパラメータの最尤推定

GitHub - yixuan/RcppNumerical: Rcpp Integration for Numerical Computing Libraries を参考に、optim_lbfgs を使ってワイブル分布のパラメータの最尤推定を試した.変数 f に対数尤度, g1, g2 に対数対数の一回微分, を与えています. // [[Rcpp::depends(R…

順序のある2次元分割表の比例ハザードモデル

R

モデルと尤度関数 2次元分割表 (, ) が得られたとする. たとえばこんなふうだ. 強く反対 反対 中立 賛成 強く賛成 皆無 15 5 6 0 1 まれ 8 17 13 7 2 ときどき 3 4 4 7 6 しばしば 2 0 3 5 3 常時 0 2 2 9 16 このデータは柳本・清水(1983)からの孫引きで,…

Rcpp の rexp の引数はレートじゃなくて平均だった。

こうやってやると R の rexp と結果が一致する. #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector rexp2(int N, double lambda) { NumericVector out(N); for(int i=0; i</rcpp.h>

EMアルゴリズムを用いたときの観測情報行列の求め方(混合二項分布)

R

Louis の公式 Louis (1982) はEMアルゴリズムを用いたときの観測情報行列に関する, 以下の関係式を導いた.ここで は完全データの対数尤度の 1 次導関数ベクトル, は 2 次導関数行列の負値である.さらに未観測のデータ が, 多項分布(カテゴリカル分布)に従…

EMアルゴリズムを用いたときの観測情報行列の求め方(混合正規分布)

R

Louis の公式 EMアルゴリズムの弱点は, 推定量の分散の評価を直接的には得られないことにあった.しかし, 完全なデータが得られたという条件の下で対数尤度を用いて情報行列を計算する方法がいくつか考案されている. Louis (1982) は, 以下の関係式を示した.…

EM アルゴリズムによるゼロ過剰二項分布のパラメータ推定と Google アナリティクスデータの分析

【GTM版】GoogleアナリティクスのClientIDを取得する方法 | SEM Technology を真似して Google アナリティクスでユニークユーザーごとの ID(より正確にはユニークブラウザごとの ID)を取れるようになった.googleAnalyticsR でデータを取得すると、こんなふ…

混合ロジスティック回帰を用いた検索クエリのクラスタリング(flexmix 版)

R SEO

[rstan]混合ロジスティック回帰を用いた検索キーワードのクラスタリング - 廿TT というエントリを書いたんだけど、実務で使うには Stan はちょっとハードル高いかなーと思って R のパッケージを探したら flexmix というのがあった。これで簡単にクラスタリ…

R でアクションペインティング

R でジャクソン・ポロックっぽい絵を作る関数を公開しました。JacksonPollock.R · GitHub source("https://gist.githubusercontent.com/abikoushi/2e9bcb28f13fdc299065e82a66c6b5f5/raw/f4989f55f9c0b453410c9db5fcd13ec4df5a45c5/JacksonPollock.R") Jacks…

[searchConsoleR]文脈に基づく検索キーワードのクラスタリング

SEO R

検索クエリではなく、検索クエリに含まれるキーワードをグルーピングしたい。Search Console のデータを使います。 キーワードの類似度 どこからどこまでを一つのキーワードとみなすかは難しいですが、ここでは単純に検索クエリ内のスペースで区切られた文字…

[searchConsoleR]CUSUM管理図で掲載順位の変化点を半自動検出

Search Console ではページごとの平均掲載順位(position)のデータが取れるけど、順位の変動を見張るのは大変である。そこでCUSUM管理図の考え方を使って、変化点の検出を半自動化してやろう。CUSUM管理図については Google アナリティクスデータの変化を検…

[rstan]混合ロジスティック回帰を用いた検索クエリのクラスタリング

Search Console のデータを使います。まずは searchConsoleR でデータを読み込み、プロットします。対象とするランディングページは http://abrahamcow.hatenablog.com/entry/2015/01/17/064522 とします。 library(dplyr) library(cowplot) library(searchC…

[RStan]多項ロジスティックモデルで μ's とAqours の人気の差を調べる

背景の整理 μ's とAqours の人気の差(驚異のアニヲタ社会復帰への道) のデータを使わせていただきます。あるアニメショップでラブライブのキャラの人気投票をしたとき、μ's のメンバーが、Aqours のメンバーより全体的に上位だったそうです。そこで 2 グル…

Google アナリティクス:マルチチャネルレポートの図示(アトリビューション分析)

googleAnalyticsR を使ってコンバージョン経路レポートを集計する関数を書いた。pathanal.R · GitHub内部で dplyr を使っています。アトリビューション分析というのは明確な定義のある用語ではないと思うけど、直接コンバージョンのあったセッションだけでな…

ggplot2 で内訳を左から右に詳細化していく棒グラフ

ggplot2 でラザニアプロット(ある値以上の値を合算したヒートマップ) - 廿TT に引き続き、新しい geom を作ってみたくて geom_drilldown.R · GitHub を書きました。ggplot2 で内訳を左から右に詳細化していく棒グラフ(ツリーマップ?)です。{googleAnaly…

ggplot2 でラザニアプロット(ある値以上の値を合算したヒートマップ)

geom_lasagna.R · GitHub を書きました。ラザニアプロットというのは要は時系列データについてのヒートマップ(色付きテーブル)です(ラザニアプロット(fields パッケージの image.plot にちょっと一工夫) - 廿TT)。さて、Web 解析の分野ではよく「エン…

ggplot2 で二項分布の成功確率パラメータの信頼区間

ggplot2 で移動平均(stat_ma) - 廿TT に引き続き、二項分布のパラメータの信頼区間を描画する stat_binomCI を書いた。stat_binomCI.R · GitHubGoogle アナリティクスのデータで試してみる。例1:ランディングページごとの直帰率の比較はこんな感じ。 lib…

ggplot2 で移動平均(stat_ma)

Extending ggplot2 (Extending ggplot2(和訳) - Qiita)を読んで自分でも新しい stat を作ってみたくなったので、手始めに練習として移動平均を描画する関数 stat_ma を書いてみました。stat_ma.R · GitHub library(ggplot2) source("https://gist.github…

R: シニングによる非定常ポアソン過程のシミュレーション

ポアソン過程は適当に点を間引いてやっても(非定常)ポアソン過程になる。この性質を使って非定常ポアソン過程をシミュレートすることができて、それをシニング(thinning)と呼ぶ。詳しくは An Introduction to Statistical Computing: A Simulation-based…

{googleAnalyticsR} {ggplot2} 何秒でユーザが離脱したか、残存率の図示

直帰率や平均滞在時間よりも詳しくエンゲージメントを把握したい場合、次の図がおすすめです。何秒目に何パーセントのセッションが継続しているかを知ることができます。ここでは新規訪問とリピーター訪問で層別していますが、ランディングページや流入経路…

{googleAnalyticsR} {ggplot2} Crossbar plot で滞在時間の分布を比べる

Crossbar plot は次のような図です。これがなにを表すかは場合によります。今回は箱の上の辺にデータの75%点、真ん中の線に中央値、箱の下の辺に25%点を割り当てました。いわば退化した箱ひげ図です。次の図はあるランディングページを経由した訪問の、月ご…

{ggplot2} 集計済みデータのヴァイオリンプロット

データがこのようにすでに集計された状態で与えられたときに、複数カテゴリ間で分布を比較したい。 value A B 1 1 1 3 2 2 2 2 3 3 3 1 ヴァイオリンプロットが使えることがわかった。 library(cowplot) library(tidyr) data <- data.frame(value = 1:3, A =…