WHAT' CHA GONNA DO FOR ME?

Python、統計、機械学習、R、ファイナンスとか

2015-01-01から1年間の記事一覧

Stanで混合正規分布の推定②

混合正規分布のパラメータ推定シリーズ。 これまでEMアルゴリズムとStanのMCMCにてパラメータの推定を行ってきた。 今回は、数値最適化によるパラメータ推定をやってみようと思う。 StanといえばHMCを用いたMCMCだが、実は最近のバージョンアップにより数値…

Stanで混合正規分布の推定①

前回↓に引き続き、混合正規分布のパラメータ推定。ただし、今回はEMアルゴリズムではなくStanを使ってMCMCにてパラメータを推定する。EMアルゴリズムで混合正規分布の推定 - WHAT' CHA GONNA DO FOR ME?前回に引き続き、データは以下の分布からサンプリング…

EMアルゴリズムで混合正規分布の推定

EMアルゴリズムの導入として、定番の混合正規分布のパラメータ推定をやってみる。問題としては、K個の正規分布からある比率に従ってサンプリングされたデータだけが手元に得られた状態で、それぞれの正規分布の平均と分散、及びその比率を推定するというもの…

PyStanでOLS①

今回は、流行りのStanをPythonから使ってみようと思う。PyStanを使うことでPythonからStanが呼べるようになる。 Stanは、ハミルトニアンモンテカルロ(HMC)とメトロポリス・ヘイスティングス(MH)の合わせ技で、従来のMHアルゴリズムによるMCMCより効率的なサ…

カルマンスムージング(KS)

前回は、カルマンフィルターをやったので、今回はスムージング(平滑化)をやろうと思う。カルマンフィルタ - WHAT' CHA GONNA DO FOR ME?モデルは前回と同様、下記のシンプルなモデルとする。パラメータも同じ値をセットした。前回は明示的に書かなかったが…

カルマンフィルタ(KF)

ある時系列データが観測値として得られているとして、これらの時系列データがどのようにして生成されているか、その仕組みに興味があるとする。 ただ、いま手元にあるのは観測値として得られた時系列データだけなので、その背後にある仕組みについては何かし…

pandasで日次リターンを月次リターンに変換する②

日次リターンを月次リターンに変換する技、第2弾。今回もこちらのありがたい本で紹介されている方法を踏襲する。Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理作者: Wes McKinney,小林儀匡,鈴木宏尚,瀬戸山雅人,滝口開資,野上大介出版社/メ…

pandasで日次リターンを月次リターンに変換する①

日次リターンを月次リターンに変換したいときがそれなりにある。 pandasを使えば、これも簡単にできる。pandas開発者が自ら執筆したこちらのありがたい本によると、Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理作者: Wes McKinney,小林儀匡…

pandasで累積リターンを計算

前回は株価から直接累積リターンを計算したが、pandasで株価を取得 - WHAT' CHA GONNA DO FOR ME?実際によくあるのは、例えば日次や月次のリターンから、累積リターンを計算するケースだ。いま、stock_retという変数に日次リターンが既に入っているとして、 …

pandasで株価を取得

pandasの公式ドキュメント(Remote Data Access — pandas 0.15.2 documentation)によると、今のところ下記からデータをダウンロードすることが可能らしい。これは本当に便利。 Yahoo! Finance Google Finance St.Louis FED (FRED) Kenneth French’s data li…

pandasでFF+C4ファクターを作ってみた②

これのちょっとした続き。pandasでFF+C4ファクターを作ってみた - WHAT' CHA GONNA DO FOR ME?pandasのscatter_matrixを使うと、列のヒストグラムや分布、列間の散布図がまとめて出せると聞いたのでやってみる。 4ファクターを作るところまでは前回と一緒な…

pandasでFF+C4ファクターを作ってみた

pandasでFF3ファクターが取れたので、ここにモメンタムファクターを加えて、Carhartの4ファクターを作ってみたという話。 モメンタムファクターについては以下の通り。MOM:過去1年間(直近1ヶ月は除く)の勝ち組株をロング、負け組株をショートしたロングシ…

pandasでFama-Frenchの3ファクターを取ってみた

pandasで、Franch教授のデータライブラリーからデータがインポートできるときいたので、実際にやってみた。ファイナンスでは、Fama-Frenchの3ファクターという有名なファクターがある。 それぞれのファクターのざっくりとした説明はこちら。Mkt-RF:リスクフ…

OLS④

OLSシリーズ第4弾。 OLSは本当に重要なのでしつこくやる。今回は、scipyのstats.linregressを使う。いつも通り下記の回帰式を推定する。コードは以下の通り。 # -*- coding: utf-8 -*- import numpy as np from scipy import stats #サンプリング数 N=1000 #…

Pythonのstatsmodels.OLSとRのlmの対数尤度が合わない件

対数尤度が合わないとAICやBICといった値も必然的に合わなくなると思われるので、けっこう困った話になる。 今回はずれるという事象だけをメモしておく。気が向いたらなぜずれるのかを検証してみるかもしれない。回帰式は例によってこれ。Pythonで作ったデー…

OLS③

OLS攻めシリーズ第3弾。 今回は、numpyのlinalg.lstsqを使う。回帰式は例によってこれで、コードはこんな感じ。 # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import seaborn as sns import statsmodels.api as sm #サンプ…

OLS②

引き続き、エコノメ最強の技OLSをPythonで。今回はpandasのols関数を使って、前回と同じ下記の簡単な回帰式を推定する。 # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import seaborn as sns import statsmodels.api as sm …

OLS①

エコノメ最終奥義、OLSをPythonでやる。 PythonにはOLS用の関数が色々あるようなので何回かに分けて書きたい。今回はstatsmodelsのOLSを使って、下記のような簡単な回帰式を推定したい。データは乱数から自分で作り、推定されたパラメータが、事前に決めたパ…

Pythonの相関係数

Pythonの相関係数の挙動が予想と違っていたので、忘れないようにメモ。確認のため、コレスキー分解を用いて相関を持つ多変量正規乱数を発生させ、相関係数を計算させる。相関係数の計算には、NumPyのcorrcoefか、pandasのデータフレームのcorr()が使えるが、…

重点サンプリング

Pythonに慣れることを目的として、まずは比較的簡単なところからやっていきたい。ということで、重点サンプリングをまずはやる。以下のコードにより、一様分布を提案分布として、重点サンプリングにてt分布が得られる。PythonやRには任意の自由度のt分布から…

ブログ始めました

Pythonとか統計とか機械学習について勉強をかねて書きたい。 Rやファイナンスについても書くかもしれない。