ハリ・セルダンになりたくて

便利なエントリーへのリンク
矢野の講義サイトへのリンク集

2016-09-23

[] マイナス金利に関するまとめ(2016/09/23初稿、09/26修正)

以下、自分用の覚書:

概況:

  • 2016年9月23日現在、「超過準備に対するマイナス金利(negative interest rate on excess reserves)」を実施しているのは日銀(BOJ)、デンマーク国立銀行(DNK)、欧州中央銀行(ECB)、スウェーデン中央銀行(Riksbank)、スイス国立銀行(SNB)、ハンガリー国立銀行の6行である(各国の中銀の順番は順不同)。

以下、「超過準備に対するマイナス金利」をマイナス金利政策と呼ぶ。

日本語によるまとめ:

英語によるまとめ:

日銀:

  • 日銀当座預金の政策金利残高にマイナス0.1%

デンマーク国立銀行:

欧州中央銀行:

スウェーデン中央銀行:

スイス国立銀行:

ハンガリー国立銀行:

トラックバック - http://d.hatena.ne.jp/koiti_yano/20160923

2016-08-22

[][] GNU Rで月次データを四半期に集約する

時系列解析で月次データを四半期に集約する(3ヶ月の合計や平均を計算する)ことはよくある。以下はstats, zoo, xtsを使った場合。

まず準備:

# 2010年1月から12月までの月次データを生成する

rm(list=ls())

dataLength <- 12

set.seed(1) # to make it reproducible

data1 <- rnorm(dataLength)

statsのtsオブジェクトに対してstatsのaggregateを使う場合:

dataMonthTs <- ts(data1, start=c(2010,1), frequency=12)

dataQuartTs <- aggregate(dataMonthTs, nfrequency = 4, FUN = sum)

dataQuartTs

以上のやり方はzooもxtsもなかった10年以上前にはよく使われていた。ただし、最近は以下のようにzooやxtsを使うほうが一般的かもしれない。

zooオブジェクトに対してzooのaggregateを使う場合:

library(zoo)

dateZoo <- seq(as.Date("2010-01-01"), as.Date("2010-12-01"), by = "month")

dataMonthZoo <- zoo(data1, dateZoo)

dataQuartZoo <- aggregate(dataMonthZoo, as.yearqtr, sum)

dataQuartZoo

zooオブジェクトに対してxtsのapply.quarterlyを使う場合:

library(xts)

dataQuartXts <- apply.quarterly(dataMonthZoo, sum)

dataQuartXts

# ただし、四半期の日付が2010-03-01 2010-06-01等となって日付がふさわしくない。

# たとえば、以下のようにして日付2010-01-01 2010-04-01等と直す。

time(dataQuartZoo) <- as.Date(as.yearqtr(time(dataQuartZoo)))

dataQuartZoo

#それ以外だとto.quarterlyを使う方法も考えられる。

その他にもRmetricsのtimeSeriesの関数を使うなどのやり方もあると思います。よりエレガントなやり方があったらコメントで教えて下さい。

[参考]
R - Set the first month of each quarter as the index after applying apply.quarterly() - Stack Overflow
http://stackoverflow.com/questions/19352828/set-the-first-month-of-each-quarter-as-the-index-after-applying-apply-quarterly

Kobe.R: Kobe.R #10 xts 時系列の簡単操作
http://kobexr.blogspot.jp/2014/10/kober-10-xts.html

トラックバック - http://d.hatena.ne.jp/koiti_yano/20160822

2016-03-27

[][] ESS (Emacs Speaks Statistics) をgitからインストール

  1. cd ~/bin/
  2. git clone https://github.com/emacs-ess/ESS.git
  3. cd ess
  4. make
  5. ~/.emacsに以下のように記述*1

