Skip to content

uncorrelated/KSQME

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

経済セミナー連載の「定量的マクロ経済学と数値計算」のサポート・リポジトリーにR用のコードが部分的にしか用意されていなかったので、ちょっと書いてみたものです。

実行方法はgit cloneなどをしてファイルを展開した後に、Rに読み込ませるだけです。例えば、第3節の離散化による2期間モデルの解法は、two-period model discretized method.Rを以下のように読み込ませて計算します。

source("two-period model discretized method.R")

getwd()で確認できるワーキングディレクトリにtwo-period model discretized method.Rが無いと呼び出せないので注意してください。また、他のファイルやパッケージに依存しているファイルもあります。ファイルはすべて展開し、ソースコード中のコメントやエラーメッセージに応じてパッケージをインストールしてください。

第2回 2期間モデルと数値計算の概観

第3回 動的計画法

第4回 オイラー方程式と多項式近似

第5回 ニューケインジアン・モデルの新展開

第6回 異質な個人を組み込んだマクロモデル

第6回の処理はこれまでと比較してかなり重たい上に、Dynamic Programmingであるためか、元のMatlabのソースコードがベクトルや行列演算の形に直すのは困難に思えるものだったので、RからCで書かれた関数の拡張を呼び出すことにより、処理の高速化が行えるオプションを用意しました。LinuxやMacOSでは、以下のようにCのソースコードをコンパイルした後に、Rのソースコード中で指定するオプションr_c_mp_switchを変更することで、数十倍の高速化が図れます。

R CMD SHLIB aiyagari_vfi1.c
R CMD SHLIB aiyagari_vfi2.c

Rtoolsをインストールし、環境変数のPATHに"インストール先/usr/bin"を追加すれば、MS-Windowsでも同様にdllを作成でき、実行できます。

図4のプロットでは、これもオプションとして、さらにマルチコア対応となっています。Cの拡張とマルチコアを利用することで、純粋なRのコードと比較してかなりの処理時間の短縮が可能になります。手元の古めの計算機では70〜140倍といった差異になりました。

第7回 世代重複マクロモデル

第8回 定量的マクロ経済学のフロンティア

Krusell and Smith (1998)モデルは、部分的にCを使ったコードのみとなります。UNIX/Linux環境では添付のMakefileで、Cのソースコードのコンパイルができます。Windowsでは、

R CMD SHLIB KnS1998.c cubic_spline.c linear_interpolation.c which.c

としてください。なお、LinuxやMacOS Xでは$HOME/.R/Makevarsに、MS-Windowsでは%HOME%/.R/Makevars.winと言うテキストファイルの中のCFLAGSの行に-fopenmpオプションを追加すると、コンパイル時にOpenMPが有効になって、高速に実行が可能になります。

なお、プロットは計算結果を保存したファイルを用いるので、先に計算しないとエラーとなります。

HANKモデル(McKay, Nakamura and Steinsson (2016))は、部分的にRcpp/RcppPararell/Eigen/Spectraを使ったパッケージを用いたコードのみとなります。EigenとSpectraのテンプレートライブラリをインストールし、CH8/MNS2016/src/MakevarsPKG_CXXFLAGSの行に-ISpectraインストール先を追加した後、CH8ディレクトリで、

R CMD INSTALL MNS2016

とパッケージをインストールすることでC++部分のセットアップができ、McKay, Nakamura and Steinsson (2016).RをRから呼び出して実行可能になります。まだ冗長な部分はあるのですが、手元の計算機ではJulia版の3倍以上の高速化になりました。

About

Keizai Seminar Quantitative Macroeconomics

Resources

Stars

Watchers

Forks