
サイボウズ・ラボの中谷です。 先日、このブログでインフラチームの湯谷さんが R と統計の社内勉強会での資料を公開する記事を書いていましたが、同じくその社内勉強会で行ったクラウドサービスのデプロイ時間を分析したお話をします。 blog.cybozu.io 5分で使えるクラウドサービス サイボウズでは cybozu.com というクラウドサービスを展開しています。 クラウドサービスといえば「申し込んですぐ使える」のが一般的なイメージでしょう。 cybozu.com も web サイトから申し込むと、5~10分でサービスが利用可能になります。 これを実現するために、インフラ担当者が24時間待機しておき、申し込みの通知を受付けたらデータベースを切って、サービスインスタンスに申し込まれたアプリケーションをデプロイして……なんてことをしていたら担当者がすぐに倒れてしまうので、そこのところは当然自動化さ
EC サイトなどでは、1 ページの読み込み時間の平均値が短いユーザほどコンバージョン率が高くなるという話があります。 この原因については、サクサク読み込みが終わる速いサイトの方がユーザは気前よく購入する、というわけではなく、単に速い回線を持つほどお金持ちなので購入しやすいという身も蓋もない話もあります。 今回はこの原因についてではなく、制約条件が付いた時のパラメータ推定の話をします。 とりあえず擬似データを作成しましょう。 true_cvr <- c(0.209, 0.126, 0.096, 0.093, 0.086, 0.077, 0.067, 0.057) load_time <- c("0-1", "1-3", "3-7", "7-13", "13-21", "21-35", "35-60", "60+") session <- c(1000, 6000, 4000, 1500, 7
はじめに なんか変なタイトルですが、この記事では次のような現象について考えます。 これはぱっと見は通常の重回帰モデルですが、よく見るとの回帰係数はの関数になっています。本記事ではこういった 間の未知の(非線形かもしれない)交互作用について考えることを目的とします。 どういった状況でこんなよくわからないモデルを考えないといけないのでしょうか? 例えば、とあるシステムの開発プロジェクトの開発にかかる工数を分析するモデルだとして、目的変数 が開発期間、説明変数 が開発規模(人数)、が開発者のコミュ力だとしましょう(※ 単なる例なので現象の妥当性は気にしてはいけません)。 小規模(が小)ならばコミュニケーションを取る相手が少なく文脈も常に共有しているため、コミュ力の影響は小さいと考えられます。つまり、は小さくなります。 一方で規模が大きくなる(が大きくなる)ほどコミュニケーションを取る相手が多く、
1-1. 配列(array)について 配列は任意の型を要素に持つことのできるコンテナです。 したがって、real と int の配列だけでなく、vector や matrix を要素として持つ配列を作ることができます。 二次元配列は、実際は一次元配列を要素に持つ配列です。 real x[M, N] という配列があったとき、x[m, n] は x[m][n] の簡易的な書き方です。 1-2. 行列(matrix)と配列(array)の違い Stan において、matrix と array は明確に異なる役割を持っています。 matrix は数学の行列を表現するためのもので、array は複数の要素を持つためのコンテナです。 したがって、matrix に対しては行列演算(行列積など)を行うことができますが、array に対してはこれを行うことはできません。 また、matrix は線形代数関数(
空間ベイズモデルの一種であるCAR modelがやっと分かった気がしますので備忘録を書きます。 きっかけとなったのは以下の動画の復習です。0:13:50~0:16:30と1:14:50~1:32:20の部分です。統数研の伊庭先生がCAR modelについての講義をしている箇所です。 僕は以前の記事で、動画で言うところのよく書籍で見られるCタイプのfull conditionalで1次のCAR modelを実装した気になっていましたが、これはStan内では r[i] ~ normal((r[i-1]+r[i+1])/2, s) すなわち lp__ (log posterior) には -(r[i+1]-2*r[i]+r[i-1])^2 に比例する量が足しこまれていることに相当し、これは実質的に2次のCAR modelをややこしくやっているのとほぼ同じ意味になっていました(しかも端の分だけダメ
data { int<lower=1> J; // number of data int status[J]; real<lower=0> tt[J]; real x[J]; } parameters { real<lower=1, upper=3> m; real beta; real beta0; } transformed parameters { real<lower=0> eta[J]; for (j in 1:J) eta[j] <- exp(beta * x[j] + beta0); } model { for(j in 1:J){ if(status[j] == 1){ increment_log_prob(weibull_log(tt[j], m, eta[j])); } if(status[j] == 0){ increment_log_prob(weibull_ccd
Bayesian Data Analysis (3rd ed.)の12章12.6節“Stan: developing a computing environment”のメモ。わからなかったところもありました。 Hamiltonian Monte Carloにはプログラミングとチューニングにすこしばかり努力がいる。 ややこしい設定のもとでは、HMCはMarkov chainよりはやくて、信頼できる。 プログラミングとチューニングの難しさを緩和するため、Stan (Sampling through adaptive neiborhoods)というコンピュータープログラムを開発した。ベイズモデルに自動的にHMCを適用する。 アルゴリズムの主要ステップ データとモデルの入力 対数事後密度とその勾配の計算 warm-up期間でチューニングパラメーターの設定 no-U-turn samplerを実行し
自分が分かりやすいように, 応用しやすいように疑似stanコードで書きました、ごめんね。間違ってたらごめんね。 再生性 再生性を使うとモデルをシンプルに書けることがあり、推定のスピードアップにつながります。 以下で用いられる2つの確率変数x1, x2は互いに独立とします。 ●正規分布 対数正規分布の場合は変数の積について再生性が成り立つことになります。 ●コーシー分布 ●ガンマ分布 rate parameterであるbが異なる場合は成り立ちません。a1,a2が半整数である場合はカイ二乗分布に相当し再生性を持ちます。 ●ポアソン分布 ●二項分布 確率pが異なる場合は成り立ちません。 共役事前分布 共役事前分布を使うと事後分布の形が決まるためパラメータの推定の式がシンプルになることがあり、スピードアップにつながります。主要なところをいくつか紹介します。その他のものはwikipedia参照。 ●
Hide Comments (–) Share Hide Toolbars
こんばんは、ゆるふわの対極であるところのガチムチ角刈り系のberoberoです。 この記事はR Advent Calendar 2013の26日目の記事になります。 12/22(日)にBUGS/Stan勉強会#2がドリコム株式会社にて催されました。そこで2つ発表をしました。そのうちの1つ「『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた」に関する詳細&補足&苦労話をここで書きたいと思います。RStanというパッケージでRからStanというMCMCサンプリングソフトを使っています。 最初に発表内容のスライドは以下になります。ざっと見るにはこれで十分です。 『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた from berobero11 以降ではスライドごとに簡単に補足していきます。 まずは元となった書籍の紹介です。時系列解析の第一人者による分か
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く