(add-to-list 'load-path "~/bin/ess/lisp")

(load "ess-site")

以上でemacs上でM-RでRを起動できるようになる*2

[][] Emacsでjulia-mode

ESS (Emacs Speaks Statistics) にはすでにjulia-modeが入っているはずなのですが、OS Xでうまく動かないので、しょうがなくJulia-lang公式のjulia-mode.elを入れてみました。

  1. Julia-lang公式のgithubから julia-mode.el をダウンロード(ページの「RAW」をクリックしてローカル[たとえば~/bin/julia]に保存)
  2. ~/.emacsに以下のように記述

(add-to-list 'load-path "~/bin/julia")

(require 'julia-mode)

*1:~/.emacs.d/init.elに書いておくのが現在の正しいお作法かもしれません。でも矢野がemacs使い始めた25年前にはそんな便利な仕組みはなかったので、今でも~/.emacsを使っています・・・

*2:OS Xの場合:makeでwgetを使う必要があるので、homebrewの場合はbrew install wgetしておくこと。

トラックバック - http://d.hatena.ne.jp/koiti_yano/20160327

2016-03-08

[] OS X 10.9とMatlab R2016aでgfortranを使う

(1)OS X 10.9 (Mavericks)にgfortranをインストール

  1. Xcodeをインストール:App Storeの検索窓に"xcode"と入力して、xcodeを探して、インストールする
  2. Xcode 6.1以降ではcommand-line toolsがプレインストールされるようになった模様 [参考] Mac での Xcode コマンド ライン ツールのインストール
  3. gccをダウンロード:"High Performance Computing for Mac OS X" http://hpc.sourceforge.net/ からgcc-4.9-bin.tar.gzをダウンロード*1
  4. gccを解凍:ターミナルでsudo tar -zxvf gcc-4.9-bin.tar.gz -C / と入力*2

[Ref] http://hpc.sourceforge.net/

(2)Matlab R2016aでgfortranを使う

次にOS X 10.9 (Mavericks)上のMatlab r2016aでgfortranを使うには/usr/local/binへのパスを設定する必要があるため、start.mなどに以下のように書いておく。

setenv('PATH', [getenv('PATH') ':/usr/local/bin']);

[Ref] http://www.mathworks.co.jp/matlabcentral/answers/116922-mex-cannot-find-gfortran-compiler-mac-os

最後にgfortranが設定されているか確認する。

mex -setup FORTRAN

(3)Matlab R2016aでFortranコードを確認

/Applications/MATLAB_R2014a.app/extern/examples/refbookからサンプルコードをコピーしてmexを確認する。

[コード例1]

mex timestwo.F

(コンパイルが無事に終了)

x = 99;

y = timestwo(x)

[Ref] http://www.mathworks.co.jp/jp/help/matlab/matlab_external/passing-a-scalar_btgcf9p-1.html

[コード例2]

mex matsq.F

(コンパイルが無事に終了)

x = [1 2 3; 4 5 6];

y = matsq(x)

[Ref] http://www.mathworks.co.jp/jp/help/matlab/matlab_external/passing-matrices.html

[コード例3]

mex sincall.F fill.F

(コンパイルが無事に終了)

sincall

[Ref] http://www.mathworks.co.jp/jp/help/matlab/matlab_external/calling-functions-from-fortran-mex-files.html

[コード例4]

mex yprimef.F yprimefg.F

(コンパイルが無事に終了)

yprimef(1, 1:4)

*1:Mathworksの公式サイトには「Intel Fortran Composer XEのみサポート」と書いてあるが、簡単なコードはgcc-4.9でも動く模様(今後要確認)

*2:gccやgfortranがインストールされるのは/usr/local配下

トラックバック - http://d.hatena.ne.jp/koiti_yano/20160308

2015-12-02

[] Stateでダミー変数の作り方(の一例)

たとえばこんな感じ(詳しいことは出典参照)

gen year1=1 if year==2011

replace year1=0 if year1 == .

[出典] http://www.stata.com/support/faqs/data-management/creating-dummy-variables/

トラックバック - http://d.hatena.ne.jp/koiti_yano/20151202

2015-11-02

[][] varsでのベクトル自己回帰の結果をxtableでLaTeXに出力する

変数それぞれに対して係数の推定結果を出力することは可能*1。たとえばこんな感じ:

require(vars)

data(Canada)

var.canada <- VAR(Canada, p = 2, type = "none")

summary(var.canada)

ここまではvarsの機能。Canadaはe, prod, rw, Uの4変数からなるデータセット。たとえばUに関する回帰式の推定結果をLaTeXのtable形式に出力するにはxtableを使って以下のように行う。

require(xtable)

xtable(summary(var.canada$varresult$U))

*1:一度に全部の式を出力する方法があったら教えて下さい。

トラックバック - http://d.hatena.ne.jp/koiti_yano/20151102

2015-08-07

[][][] install.packagesでCRANを指定する

optionsコマンドでreposを指定する。

options(repos="http://cran.ism.ac.jp/")

トラックバック - http://d.hatena.ne.jp/koiti_yano/20150807