無粋な日々に

頭の中のメモ。分からないことを整理する

データ分析

Stanでガンマ回帰(動かす編)

回帰問題で目的変数が正の連続値をとる場合、ガンマ回帰は選択肢の一つになります。個人的に適用シーンは多いと思うのですが比較的情報が少ない気がします。本投稿ではトイデータとStanでサクッとモデルを動かしてみたいと思います。なおガンマ回帰はGLM(一…

Pythonでmode(最頻値)を算出する最良の方法

Pythonでたまにmode(最頻値)を算出したくなるのですが、いつもどう算出するか迷います。算出方法を整理して、処理時間も計測してみました。 5つの方法 最良の方法(結論) 1. 最頻値が複数ある場合の挙動の差 2. 関数一発かの差 3. 処理速度の差 求め方 設…

時系列分析:ARモデルの性質と定常性(1/2)

ARモデルはシンプルな時系列モデルですが、自己共分散や自己相関はMAモデルほど簡素な表現はなく、Yule-Walker方程式のような連立方程式を解いていくのが一般的のようです。本投稿では2回に分けてARモデルの期待値、自己相関および定常性などの性質を整理し…

時系列分析:MAモデルの反転可能性

自己相関構造は時系列モデル選択の重要な基準になります。しかしながらMAモデルでは同じ自己相関構造を持つモデル(パラメタ)が複数存在するため、その中からMAモデルを一つ選ぶ基準が必要です。この基準として反転可能性の議論がでてきます。本投稿ではMA…

時系列分析:ホワイトノイズとiid

ホワイトノイズとiid(independent and identically distributed:独立同分布)を混同してしまう事があります。本投稿ではこの2つを整理します。普段の分析ではホワイトノイズとiidをそこまで厳密に区別するケースは少ないと思います。理論を追っていて、前提…

時系列分析:後退オペレータについて

時系列の勉強をしていると、後退オペレータ(Backshift Operator)というのが出てきます。このオペレータを使って時系列モデルを表現することで、簡潔で見通しの良い議論が可能になるようです。本投稿ではこれについて考察したいと思います。なお後退オペレ…

時系列分析:移動平均過程(MAモデル)の性質と定常性

時系列分析では、系列の統計量が時点に依存しないというシンプルな構造が基本となっています。まず定常性の元に基本的なモデルが構築され、そこから非定常のモデルに拡張されていくようです。そのため「定常かどうか」を議論されることが多いです。本投稿で…

統計学習メモ:分散、共分散

データ分析の勉強をしていると期待値や分散の計算は非常によく使う。ほとんどこればっかりやっている感じ。 なので期待値や分散の性質は、一度納得したら覚えておくとスムーズ。 本記事では分散、共分散の定義や性質をまとめます。期待値のまとめはこちらか…

統計学習メモ:期待値

データ分析の勉強をしていると期待値や分散の計算は非常によく使う。ほとんどこればっかりやっている感じ。 なので期待値や分散の性質は、一度納得したら覚えておくとスムーズ。 本記事では期待値の定義や性質をまとめます。分散、共分散のまとめはこちらか…

Python: 多次元のnumpy.arrayを1次元にするreshapeとravel

numpyの多次元配列を一次元配列にしたいときは、reshape(-1,)かravel()を使えば良い import numpy as np # サンプルデータ生成(3 × 3) > x = np.arange(9).reshape(3, 3) # 表示 > x array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) # 方法1 > x.reshape(-1,) ar…

pandas.DataFrameのplotメソッドとsubplotを使って、複数グラフを柔軟にプロットする

pandasのデータフレームのplotメソッドは超便利でよくお世話になる。 複数カラムを別々のグラフに出力したい場合もsubplot=Trueを指定するだけいいので結構程度便利なんだけど、 もう少し柔軟にプロットしたい時がある。 例えば、 カラム1とカラム2は1つ目の…

Python: jsonな文字列に対してformatメソッドを使う

jsonな文字列に対してformatメソッドを使う方法 pythonでjson形式を含む文字列をformatメソッドを使う場合ちょっと工夫が必要だ。 例えば、以下のような文字列に対してformatメソッドを使うとエラーが出る # jsonな文字列 json_str = """\ {'member':'{name}…

Python: 正規表現で複数行マッチングの置換を行う

Pythonの正規表現で複数行マッチングの置換を行う Pythonのreモジュールを使って複数行に渡る正規表現マッチング・置換を行う場合はflagsオプションに適宜re.MULTILINEやre.DOTALLを指定する。 # 直接置換する場合 re.sub(pattern, repl, string, flags=(re.…

R: RのBroadcast

RのBroadcast RのBroadcast(ベクトル、行列などの型や次元を自動で合わせて演算する)でたまに混乱するのでまとめる。結論だけ書くとRではベクトルを行列にBroadcastするとき、列方向で埋め合わせるという事だけを忘れないようにすればOK 基本原理 デフォル…