方法(その1):homebrewでbrew install gccを実行する(かなり前にgfortranはgccに統合された)
方法(その2):CRANに行き、"Download R for (Mac) OS X"をクリック、"tools"をクリック、そこにある"gfortran-4.2.3.pkg"をインストールする
Rでxlsxを読み書きする
以下のサイトが非常に分かりやすかったです。
R で openxlsx パッケージを用いて xlsx ファイルを扱う - Qiita
http://qiita.com/zero310/items/71b6e5bc0731680d19df
Rで解析:セル体裁!大きなデータも大丈夫!エクセル操作の「openxlsx」パッケージ
http://www.karada-good.net/analyticsr/r-338
マイナス金利に関するまとめ(2016/09/23初稿、09/26修正)
以下、自分用の覚書:
概況:
- 2016年9月23日現在、「超過準備に対するマイナス金利(negative interest rate on excess reserves)」を実施しているのは日銀(BOJ)、デンマーク国立銀行(DNK)、欧州中央銀行(ECB)、スウェーデン中央銀行(Riksbank)、スイス国立銀行(SNB)、ハンガリー国立銀行の6行である(各国の中銀の順番は順不同)。
以下、「超過準備に対するマイナス金利」をマイナス金利政策と呼ぶ。
日本語によるまとめ:
- 日銀レビュー:欧州におけるマイナス金利政策と短期金融市場の動向
https://www.boj.or.jp/research/wps_rev/rev_2016/rev16j02.htm/
英語によるまとめ:
- Negative interest rates: Central bank reserves and liquidity management(ノルウェー中央銀行エコノミストによるまとめ)
http://www.norges-bank.no/en/Published/Papers/Economic-commentaries/2015/Aktuell-kommentar-22015/
ただし、この文書は2015年当時のもの(日銀のマイナス金利政策は反映されていない)
日銀:
- (DNKの)譲渡性預金(Certificates of deposit rate)にマイナス0.65%
Official interest rates http://www.nationalbanken.dk/en/marketinfo/official_interestrates/Pages/default.aspx
- 預金ファシリティ金利にマイナス0.40%
Key interest rates https://www.ecb.europa.eu/stats/monetary/rates/html/index.en.html
- レポレートにマイナス0.5%
Repo rate, table | Sveriges Riksbank http://www.riksbank.se/en/Interest-and-exchange-rates/Repo-rate-table/
- SNBのターゲット・レンジが「マイナス1.25%からマイナス0.25%」の間。3-month LIBOR CHFがマイナス0.75%
Swiss National Bank (SNB) - Current interest rates and exchange rates http://www.snb.ch/en/iabout/stat/statpub/zidea/id/current_interest_exchange_rates
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
Emacsでjulia-mode
ESS (Emacs Speaks Statistics) にはすでにjulia-modeが入っているはずなのですが、OS Xでうまく動かないので、しょうがなくJulia-lang公式のjulia-mode.elを入れてみました。
- Julia-lang公式のgithubから julia-mode.el をダウンロード(ページの「RAW」をクリックしてローカル[たとえば~/bin/julia]に保存)
- ~/.emacsに以下のように記述
(add-to-list 'load-path "~/bin/julia")
(require 'julia-mode)
ESS (Emacs Speaks Statistics) をgitからインストール
- cd ~/bin/
- git clone https://github.com/emacs-ess/ESS.git
- cd ess
- make
- ~/.emacsに以下のように記述*1
(add-to-list 'load-path "~/bin/ess/lisp")
(load "ess-site")
OS X 10.9とMatlab R2016aでgfortranを使う
(1)OS X 10.9 (Mavericks)にgfortranをインストール
- Xcodeをインストール:App Storeの検索窓に"xcode"と入力して、xcodeを探して、インストールする
- Xcode 6.1以降ではcommand-line toolsがプレインストールされるようになった模様 [参考] Mac での Xcode コマンド ライン ツールのインストール
- gccをダウンロード:"High Performance Computing for Mac OS X" http://hpc.sourceforge.net/ からgcc-4.9-bin.tar.gzをダウンロード*1
- gccを解凍:ターミナルでsudo tar -zxvf gcc-4.9-bin.tar.gz -C / と入力*2
(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)