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

アメリカの金利変動を主成分分析してみた

FRBのサイトからアメリカの金利の期間構造が取得できることをたまたま発見したので、よく言われるように金利の変動が「パラレル」「ツイスト」「バタフライ」の三要因で大半が説明できているのかを実際に主成分分析して見てみた。データはData Download Prog…

Visual C++ 2010 からR.dll中にある関数を呼ぶ

R C++

RをwindowsにインストールするとbinフォルダにR.dll等のDLLが一緒にインストールされる。 この中にはRで使われている関数が入っているようで、これをMicrosoft Visual Studio C++ 2010から呼んでみた。呼び出し方法は通常DLLを動的にロードするのとまったく…

Scipy Cookbookの粒子フィルタ・パーティクルフィルタ・粒子モンテカルロ・モンテカルロフィルタ(別名あり過ぎだろ…)のサンプルを写経してみた

Scipyにあるcookbookの粒子フィルタの実装を主にpythonのリハビリを兼ねて行った。基本になっているのはCookbook / ParticleFilterのコード。 どうも上のサイトのコードをそのまま動かそうとすると「物体を追跡してるぞ!」感がなくなるのでうまくアニメーシ…

Microsoft Visual C++ 2010 Express EditionでExcelから呼び出せるDLLを作る

C++

すぐ忘れそうなので超丁寧にメモ。 VC++を起動後、「ファイル」→「新規作成」→「プロジェクト」と選択 「Win32 プロジェクト」を選択して適当に名前を付けて保存。ここでは名前、ソリューション名共に”dll_vba”とした。 「次へ」を押下して、「DLL」を選択し…

data.frameのデータをSQLを使って抽出する方法

R

Rのdata.frame型データは通常 #1〜5個目のレコードを抽出 iris[1:5,] #Species列の値が"setosa"であるものだけ抽出 subset(iris ,Species=="setosa") のような形で元のデータフレームの部分集合として抽出するわけですが、どうもこの書き方が苦手。 そして…

「第1回 Japan.R 午後の部」の金融系セッション(資料&プログラム)

R

第1回 Japan.R 午後の部で金融系セクションを設けていただいて話した。 当日使った資料 PDF版が欲しいという奇特な方はコチラ(PDF)から落として下さい。以下、上記資料を作成するために使用したコード。 パッケージは適当にinstall.packages()関数でインスト…

One-Factor Gaussian Copulaモデルでデフォルト相関を計算してみた

R

