読者です 読者をやめる 読者になる 読者になる

StatsFragments

Python, R, Rust, 統計, 機械学習とか

R

R {ggplot2} で 少し複雑なサブプロットが描きたい

この記事は R Advent Calendar 2015 4 日目の記事です。 {ggplot2} でのサブプロット {ggplot2} でサブプロットを描画したいことがある。同じ種類のプロットを水準別に描画するなど、単純なものであれば facet で描ける。例えば 適当な散布図を Species 別に…

{purrr} でリストデータを操作する <2>

前の記事に続けて、{purrr} で {rlist} 相当の処理を行う。今回はレコードの選択とソート。 sinhrks.hatenablog.com サンプルデータは前回と同じものを利用する。リストの表示も同じく Hmisc::list.tree を使う。 library(rlist) library(pipeR) library(pur…

{purrr} でリストデータを操作する <1>

R で関数型プログラミングを行うためのパッケージである {purrr}、すこし使い方がわかってきたので整理をしたい。RStudio のブログの記載をみると、とくにデータ処理フローを関数型のように記述することが目的のようだ。 purrr 0.1.0 | RStudio Blog The cor…

R パッケージを CRAN で公開する

少し前に 自作パッケージを CRAN で公開したのだが ブログに書くのを忘れていた。CRAN 公開時の注意点に関して、日本語の説明があまりない / 情報が古いので簡単にまとめたい。 パッケージの作成 この資料を読みましょう。 東京R非公式おじさんが教える本当…

岩波データサイエンス Vol.1

ご恵贈いただきました。 ありがとうございます! あわせてタスクもいただきました (下部)。 書籍のコンテンツ 各章ごとの内容は id:sfchaos さんが詳しく紹介されています。 d.hatena.ne.jp まだ すべて読めていないのですが、以下 3 点がよいポイントだと思…

{rbokeh} で Bokeh を R から使いたい

はじめに Bokeh は Python 以外にも R, Scala, Julia 用のパッケージを提供している。パッケージといっても Python の Bokeh と連携するものではなく、Bokeh がブラウザでのレンダリングに使っている Bokeh.js を各言語で扱えるようにするもののようだ。その…

R で 状態空間モデル: {dlm} の最尤推定を可視化する

{dlm} において、状態空間モデルが最尤推定される過程がみたい。以下内容の補足的なエントリ。 R で 状態空間モデル: {dlm} の対数尤度計算について - StatsFragmentssinhrks.hatenablog.com 「状態空間時系列分析入門」では 引き続き 第8章 に相当。 状態空…

R で 状態空間モデル: 状態空間時系列分析入門を {rstan} で再現したい

前の記事でもリンクさせていただいているが、サイト 「状態空間時系列分析入門」をRで再現する では以下のテキストを {dlm}, {KFAS} で再現されており非常にありがたい。これらのパッケージの使い方については リンク先を読めば困らない感じだ。 自分も勉強…

R で 状態空間モデル: {dlm} で単変量モデルの状態空間表現を利用する

こちらの続きで、状態空間時系列分析入門の第8章の内容。 R で 状態空間モデル: {dlm} の対数尤度計算について - StatsFragmentssinhrks.hatenablog.com 状態空間時系列分析入門作者: J.J.F.コマンダー,S.J.クープマン,Jacques J.F. Commandeur,Sime Jan Koo…

R で 状態空間モデル: {dlm} の対数尤度計算について

状態空間モデルを扱う R パッケージである {dlm} では、モデルのパラメータ推定を最尤法で行なう。その際に使われる対数尤度の計算式はパッケージによって違いがあるようで、推定結果が自分の参照しているテキストとずれる。その違いを確かめたい。 当該のテ…

R {ggplot2} で独自の geom を手軽に作りたい

重要 このエントリは {ggplot2} 1.1.0 以前の情報です。v2.0.0 以降の方法は vignettes "Extending ggplot2" を読んでください。 CRAN - Package ggplot2 はじめに {ggplot2} を使っていると、新しい描画図形 (geom) を作りたいなという場合がたまにある。そ…

R {R6} で 別クラス同士の演算子を定義したい

R

先日の Tokyo.R で紹介されていた {R6} パッケージが使いやすそうだったため、自分の パッケージ でも 使ってみるべく試した。 R6パッケージの紹介―機能と実装 作りたいのは 複数の ggplot インスタンスをまとめて描画するコンテナクラス。{ggplot2} では 種…

RStan / PyStan 開発版を GitHub からインストールする

最近ちょっとした事情で Stan を使いたく、状態空間モデルの勉強とあわせて こんな感じ でやっている。その環境構築ネタ。 補足 Stan って何?という方は StanTutorial がわかりやすい。 Stan の公式バインディングとしては R 用の RStan、Python 用の Pysta…

R {ggplot2} の散布図に凸包 / 確率楕円を描きたい

小ネタ。{ggplot2} でグループ別の散布図を描くときに、ちょっと飾り付けをしてグループをわかりやすくしたい。 凸包 (Convex) 最初にベースとなる散布図を描く。 library(dplyr) library(ggplot2) df <- iris p <- ggplot(df, aes(x = Petal.Width, y = Pet…

R で Google Speech API を使ってこっそりがんばりたい

R

この記事は R Advent Calendar 2014 (ATND) の26日目の記事です。 こういう話がある。 有意差でたよっ - 東京で尻を洗う すばらしいパッケージだ。特に yeah::zoi はよい。これを使えば今日も一日頑張れそうな気がする。 library(yeah) yeah::zoi() しかし、…

R {arules} によるアソシエーション分析をちょっと詳しく <2>

こちらの続き。 R {arules} によるアソシエーション分析をちょっと詳しく <1> - StatsFragments データの作り方 (承前) 単体の list や data.frame から arules::transactions インスタンスを作る方法は前回まとめた。 加えて、一般のデータでありえそうな …

R {arules} によるアソシエーション分析をちょっと詳しく <1>

今週は系列パターンマイニング用 R パッケージ {arulesSequences} と格闘していた。使い方にところどころよくわからないポイントがあり、思ったよりも時間がかかってしまった。 関連パッケージである {arules} ともども、ネットには簡単な分析についての情報…

{flexclust} + DTW で 時系列を k-means クラスタリングする

概要 下の記事のつづき。下の記事では DTW (Dynamic Time Warping) 距離を使って階層的クラスタリングを行った。続けて、 DTW 距離を使って 非階層的クラスタリング (k-means法) を試してみる。 stats::kmeans では任意の距離関数を利用することはできないた…

{TSclust} ではじめる時系列クラスタリング

概要 こちらで書いた 動的時間伸縮法 / DTW (Dynamic Time Warping) を使って時系列をクラスタリングしてみる。ここからは パッケージ {TSclust} を使う 動的時間伸縮法 / DTW (Dynamic Time Warping) を可視化する - StatsFragments {TSclust} のインストー…

動的時間伸縮法 / DTW (Dynamic Time Warping) を可視化する

いま手元に 20万件くらいの時系列があって、それらを適当にクラスタリングしたい。どうしたもんかなあ、と調べていたら {TSclust} というまさになパッケージがあることを知った。 このパッケージでは時系列の類似度を測るためのさまざまな手法 (=クラスタリ…

R ggplot2 で線形回帰/一般化線形モデルの残差プロット

ggplot2 で出力している他のグラフとデザインを揃えたかったので作ってみた。 インストール library(devtools) install_github('sinhrks/ggfortify') サンプル デフォルトの plot と (ほぼ) 同じ見た目にしたつもり。 library(ggplot2) library(ggfortify) m …

R {seasonal} パッケージで X13-ARIMA-SEATSを使う

X13-ARIMA-SEATS とは 米国国勢調査局 (Census Bureau)で開発している 時系列処理/季節調整プログラム。日本の統計データも 前身バージョンの X12-ARIMA を利用して季節調整しているのをよく見かける。X13 では これまでの季節調整 (X12-ARIMA) に加え、欧州…

KalmanFilter の動きを可視化する 二次元版

こちらのつづき。一次元での動きはわかってきたので、今回は二次元でやってみる + KalmanFilter の予測 F を入れてみる。 KalmanFilter の動きを可視化する 一次元版 - StatsFragments 二次元への拡張 まず以下の条件で考える。 二変数は とし、それぞれ独立…

KalmanFilter の動きを可視化する 一次元版

KalmanFilter をきちんと理解したいのだが いまいち 具体的な動作がわからない、、、ということで実装 & 可視化してみた。 KalmanFilter とは 誤差が乗っているであろう観測値の系列について、直前の観測と現在の観測を用いて 真の状態を推定する手法。例え…

R ggplot2 で monthplot

Rで時系列データの周期特性をちゃっと確認したいとき、monthplotという関数を使うとデータを月次に分割してグラフ作成してくれる。 monthplot(AirPassengers) が、出力がちょっとアレなのと 月次以外の周期性をみたい場合があるので、 ggplot2 で作ってみた…

R の {MSwM} パッケージでマルコフ転換モデルをためす

マルコフ転換モデルとは 数式を使わない説明。 サーモンとインターネット広告とマルコフ転換モデル|インターネット広告代理店で働くデータサイエンティストのブログ マルコフ状態転換モデルのRパッケージ{MSwM}の使い方(異常値検出・ステータス変化検出な…

ggplot2でよく使うパッケージを autoplot する

パッケージを書いた。 つかいかた RPubs - Plotting Time Series with ggplot2 and ggfortify RPubs - Plotting Time Series Statistics with ggplot2 and ggfortify RPubs - Plotting PCA/clustering results using ggplot2 and ggfortify RPubs - Plotting…

R prcomp での主成分分析結果から元データを復元する

R

普通はこんなことやる必要ないですが、、、主成分分析 prcomp 関数の結果のみを引数にして、元データ込みの処理を行う関数がどうしても書きたかったので。 # 元データ head(iris) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5.1 3.5 …

Python rpy2 で pandas の DataFrame を R の data.frame に変換する

pandas の DataFrame を R へ渡す/また R から Python へデータを戻す方法について、本家のドキュメント が書きかけなのでよくわからない。ということで 以前 下の文書を書いたので訳してみる。 DOC: Complete R interface section by sinhrks · Pull Reques…

R dplyr, tidyr でのグルーピング/集約/変換処理まとめ

これの続き。よく使う集約/変換処理もまとめておく。 Rの data.table と data.frame を dplyr で区別なく扱う - StatsFragments 準備 library(dplyr) library(tidyr) (df <- dplyr::tbl_df(iris)) # Source: local data frame [150 x 5] # # Sepal.Length Se…

Rの data.table と data.frame を dplyr で区別なく扱う

R を使っていると、組み込み型の data.frame と大規模データ用パッケージである data.table の差異で思わずはまることがあるので使い方をまとめる。どちらか一方しか使わないようにすれば 差異を気にする必要はないのかも知れないが、、。 基本的には データ…

ggplot2でsurvival::survfitさせた生存曲線を描画する

こちらの survival 版: ggplot2でforecastインスタンスを描画する - StatsFragments 同じように survfit 用の fortify を定義すればよい。lung(肺ガンデータ)を使って、男女別のKaplan-Meier曲線を描いてみる。 library(survival) library(ggplot2) library(…

ggplot2でforecastインスタンスを描画する

最近 時系列データを forecast パッケージを使って処理している。便利! library(forecast) d <- AirPassengers d.arima <- forecast::auto.arima(d) d.forecast <- forecast(d.arima, level = c(95), h = 50) plot(d.forecast) この結果を、総称関数 plot …