CDOのプライシングに使われる(ていた?)One-Factor Gaussian Copulaモデルを使ってデフォルト相関を計算。 具体的にはThe One-Factor Gaussian Copula Applied To CDOs: Just Say NO (Or, If You See A Correlation Smile, She Is Laughing At Your “Resul…

NtRandが素晴らしすぎてそれにインスパイアされた僕はVBAでクレイトン・コピュラ(clayton copula)を作ってみた

VBA

NtRandはニューメリカルテクノロジー社さんが作られてフリーで公開されているExcel用乱数生成関数アドインです。 公式サイトはコチラ。 これでもうVBAの質の悪い一様乱数生成器Rnd()関数を使うのやめようね!まずは http://www.ntrand.com/jp/download/ から…

4行で書くブラウン運動のパス

R

Rだとサクっとかけるという話。実質1行。 N <- 10 T <- 100 path <- apply(matrix(rnorm(N*T),nrow=T,ncol=N),2,cumsum) matplot(path,type="l",ylab="Value",xlab="Time") 実行すると な感じで図が出力。path変数には各経路の軌跡がはいってる。 くそう、p…

乱数生成のためのコレスキー分解・固有値が負になる相関行列の対処法について

R

コレスキー分解を使用するときに行列を転置するかしないかとか、行列積の順番を忘れて紙で計算しなおすということをしたあげく 毎回似たようなコードを書いていたのであほくさいなーと思ったり、それで乱数作ろうとしたときに 相関行列の固有値が負になって…

俺のためのサーバー設定−2

LAMP環境を構築したのでブログも導入してみた。 入れるのはWord Pressという奴。 前回同様、UbuntuにWordPressをインストールの方のBLOGがわかりやすいのでマネる。シェルからmysql立ち上げる $ mysql -u root -p Enter password: Welcome to the MySQL moni…

俺のためのサーバー設定−1

タイトルにあるように基本俺用。VPSをレンタルしたのでそのへんいじったところをまとめる。サーバーはUbuntu10.04。 ちなみにこういうサーバー云々に関してはど素人です、はい。まずシェルがdashとかわけわかんない奴になってて使いにくいのでbashへ変更。 $…

マルコフ連鎖モンテカルロ法入門-2

前回「マルコフ連鎖モンテカルロ法入門-1」として作成した資料の続きとして「連続モデル(連続確率分布)をマルコフ連鎖モンテカルロ法で作る方法、熱浴法・メトロポリスヘイスティング法とは何か」を解説した資料を作成した。 前回のよりも内容が難しいので…

xtsへのコンバート

R

※xtsの使い方自体はxtsライブラリを使ってみるー1、xtsライブラリを使ってみるー2参照のことcsvファイルに金融時系列データを保存する場合、「1列目:日時、2列目以降:資産価格」のようなフォーマットが多い(Excel脳) このようなデータをRで扱う場合…

RでGUIアプリっぽく関数計算できる物を超簡単に作る

R

fguiというパッケージを使うとRでGUIアプリっぽく関数計算できる物を超簡単に作れる。 以下のコードを実行すると・・・ install.packages("fgui") library(fgui) #実行すると・・・・ gui(function(x){sum(x)}) のようなGUIアプリが起動するので、Xに適当に…

xtsライブラリを使ってみる−2

R

その1はこちら「xtsライブラリを使ってみるー1」マニュアルを読み込んで大体(私が)使いそうな関数をその1の記事と合わせて以下のサンプルで網羅した感じ。 特にlag関数の挙動が大事。 library(xts) #前回同様、サンプル行列で試す data(sample_matrix) …

xtsライブラリを使ってみる−1

R

(その2はコチラ) 先日、R勉強会に参加させていただいたときに 「時系列のデータ構造を扱う際にはxtsパッケージが便利なのではないか?」 というアドバイスをいただいたので使ってみる。まずはマニュアルのほぼ写経コード library(xts) data(sample_matrix…

マルコフ連鎖モンテカルロ法入門−1

ネット上で見かけるマルコフ連鎖モンテカルロ法資料はどうも小難しいので、 マルコフ連鎖モンテカルロ法は全然難しくないということを伝えるべく平易に解説した資料を作ってみた。2状態離散モデルの解説を中心に、メトロポリス法の解説までを行った。 余裕…

数値の頭に0を詰めて桁を揃える

R

数値を文字列に変換する時、頭に0を詰めたい時がある。たとえば >x <- 1:10 >x [1] 1 2 3 4 5 6 7 8 9 10 とベクトルを定義した時に "00","01","02","03","04","05","06","07","08,"09","10" みたいに文字列として出力したいケース。この時はformatC関数を…

ベクトルの一定範囲に関数を適用しながら逐次計算していく(ローリング処理)

R

ある一定期間のリスク・リターン計算をする時など、 ベクトルの一定範囲に関数を適用しながら逐次計算していく処理(ローリング処理)をすることが多いので、関数にしておく。 apply.roll <- function(x,size.window,func){ result <- numeric(length(x) - s…

RでReduce

R

Rでもpythonと同じようにreduce関数があるようだ。 試しにベクトルの要素の和を出してみると >Reduce(function(x,y)x+y,c(1,2,3,4,5)) [1] 15 とちゃんと動作する。

RPy2でpythonからRを呼び出して計算(基本〜線形回帰まで)

インストール〜基本操作〜線形回帰まで。まずはaptでインストール。 sudo aptitude install python2.6-rpy2ubuntu便利。パッケージのインポート&rに対するインターフェイスオブジェクトを生成。 基本的にこのオブジェクトを介してRを操る。 import rpy2.rob…

コレスキー分解をする関数

pythonで正値対称行列をコレスキー分解する関数。 例にあるように、リストのリストで行列を作成して使用する。 def cholesky_decomposition(matrix): size = len(matrix) result = [[0.0 for x in xrange(size)] for x in xrange(size)] for i in xrange(siz…

第6回R勉強会@東京(Tokyo.R#06)で発表してきた

「Rで学ぶ金融工学入門〜現代ポートフォリオ理論偏〜」というタイトルで発表してきた。 以下、その資料Tokyo.R(#06)View more presentations from teramonagi.以下、ソースコード quadprog,RFinanceYJのインストールが必要。 library(quadprog) library(RFin…

dvipdfmxでIPAフォントを埋め込んだPDFファイルを作成する(ubuntu10.04)

まずはフォントのインストール sudo apt-get install ttf-ipafontそれからこのフォントへのシンボリックリンクを張る。 sudo mkdir /usr/share/texmf-texlive/fonts/truetype sudo ln -s /usr/share/fonts/truetype/ipafont/ipam.ttf /usr/share/texmf-texli…

ポートフォリオウェイトの全組み合わせを返す関数

投資可能領域を描画する時等、ポートフォリオウェイトの可能な全ての組み合わせのが欲しい場合があるのでそれを返す関数を作成した。 combination.constantsum <- function(num,val.step,val.current=1) { if(num==1){ return(val.current) } result <- NULL…

tex(UTF-8)をEUC-JPにコンバートして、そのままPDFにするスクリプト

どうもlinux上のtexはeuc-jpで文字コード処理されるらしく、 UbuntuのデフォルトであるUTF-8ではうまく処理されない。 いちいち文字コードを変換するのが面倒くさいので以下のようなpython scriptを書いた。 #!/usr/bin/env python #-*- coding:utf-8 -*- #y…

XMLパッケージのインストール

R

ubuntu linux上で install.packages("XML")として、RのXMLパッケージをインストールしようとしたら、 * installing *source* package ‘XML’ ... checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C…

Vasicek Modelで短期金利パスを発生させる

R

http://www.amazon.com/dp/0387004513/のP110をそのまま実装。 #create short rate path by one factor stationary Vasicek model #alpha:緩和時間の逆数 #b:回帰水準 #dt:時間刻み幅 #endTime:終了時間 #initialRate:初期時点での金利 StationaryVasicek …

パッケージがどこにインストールされているのかを確認する

R

パッケージがどこにインストールされているのかわからなくて困った。 そういう時は.libPaths()を実行すればOK。 > .libPaths() [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" [3] "/usr/lib/R/library"