├── .DS_Store ├── LICENSE ├── README.md ├── ch1 ├── FqReport1.xlsx ├── Solow.R ├── Solowemp.R └── figures1.R ├── ch2 ├── .Rapp.history ├── Ramsey.R ├── figures2.R └── figures2appendix.R ├── ch3 └── Ramsey_tax.R ├── ch4 ├── FqReport4.csv ├── FqReport4.xlsx ├── RBC.R ├── bcycle.R └── figures4.R ├── ch5 ├── CIA.R ├── NK.R ├── NK_linear.R ├── cia_mss.csv ├── cia_techs.csv ├── figures5.R ├── nkm_mps.csv └── nkm_techs.csv ├── ch6 ├── RBC_BK.R ├── RBC_PolIter_Chebyshev.R ├── Ramsey_PolIter_Chebyshev.R └── figures6.R ├── ch7 ├── NK_commit.R ├── NK_discretion.R ├── figures7.R ├── nkm_commit.csv └── nkm_discretion.csv ├── ch8 ├── dataplot.R ├── dset_fig.csv └── figures8.R ├── ch8_dynare ├── FqReport8.csv ├── FqReport8.xlsx ├── NK_Linear_EST.mod ├── coda.R ├── main.m ├── script_dataset.m └── util_csvwrite.m ├── dynare ├── NK_det.mod ├── NK_linear_det.mod ├── NK_linear_stoch.mod ├── RBC_det.mod ├── RBC_linear_det.mod ├── RBC_linear_stoch.mod ├── RBC_stoch.mod ├── Ramsey_tax1.mod └── Ramsey_tax2.mod └── use_dynare.pdf /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhasumi/dynamicmodels/6f4698e0d39f6495827b5fe1448991e6a3c0921b/.DS_Store -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Ryo Hasumi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 『動学マクロ経済学へのいざない』(日本評論社、2020年)プログラム 2 | 3 | 作成者:蓮見 亮 4 | 5 | サポートページは[こちら](https://rhasumi.github.io/pages/dynamicmodels/)(https://rhasumi.github.io/pages/dynamicmodels/) 6 | -------------------------------------------------------------------------------- /ch1/FqReport1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhasumi/dynamicmodels/6f4698e0d39f6495827b5fe1448991e6a3c0921b/ch1/FqReport1.xlsx -------------------------------------------------------------------------------- /ch1/Solow.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 1, Solow model 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | #-------------------- 11 | # ソローモデル 12 | #-------------------- 13 | 14 | alpha <- 0.30 15 | delta <- 0.1 16 | s <- 0.2 17 | g <- 0.02 18 | n <- -0.01 19 | 20 | fz1 <- function(k) s*k^alpha 21 | fz2 <- function(k) (g + n + delta)*k 22 | dk <- function(k) (s*k^alpha-(g + n + delta)*k)/(1+g)/(1+n) 23 | 24 | ks <- (s/(g+n+delta))^(1/(1-alpha)) 25 | 26 | kk <- seq(0,10,length = 201) 27 | 28 | par(ps = 15) 29 | par(mai = c(0.85, 0.85, 0.35, 0.35)) 30 | plot(cbind(kk, fz1(kk)), typ = "l", xlim = c(0, 5.7), ylim = c(0,0.6), 31 | xlab = expression(k[t]), ylab = expression(z)) 32 | lines(cbind(kk, fz2(kk))) 33 | abline(v = ks, lty = 2) 34 | abline(h = 0) 35 | 36 | text(1, 0.26, labels = expression(paste("z = s ",k[t]^alpha))) 37 | text(4.8, 0.42 , labels = expression(paste("z = ",(g+n+delta)," ", k[t]))) 38 | text(2.9, 0.5, labels = expression(paste(k[t]," = ","k*"))) 39 | 40 | axis(side=1, labels = expression(k[1]), at = ks*.5) 41 | 42 | k1 <- ks*.5 43 | segments(k1, 0, ks*.5, fz2(k1), lty = 2) 44 | arrows(k1, fz2(k1),k1, fz1(k1),length = 0.1,col=4,lwd = 2) 45 | arrows(k1, fz1(k1),k1+(fz1(k1)-fz2(k1))*6 ,fz1(k1),length = 0.1,col=4,lty=2,lwd = 2) 46 | 47 | dev.copy2eps(file= figpath %+% "solow1.eps") 48 | 49 | #----------------------------- 50 | 51 | ka <- ks*.5 52 | dka <- NA 53 | for(i in 2:110) { 54 | dka[i] <- dk(ka[i-1]) 55 | ka[i] <- ka[i-1] + dka[i] 56 | } 57 | 58 | par(ps = 17.5) 59 | par(mfrow = c(2, 1)) 60 | par(mai = c(0.85*0.5, 0.68*0.75, 0.68*0.75, 0.5)*1.1) 61 | plot(ka, xlim = c(0, 100), xlab = "", main = expression(k[t]), ylab = "", typ = "l") 62 | abline(h = k1, lty = 2, col = 2) 63 | axis(side=4, labels = expression(k[1]), at = k1, las = 2) 64 | axis(side=4, labels = expression("k*"), at = ks, las = 2) 65 | 66 | plot(dka, xlim = c(0, 100), xlab = "", main = expression(paste(Delta, k[t])), ylab = "", typ = "l") 67 | 68 | dev.copy2eps(file= figpath %+% "solow1a.eps") 69 | 70 | #----------------------------- 71 | 72 | k2 <- ks*2 73 | kb <- k2 74 | dkb <- NA 75 | for(i in 2:110) { 76 | dkb[i] <- dk(kb[i-1]) 77 | kb[i] <- kb[i-1] + dkb[i] 78 | } 79 | 80 | plot(kb, xlim = c(0, 100), xlab = "", main = expression(k[t]), ylab = "", typ = "l") 81 | abline(h = k2, lty = 2, col = 2) 82 | axis(side=4, labels = expression(k[1]), at = k2, las = 2) 83 | axis(side=4, labels = expression("k*"), at = ks, las = 2) 84 | 85 | plot(dkb, xlim = c(0, 100), xlab = "", main = expression(paste(Delta, k[t])), ylab = "", typ = "l") 86 | 87 | dev.copy2eps(file= figpath %+% "solow1b.eps") 88 | 89 | #----------------------------- 90 | 91 | 92 | fs <- function(s) (s^(alpha/(1-alpha))-s^(1/(1-alpha)))/(g+n+delta)^(alpha/(1-alpha)) 93 | 94 | par(ps = 15) 95 | par(mai = c(0.85, 0.85, 0.35, 0.35)) 96 | par(mfrow = c(1, 1)) 97 | curve(fs,0,1,ylim=c(0, 1.5), xlab = "s", ylab = expression("c*")) 98 | abline(h = 0, v = 0) 99 | 100 | cg <- fs(alpha) 101 | lines(cbind(c(0,1),c(cg,cg)),lty = 2) 102 | 103 | points(alpha,cg, pch=19) 104 | text(alpha+0.075,cg+0.075, labels = expression(paste("(",s[g],", ",c[g],")"))) 105 | 106 | text(0.8, 0.65, labels = expression("c* = f(s)")) 107 | text(0.85, 1.0, labels = expression(paste("c* = f(",s[g],")"))) 108 | 109 | dev.copy2eps(file= figpath %+% "solow2.eps") 110 | 111 | #----------------------------- 112 | 113 | fct <- function(k, s) (1-s)*k^alpha/(1+g)/(1+n) 114 | fks <- function(s) (s/(g+n+delta))^(1/(1-alpha)) 115 | dks <- function(k, s) (s*k^alpha-(g + n + delta)*k)/(1+g)/(1+n) 116 | 117 | sA0 <- 0.2 118 | sA1 <- alpha 119 | 120 | ktA <- fks(sA0) 121 | ctA <- fct(ktA[1], sA0) 122 | 123 | for(i in 2:120) 124 | ktA[i] <- ktA[i-1] + dks(ktA[i-1], sA1) 125 | 126 | ctA[2:120] <- fct(ktA[-1], sA1) 127 | 128 | 129 | par(ps = 17.5) 130 | par(mfrow = c(2, 1)) 131 | par(mai = c(0.85*0.5, 0.68*0.75, 0.68*0.75, 0.5)*1.1) 132 | plot(ctA, xlim = c(0, 100), xlab = "", main = expression(c[t]), ylab = "", typ = "l") 133 | axis(side=4, labels = expression(c[0]), at = ctA[1], las = 2) 134 | 135 | plot(ktA, xlim = c(0, 100), xlab = "", main = expression(k[t]), ylab = "", typ = "l") 136 | axis(side=4, labels = expression(k[0]), at = ktA[1], las = 2) 137 | 138 | dev.copy2eps(file= figpath %+% "solcaseA.eps") 139 | 140 | #----------------------------- 141 | 142 | sB0 <- alpha 143 | sB1 <- 0.4 144 | 145 | ktB <- fks(sB0) 146 | ctB <- fct(ktB[1], sB0) 147 | 148 | for(i in 2:120) 149 | ktB[i] <- ktB[i-1] + dks(ktB[i-1], sB1) 150 | 151 | ctB[2:120] <- fct(ktB[-1], sB1) 152 | 153 | plot(ctB, xlim = c(0, 100), xlab = "", main = expression(c[t]), ylab = "", typ = "l") 154 | axis(side=4, labels = expression(c[0]), at = ctB[1], las = 2) 155 | 156 | plot(ktB, xlim = c(0, 100), xlab = "", main = expression(k[t]), ylab = "", typ = "l") 157 | axis(side=4, labels = expression(k[0]), at = ktB[1], las = 2) 158 | 159 | dev.copy2eps(file= figpath %+% "solcaseB.eps") 160 | 161 | #----------------------------- 162 | 163 | sC0 <- 0.4 164 | sC1 <- alpha 165 | 166 | ktC <- fks(sC0) 167 | ctC <- fct(ktC[1], sC0) 168 | 169 | for(i in 2:120) 170 | ktC[i] <- ktC[i-1] + dks(ktC[i-1], sC1) 171 | 172 | ctC[2:120] <- fct(ktC[-1], sC1) 173 | 174 | plot(ctC, xlim = c(0, 100), xlab = "", main = expression(c[t]), ylab = "", typ = "l") 175 | axis(side=4, labels = expression(c[0]), at = ctC[1], las = 2) 176 | 177 | plot(ktC, xlim = c(0, 100), xlab = "", main = expression(k[t]), ylab = "", typ = "l") 178 | axis(side=4, labels = expression(k[0]), at = ktC[1], las = 2) 179 | 180 | 181 | dev.copy2eps(file= figpath %+% "solcaseC.eps") 182 | 183 | -------------------------------------------------------------------------------- /ch1/Solowemp.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 1, Empirical analysis 3 | # modified on 2019/10/23 4 | #======================================= 5 | 6 | library(xlsx) 7 | 8 | dset <- read.xlsx("FqReport1.xlsx", 1) 9 | 10 | "%+%" <- function(x, y) paste(x, y, sep = "") 11 | # figpath <- "../../figs/" 12 | figpath <- "./" 13 | 14 | library(xtable) 15 | 16 | #--------------------------------------- 17 | 18 | alpha <- 1-mean(c((dset$YWH/dset$GDP11NCY)[5:14],(dset$YWH11N/dset$GDP11NCY)[15:39])) 19 | 20 | #yset <- seq(7,32,5) 21 | yset <- seq(9,39,5) 22 | 23 | lndy <- log(dset$GDP11CY[yset]/dset$GDP11CY[yset-5])/5*100 24 | lndk <- log(dset$KITFA11[yset-1]/dset$KITFA11[yset-1-5])/5*100 25 | lndl <- log(dset$L[yset]/dset$L[yset-5])/5*100 26 | 27 | contk <- alpha*lndk 28 | contl <- (1-alpha)*lndl 29 | conta <- lndy-contk-contl 30 | 31 | rslt1 <- cbind(lndy, contk, conta, contl) 32 | colnames(rslt1) <- c("GDP成長率", "資本の寄与度", "生産性の寄与度","労働の寄与度") 33 | rownames(rslt1) <- c("1984-1988","1989-1993","1994-1998","1999-2003","2004-2008","2009-2013","2014-2018") 34 | 35 | xtable(rslt1) 36 | 37 | #print(rslt1) 38 | 39 | #--------------------------------------- 40 | 41 | s0 <- (dset$I11NCY/dset$GDP11NCY) 42 | s <- mean(s0[30:39]) 43 | 44 | delta0 <- c() 45 | for(i in 10:39) 46 | delta0[i] <- (dset$I11CY[i] - (dset$KITFA11[i]-dset$KITFA11[i-1]))/dset$KITFA11[i-1] 47 | 48 | delta <- mean(delta0[10:39]) 49 | 50 | nexo <- log(dset$L[39]/dset$L[29])/10 51 | gexo <- mean(conta[6:7])/(1-alpha)*0.01 52 | 53 | c(alpha, delta, gexo, nexo, s) 54 | 55 | kstar <- (s/(gexo+nexo+delta))^(1/(1-alpha)) 56 | 57 | tmax <- 150 58 | 59 | Y0 <- dset$GDP11CY[39] 60 | K0 <- dset$KITFA11[38] 61 | L0 <- dset$L[39] 62 | A0 <- (Y0/K0^alpha)^(1/(1-alpha))/L0 63 | 64 | A <- c(1, cumprod(rep(1+gexo, tmax-1)))*A0 65 | L <- c(1, cumprod(rep(1+nexo, tmax-1)))*L0 66 | 67 | Yest <- K0^alpha*(A[1]*L[1])^(1-alpha) 68 | Kest <- dset$KITFA11[39] 69 | 70 | for( i in 2:tmax) { 71 | Yest[i] <- Kest[i-1]^alpha*(A[i]*L[i])^(1-alpha) 72 | Kest[i] <- (1-delta)*Kest[i-1] + s*Yest[i] 73 | } 74 | 75 | yplot <- 2018:2167 76 | yplot1 <- yplot-2017 77 | 78 | Ystar <- kstar^alpha*A*L 79 | kest <- c(K0, Kest[-tmax])/A/L 80 | 81 | 82 | if (.Platform$OS.type == "windows") windows(10, 5) 83 | par(mfrow = c(1,2)) 84 | par(ps = 15) 85 | par(mai = c(0.85, 0.68*0.75, 0.68*0.75, 0.35*1.5)*1) 86 | plot(cbind(yplot,Yest[yplot1]/10^3), typ ="l", xlab = "Year", main = expression(Y[t]), xlim = range(yplot), ylim = range(Ystar/1000), log="y") 87 | lines(cbind(yplot,Ystar[yplot1]/10^3), lty = 2) 88 | axis(side=1, labels = 2018, at = 2018,las = 1) 89 | 90 | 91 | plot(cbind(yplot,kest[yplot1]), typ ="l", ylim = range(kest), xlab = "Year", main = expression(k[t]), xlim = range(yplot)) 92 | lines(cbind(yplot,kstar), lty = 2) 93 | axis(side=1, labels = 2018, at = 2018,las = 1) 94 | axis(side=4, labels = expression("k*"), at = kstar,las = 2) 95 | 96 | dev.copy2eps(file= figpath %+% "solforecast1.eps") 97 | dev.off() 98 | 99 | -------------------------------------------------------------------------------- /ch1/figures1.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 1, Other figures 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | #-------------------- 11 | # 指数関数、対数関数 12 | #-------------------- 13 | 14 | par(ps = 20) 15 | par(mai = c(0.85, 0.88, 0.35, 0.35)) 16 | curve(exp, -3, 3) 17 | dev.copy2eps(file= figpath %+% "exp.eps") 18 | 19 | curve(log, -0, 6, ylab = "ln(x)") 20 | dev.copy2eps(file= figpath %+% "log.eps") 21 | 22 | #-------------------- 23 | # 自然対数の意味 24 | #-------------------- 25 | yt <- cumprod(c(1, rep(1.05, 100)))*100 26 | plot(cbind(0:40, yt[1:41]), typ = "l", xlab = "t", ylab = expression(Y[t])) 27 | dev.copy2eps(file= figpath %+% "exln1.eps") 28 | 29 | plot(cbind(0:40, log(yt[1:41])), typ = "l", xlab = "t", ylab = expression(paste(paste("ln(", Y[t]), ")"))) 30 | dev.copy2eps(file= figpath %+% "exln2.eps") 31 | 32 | #-------------------- 33 | # 生産関数 34 | #-------------------- 35 | par(ps = 20) 36 | fk <- function(K) K^0.3 37 | curve(fk, 0, 3, xlab = "K", ylab = "f(K)") 38 | dev.copy2eps(file= figpath %+% "fk1.eps") 39 | dev.copy2pdf(file= figpath %+% "fk1.pdf") 40 | 41 | curve(fk, 0, 3, xlab = "K", ylab = "f(K)") 42 | points(cbind(c(1,1.5,2),fk(c(1,1.5,2))), pch=19) 43 | 44 | #-------------------- 45 | # 微分の意味 46 | #-------------------- 47 | b1 <- fk(2)-1 48 | b2 <- (fk(1.5)-1)/0.5 49 | # b3 <- (fk(1.1)-1)/0.1 50 | b4 <- 0.3 51 | 52 | abline(1-b1, b1, lty = 2, col = 4) 53 | abline(1-b2, b2, lty = 3, col = 4) 54 | abline(1-b4, b4, col = 4) 55 | 56 | legend(1.7, 0.3, legend = c("傾き = 0.23 ","傾き = 0.26" ,"傾き = 0.3 "), lty = c(2,3,1), col = c(4,4,4)) 57 | dev.copy2eps(file= figpath %+% "fk2.eps", family="Japan1GothicBBB") 58 | dev.copy2pdf(file= figpath %+% "fk2.pdf", family="Japan1GothicBBB") 59 | 60 | 61 | par(ps = 15) 62 | fr <- function(r) log(1+r) 63 | curve(fr, -1, 2, xlab = "r", ylab = "y") 64 | abline(0, 1, lty = 1, col = 4) 65 | 66 | text(-0.5, -2.5, "y = ln(1+r)") 67 | text(-0.75, -0.5, "y = r") 68 | 69 | dev.copy2eps(file= figpath %+% "ln1r.eps") 70 | 71 | -------------------------------------------------------------------------------- /ch2/Ramsey.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 2, Ramsey model 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | library(nleqslv) 11 | 12 | #---------------------------------------- 13 | 14 | alpha <- 0.3 15 | beta <- 0.99 16 | delta <- 0.25 17 | At <- 1.0 18 | 19 | #---------------------------------------- 20 | 21 | Kt <- ((1/beta+delta-1)/alpha/At)^(1/(alpha-1)) 22 | FCt <- function(K) At*K^alpha - delta*K 23 | Kmax <- (delta/At)^(1/(alpha-1)) 24 | 25 | if (.Platform$OS.type == "windows") windows(7, 7) 26 | par(ps = 15) 27 | par(mai = c(0.85, 0.85, 0.35, 0.35)) 28 | curve(FCt, 0, Kmax, ylim = c(0, 1), xlab = expression(K), ylab = expression(C)) 29 | abline(h = 0) 30 | 31 | lines(cbind(c(Kt, Kt),c(0, 100))) 32 | points(Kt,FCt(Kt), pch=19) 33 | 34 | text(4, 0.4, expression(paste(Delta,K[t]," = 0",sep=""))) 35 | text(2, 0.95, expression(paste(Delta,C[t]," = 0",sep=""))) 36 | 37 | axis(1, labels = c(expression(K[max])), at = Kmax) 38 | segments(Kmax, -1, Kmax, 0, lty = 2) 39 | 40 | dev.copy2eps(file= figpath %+% "dcdk.eps") 41 | 42 | #---------------------------------------- 43 | 44 | Kss <- ((1/beta+delta-1)/alpha/At)^(1/(alpha-1)) 45 | Css <- At*Kss^alpha - delta*Kss 46 | 47 | objfun0 <- function(X, maxT, X0, Xss = Css) { 48 | 49 | XX <- matrix(X, maxT, 2) 50 | C <- c(XX[, 1], Xss) 51 | K <- c(X0, XX[, 2]) 52 | 53 | ret <- matrix(NA, maxT, 2) 54 | for(t in 1:maxT) { 55 | ret[t, 1] <- C[t+1]/C[t]-beta*(alpha*At*K[t+1]^(alpha-1)-delta+1) 56 | ret[t, 2] <- K[t+1]-At*K[t]^alpha-(1-delta)*K[t]+C[t] 57 | } 58 | return(c(ret)) 59 | } 60 | 61 | maxT <- 30 62 | Xinit <- c(rep(Css,maxT), rep(Kss,maxT)) 63 | 64 | #-------------------- 65 | # シミュレーション1 66 | #-------------------- 67 | 68 | K01 <- Kss*0.5 69 | objfun1 <- function(X) objfun0(X, maxT, K01) 70 | rslt1 <- nleqslv(Xinit, objfun1) 71 | 72 | rslt1x <- matrix(rslt1$x, maxT, 2) 73 | 74 | Ct1 <- c(rslt1x[, 1], Css) 75 | Kt1 <- c(K01, rslt1x[, 2]) 76 | 77 | #-------------------- 78 | # シミュレーション2 79 | #-------------------- 80 | 81 | K02 <- Kss*2 82 | objfun2 <- function(X) objfun0(X, maxT, K02) 83 | rslt2 <- nleqslv(Xinit, objfun2) 84 | 85 | rslt2x <- matrix(rslt2$x, maxT, 2) 86 | 87 | Ct2 <- c(rslt2x[, 1], Css) 88 | Kt2 <- c(K02, rslt2x[, 2]) 89 | 90 | #-------------------- 91 | # 作図 92 | #-------------------- 93 | 94 | par(ps = 15) 95 | par(mai = c(0.85*0.75, 0.68*0.75, 0.68*0.75, 0.35*0.75)) 96 | par(mfrow = c(2,1)) 97 | plot(cbind(1:(maxT+1), Ct1), typ = "l", main = expression(C[t]), xlab = "", ylab = "") 98 | plot(cbind(1:(maxT+1), Kt1), typ = "l", main = expression(K[t]), xlab = "", ylab = "") 99 | 100 | dev.copy2eps(file= figpath %+% "ramck.eps") 101 | 102 | par(ps = 15) 103 | par(mai = c(0.85, 0.85, 0.35, 0.35)) 104 | par(mfrow = c(1,1)) 105 | curve(FCt, 0, 3, ylim = c(0.5, 1.1), xlab = expression(K[t]), ylab = expression(C[t])) 106 | abline(h = 0) 107 | lines(cbind(c(Kt, Kt),c(0, 100))) 108 | points(Kt,FCt(Kt), pch=19) 109 | 110 | for(i in 1:12){ 111 | arrows(Kt1[i], Ct1[i], Kt1[i+1], Ct1[i+1], length = 0.1) 112 | arrows(Kt2[i], Ct2[i], Kt2[i+1], Ct2[i+1], length = 0.1) 113 | } 114 | for(i in 13:(maxT-1)){ 115 | segments(Kt1[i], Ct1[i], Kt1[i+1], Ct1[i+1]) 116 | segments(Kt2[i], Ct2[i], Kt2[i+1], Ct2[i+1]) 117 | } 118 | 119 | dev.copy2eps(file= figpath %+% "dcdk2.eps") 120 | 121 | -------------------------------------------------------------------------------- /ch2/figures2.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 2, Other figures 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | #-------------------- 11 | # 効用関数 12 | #-------------------- 13 | U <- function(a, b) sqrt(a*b) 14 | Ub <- function(a, U) U^2/a 15 | 16 | feasible <- c() 17 | amax <- 6 18 | bmax <- 12 19 | budgit <- 600 20 | pa <- 100 21 | pb <- 50 22 | for (a in 0:amax) 23 | for(b in 0:bmax) 24 | if (a*pa + b*pb <= budgit) 25 | feasible <- rbind(feasible, c(a,b)) 26 | 27 | par(ps = 15) 28 | plot(feasible, xlab = "a", ylab = "b", xlim = c(0,bmax), ylim = c(0,bmax), pch = 20) 29 | 30 | dev.copy2eps(file= figpath %+% "feasible1.eps") 31 | 32 | Ub1 <- function(a) Ub(a, U(4, 4)) 33 | curve(Ub1,0,10, xlab = "a", ylab = "b", xlim = c(0,bmax), ylim = c(0,bmax)) 34 | points(feasible, pch = 20) 35 | 36 | text(4.3, 4.3, labels = "C") 37 | text(2.3, 8.3, labels = "D") 38 | text(3.3, 6.3, labels = "E") 39 | 40 | dev.copy2eps(file= figpath %+% "feasible2.eps") 41 | 42 | par(ps = 20) 43 | par(mai = c(0.85, 0.88, 0.35, 0.35)) 44 | funsqx <- function(x) sqrt(x) 45 | par(ps = 20, mai = c(0.85, 0.9, 0.68, 0.35)) 46 | curve(funsqx, 0, 6, main = "", ylab = expression(sqrt(x))) 47 | dev.copy2eps(file= figpath %+% "sqrtx.eps") 48 | 49 | funx2 <- function(x) x^2 50 | par(ps = 20, mai = c(0.85, 1.0, 0.68, 0.35)) 51 | curve(funx2, -3, 3, main = "", ylab = expression(x^2)) 52 | dev.copy2eps(file= figpath %+% "x2.eps") 53 | 54 | #-------------------- 55 | # 効用最大化 56 | #-------------------- 57 | 58 | U1 <- function(a, b, U) exp(U-log(a)) 59 | U2 <- function(a, b) U1(a, b, log(125/4)) 60 | 61 | par(ps = 15) 62 | par(mai = c(0.85, 0.85, 0.2, 0.2)) 63 | curve(U2, 0, 15, xlim=c(0,13),ylim=c(0,13),xlab = "a", ylab = "b") 64 | lines(cbind(c(0, 0),c(0,100))) 65 | lines(cbind(c(0, 100),c(0,0))) 66 | lines(cbind(c(10, 0),c(0,12.5))) 67 | 68 | points(5,6.25, pch=19) 69 | text(7.5,6.25, "(a = 5, b = 6.25)") 70 | 71 | text(5, 12, "ln(a) + ln(b) = U*") 72 | #text(10, 4, "U* = ln(a) + ln(b)") 73 | text(11, 1.9, "100a + 80b = 1000") 74 | 75 | dev.copy2eps(file= figpath %+% "util1.eps") 76 | 77 | -------------------------------------------------------------------------------- /ch2/figures2appendix.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 2, Figures of appendix 3 | # modified on 2020/7/28 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | beta <- 0.99 11 | alpha <- 0.3 12 | delta <- 0.25 13 | 14 | Kss <- ((1/beta+delta-1)/alpha)^(1/(alpha-1)) 15 | Css <- Kss^alpha - delta*Kss 16 | 17 | U <- function (C) log(C) 18 | g <- function (K, C) K^alpha + (1-delta)*K - C 19 | 20 | y <- 0 21 | for(i in 0:200) 22 | y <- y + beta^i * U(Css) 23 | 24 | #--------------------------------------- 25 | # チェビシェフ近似補間(1次) 26 | #--------------------------------------- 27 | 28 | library(nleqslv) # nleqslv 29 | 30 | xj <- function(n = 10){ 31 | -cos(0.5*(2*(1:n)-1)*pi/n) 32 | } 33 | 34 | trans0 <- function(x, a = -1, b = 1) { 35 | y <- (x-a)/(b-a)*2-1 36 | y 37 | } 38 | 39 | trans <- function(x, a = -1, b = 1) { 40 | y <- (x-a)/(b-a)*2-1 41 | y[which(y < -1)] <- -1 42 | y[which(y > 1)] <- 1 43 | y 44 | } 45 | 46 | rev <- function(y, a = -1, b = 1) (y+1)*(b-a)*0.5+a 47 | 48 | fn <- function(x, cc, nt){ 49 | size <- length(x) 50 | Tk <- matrix(1, size[1], 1) 51 | Tk <- cbind(Tk, x) 52 | for (k in 2:(nt-1)) 53 | Tk <- cbind(Tk, 2*x*Tk[, k]-Tk[, k-1]) 54 | Tk %*% cc 55 | } 56 | 57 | cheb <- function(x, coef, a, b, n) { 58 | fn(trans(matrix(x, 1), a, b), coef, n) 59 | } 60 | 61 | #--------------------------------------- 62 | # Policy Iteration 63 | #--------------------------------------- 64 | 65 | nt <- 40 66 | at <- 0.05 67 | bt <- 4.0 68 | 69 | node <- rev(xj(nt), at[1], bt[1]) 70 | apxfun <- function(x, coef) fn(trans(x, at, bt), coef, nt) 71 | 72 | niter <- 1000 73 | eps <- 0.0001 74 | 75 | # initialization 76 | f <- function (x) -45 + sqrt(x) 77 | cc <- rep(0, nt) 78 | v <- rep(0, nt) 79 | coef <- rep(0, nt) 80 | coef2 <- rep(0, nt) 81 | 82 | for(iter in 1:niter) { 83 | print(iter) 84 | v1 <- c(v) 85 | c1 <- c(cc) 86 | coef1 <- coef 87 | 88 | for(i in 1:nt) { 89 | obj <- function(ct) { 90 | st <- node[i] 91 | sa <- matrix(g(st,ct), 1) 92 | return(-U(ct)-beta*f(sa)) 93 | } 94 | opt <- optimize(obj, c(0.001, min((1 - delta) *node[i]+node[i]^alpha,bt*0.99))) 95 | cc[i] <- opt$minimum 96 | } 97 | fobj1 <- function(coef) cc - apxfun(node, coef) 98 | coef1 <- nleqslv(coef1, fobj1)$x 99 | hc <- function(x) cheb(x, coef1, at, bt, nt) 100 | 101 | for(i in 1:nt) { 102 | st <- node[i] 103 | ct <- max(min(hc(st), st), 0.001) 104 | y <- U(ct) 105 | for(k in 1:1000) { 106 | st <- g(st, ct) 107 | ct <- max(min(hc(st), st), 0.001) 108 | y <- y + beta^k * U(ct) 109 | } 110 | v[i] <- y 111 | } 112 | if (identical(abs(c(cc) - c1) < eps ,rep(T, nt))) break 113 | 114 | fobj2 <- function(coef) v - apxfun(node, coef) 115 | coef2 <- nleqslv(coef2, fobj2)$x 116 | f <- function(x) cheb(x, coef2, at, bt, nt) 117 | 118 | plot(cbind(node, v), typ = "l") 119 | print(abs(c(cc) - c1)) 120 | } 121 | 122 | #-------------------- 123 | # シミュレーション 124 | #-------------------- 125 | 126 | K01 <- Kss*0.5 127 | Kt1 <- K01 128 | Ct1 <- c() 129 | 130 | for(i in 1:31) { 131 | Ct1[i] <- hc(Kt1[i]) 132 | Kt1[i+1] <- g(Kt1[i], Ct1[i]) 133 | } 134 | 135 | K02 <- Kss*2 136 | Kt2 <- K02 137 | Ct2 <- c() 138 | for(i in 1:31) { 139 | Ct2[i] <- hc(Kt2[i]) 140 | Kt2[i+1] <- g(Kt2[i], Ct2[i]) 141 | } 142 | 143 | #-------------------- 144 | # 位相図の作図 145 | #-------------------- 146 | 147 | At <- 1 148 | Kss <- ((1/beta+delta-1)/alpha/At)^(1/(alpha-1)) 149 | FKt <- function(K) At*K^alpha + (1-delta)*K - Kss 150 | FCt <- function(K) At*K^alpha - delta*K 151 | 152 | maxT <- 31 153 | 154 | if (.Platform$OS.type == "windows") windows(7, 7) 155 | par(ps = 15) 156 | par(mai = c(0.85, 0.88, 0.35, 0.35)) 157 | par(mfrow = c(1,1)) 158 | #curve(FCt, 0, 3, ylim = c(0.3, 1.7), xlim = c(0.05, 2.5), xlab = expression(K[t]), ylab = expression(C[t]), main = "Phase Diagram",axes = F) 159 | curve(FCt, 0, 3, ylim = c(0.3, 1.225), xlim = c(0.05, 2.5), xlab = expression(K[t]), ylab = expression(C[t]), main = "",axes = F) 160 | abline(h = 0) 161 | #lines(cbind(c(Kss, Kss),c(0, 100))) 162 | 163 | lines(cbind(seq(0,3, 0.01),FKt(seq(0,3, 0.01)))) 164 | points(Kss,FCt(Kss), pch=19) 165 | 166 | axis(2) 167 | axis(1, labels = c(0:3), at = 0:3) 168 | abline(v = c(K01,K02), lty = 2) 169 | box() 170 | 171 | axis(1, labels = c(expression(K[1]^A)), at = K01) 172 | axis(1, labels = c(expression(K[1]^B)), at = K02) 173 | axis(1, labels = c(expression("K*")), at = Kss) 174 | 175 | for(i in 1:12){ 176 | arrows(Kt1[i], Ct1[i], Kt1[i+1], Ct1[i+1], length = 0.05) 177 | arrows(Kt2[i], Ct2[i], Kt2[i+1], Ct2[i+1], length = 0.05) 178 | } 179 | for(i in 13:(maxT-1)){ 180 | segments(Kt1[i], Ct1[i], Kt1[i+1], Ct1[i+1]) 181 | segments(Kt2[i], Ct2[i], Kt2[i+1], Ct2[i+1]) 182 | } 183 | 184 | 185 | FCa <- function(K, C) beta*(alpha*g(K,C)^(alpha-1)-delta+1)*C 186 | const <- 1.06 187 | 188 | Kt1a <- K01 189 | Ct1a <- hc(K01)*const 190 | for(i in 1:31) { 191 | Kt1a[i+1] <- g(Kt1a[i], Ct1a[i]) 192 | Ct1a[i+1] <- FCa(Kt1a[i], Ct1a[i]) 193 | } 194 | 195 | Kt1b <- K01 196 | Ct1b <- hc(K01)/const 197 | for(i in 1:31) { 198 | Kt1b[i+1] <- g(Kt1b[i], Ct1b[i]) 199 | Ct1b[i+1] <- FCa(Kt1b[i], Ct1b[i]) 200 | } 201 | 202 | Kt2a <- K02 203 | Ct2a <- hc(K02)*const 204 | for(i in 1:31) { 205 | Kt2a[i+1] <- g(Kt2a[i], Ct2a[i]) 206 | Ct2a[i+1] <- FCa(Kt2a[i], Ct2a[i]) 207 | } 208 | 209 | Kt2b <- K02 210 | Ct2b <- hc(K02)/const 211 | for(i in 1:31) { 212 | Kt2b[i+1] <- g(Kt2b[i], Ct2b[i]) 213 | Ct2b[i+1] <- FCa(Kt2b[i], Ct2b[i]) 214 | } 215 | 216 | for(i in 1:maxT){ 217 | if (!is.nan(Kt1a[i])) 218 | arrows(Kt1a[i], Ct1a[i], Kt1a[i+1], Ct1a[i+1], length = 0.05, col = 2, lty = 1) 219 | if (!is.nan(Kt1b[i])) 220 | arrows(Kt1b[i], Ct1b[i], Kt1b[i+1], Ct1b[i+1], length = 0.05, col = 4, lty = 1) 221 | if (!is.nan(Kt2a[i])) 222 | arrows(Kt2a[i], Ct2a[i], Kt2a[i+1], Ct2a[i+1], length = 0.05, col = 2, lty = 1) 223 | if (!is.nan(Kt2b[i])) 224 | arrows(Kt2b[i], Ct2b[i], Kt2b[i+1], Ct2b[i+1], length = 0.05, col = 4, lty = 1) 225 | } 226 | 227 | points(cbind(Kt1a[1], Ct1a[1]), pch = 15, col = 2) 228 | points(cbind(Kt1[1], Ct1[1]), pch = 4) 229 | points(cbind(Kt1b[1], Ct1b[1]), pch = 17, col = 4) 230 | 231 | points(cbind(Kt2a[1], Ct2a[1]), pch = 15, col = 2) 232 | points(cbind(Kt2[1], Ct2[1]), pch = 4) 233 | points(cbind(Kt2b[1], Ct2b[1]), pch = 17, col = 4) 234 | 235 | 236 | maxT2 <- 100 237 | 238 | Kt3a <- Kss-0.01 239 | Ct3a <- Css+0.01 240 | for(i in 1:maxT2) { 241 | Kt3a[i+1] <- g(Kt3a[i], Ct3a[i]) 242 | Ct3a[i+1] <- FCa(Kt3a[i], Ct3a[i]) 243 | } 244 | end <- min(which(is.nan(Ct3a))) 245 | #Kt3a[end] <- Kt1a[8]+0.04 246 | #Ct3a[end] <- 1.6 247 | 248 | Kt3b <- Kss+0.01 249 | Ct3b <- Css-0.01 250 | for(i in 1:maxT2) { 251 | Kt3b[i+1] <- g(Kt3b[i], Ct3b[i]) 252 | Ct3b[i+1] <- FCa(Kt3b[i], Ct3b[i]) 253 | } 254 | 255 | for(i in 1:maxT2){ 256 | if (!is.nan(Kt3a[i])) 257 | arrows(Kt3a[i], Ct3a[i], Kt3a[i+1], Ct3a[i+1], length = 0.05, col = 1, lty = 1) 258 | if (!is.nan(Kt3b[i])) 259 | arrows(Kt3b[i], Ct3b[i], Kt3b[i+1], Ct3b[i+1], length = 0.05, col = 1, lty = 1) 260 | } 261 | 262 | text(Kss, Css+0.05, "F") 263 | 264 | dev.copy2eps(file= figpath %+% "phase_ram_ck.eps") 265 | -------------------------------------------------------------------------------- /ch3/Ramsey_tax.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 3, Ramsey model with tax 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | library(nleqslv) 11 | 12 | #---------------------------------------- 13 | 14 | alpha <- 0.3 15 | beta <- 0.99 16 | delta <- 0.25 17 | At <- 1.0 18 | 19 | #---------------------------------------- 20 | 21 | #Kt <- function(tauk) ((1/beta+delta-1)/((1-tauk)*alpha*At))^(1/(alpha-1)) 22 | #FCt <- function(K, g) (1-g)*At*K^alpha - delta*K 23 | 24 | Kt <- function(tauk) ((1/beta+delta-1)/((1-tauk)*alpha*At))^(1/(alpha-1)) 25 | FCt <- function(K, g) At*K^alpha - delta*K - g 26 | 27 | #---------------------------------------- 28 | 29 | objfun0 <- function(X, Z, maxT, X0, Xss = Css) { 30 | 31 | XX <- matrix(X, maxT, 2) 32 | C <- c(XX[, 1], Xss) 33 | K <- c(X0, XX[, 2]) 34 | tauc <- Z[[1]] 35 | tauk <- Z[[2]] 36 | g <- Z[[3]] 37 | 38 | ret <- matrix(NA, maxT, 2) 39 | for(t in 1:maxT) { 40 | ret[t, 1] <- (1+tauc[t+1])*C[t+1]/(1+tauc[t])/C[t]-beta*((1-tauk[t+1])*alpha*At*K[t+1]^(alpha-1)-delta+1) 41 | ret[t, 2] <- K[t+1]-At*K[t]^alpha-(1-delta)*K[t]+C[t]+g[t] 42 | } 43 | return(c(ret)) 44 | } 45 | 46 | Kt0 <- Kt(0) 47 | FCt0 <- FCt(Kt0, 0.1) 48 | 49 | #---------------------------------------- 50 | 51 | #-------------------- 52 | # シミュレーション1 53 | #-------------------- 54 | 55 | maxT <- 30 56 | 57 | tauc1 <- rep(0, maxT+1) 58 | tauk1 <- rep(0, maxT+1) 59 | 60 | for(t in 10:(maxT+1)) 61 | tauc1[t] <- 0.1 62 | 63 | g <- rep(0.1, maxT+1) 64 | 65 | Z1 <- list(tauc1, tauk1, g) 66 | 67 | Kss0 <- Kt(tauk = tauk1[1]) 68 | Css0 <- FCt(Kss0, g = g[1]) 69 | Xinit1 <- c(rep(Css0,maxT), rep(Kss0,maxT)) 70 | 71 | Kss1 <- Kt(tauk = tauk1[maxT+1]) 72 | Css1 <- FCt(Kss1, g = g[maxT+1]) 73 | 74 | objfun1 <- function(X) objfun0(X, Z1, maxT, Kss0, Css1) 75 | rslt1 <- nleqslv(Xinit1, objfun1) 76 | rslt1x <- matrix(rslt1$x, maxT, 2) 77 | 78 | Ct1 <- c(Css0, rslt1x[, 1], Css1) 79 | Kt1 <- c(Kss0, Kss0, rslt1x[, 2]) 80 | 81 | par(ps = 15) 82 | par(mai = c(0.85*0.75, 0.68*0.75, 0.68*0.75, 0.35*0.75)) 83 | par(mfrow = c(2,1)) 84 | plot(cbind(0:(maxT+1), Ct1), typ = "l", main = expression(C[t]), xlab = "", ylab = "") 85 | segments(0, Css0, maxT+1, Css0, lty = 2, col = "blue") 86 | 87 | plot(cbind(0:(maxT+1), Kt1), typ = "l", main = expression(K[t]), xlab = "", ylab = "") 88 | segments(0, Kss0, maxT+1, Kss0, lty = 2, col = "blue") 89 | 90 | dev.copy2eps(file= figpath %+% "pubck1.eps") 91 | 92 | #-------------------- 93 | # シミュレーション2 94 | #-------------------- 95 | 96 | tauc2 <- rep(0, maxT+1) 97 | tauk2 <- rep(0, maxT+1) 98 | 99 | for(t in 10:(maxT+1)) 100 | tauk2[t] <- 0.1 101 | 102 | Z2 <- list(tauc2, tauk2, g) 103 | Xinit2 <- c(rep(Css0,maxT), rep(Kss0,maxT)) 104 | 105 | Kss2 <- Kt(tauk = tauk2[maxT+1]) 106 | Css2 <- FCt(Kss2, g = g[maxT+1]) 107 | 108 | objfun2 <- function(X) objfun0(X, Z2, maxT, Kss0, Css2) 109 | rslt2 <- nleqslv(Xinit2, objfun2) 110 | rslt2x <- matrix(rslt2$x, maxT, 2) 111 | 112 | Ct2 <- c(Css0, rslt2x[, 1], Css2) 113 | Kt2 <- c(Kss0, Kss0, rslt2x[, 2]) 114 | 115 | par(ps = 15) 116 | par(mai = c(0.85*0.75, 0.68*0.75, 0.68*0.75, 0.35*0.75)) 117 | par(mfrow = c(2,1)) 118 | plot(cbind(0:(maxT+1), Ct2), typ = "l", main = expression(C[t]), xlab = "", ylab = "") 119 | segments(0, Css0, maxT+1, Css0, lty = 2, col = "blue") 120 | 121 | plot(cbind(0:(maxT+1), Kt2), typ = "l", main = expression(K[t]), xlab = "", ylab = "") 122 | segments(0, Kss0, maxT+1, Kss0, lty = 2, col = "blue") 123 | 124 | dev.copy2eps(file= figpath %+% "pubck2.eps") 125 | 126 | -------------------------------------------------------------------------------- /ch4/FqReport4.csv: -------------------------------------------------------------------------------- 1 | ,GDPGAP,ROH 2 | 1980:1,-0.5,122.4 3 | 1980:2,-2.1,121.5 4 | 1980:3,-1,117.1 5 | 1980:4,0.1,115.3 6 | 1981:1,-0.1,114.2 7 | 1981:2,-0.1,113.1 8 | 1981:3,-0.6,113.5 9 | 1981:4,-1,114 10 | 1982:1,-0.6,112.6 11 | 1982:2,-0.8,110 12 | 1982:3,-1.4,110.1 13 | 1982:4,-0.9,108.3 14 | 1983:1,-1.3,109.1 15 | 1983:2,-1.4,110 16 | 1983:3,-1.1,112.5 17 | 1983:4,-1.3,115.3 18 | 1984:1,-1.2,117.4 19 | 1984:2,-0.3,118.3 20 | 1984:3,-0.6,117.8 21 | 1984:4,-1.2,119.4 22 | 1985:1,-1,118.5 23 | 1985:2,-0.1,118.8 24 | 1985:3,0.3,118.7 25 | 1985:4,0.8,117.6 26 | 1986:1,-0.4,116.2 27 | 1986:2,-1.1,113.9 28 | 1986:3,-1.6,112 29 | 1986:4,-1.5,110.2 30 | 1987:1,-2.4,111.7 31 | 1987:2,-1.7,110.6 32 | 1987:3,-1.1,113.2 33 | 1987:4,0.4,116.7 34 | 1988:1,0.9,118.7 35 | 1988:2,0.3,118.9 36 | 1988:3,1,120 37 | 1988:4,1.1,120.7 38 | 1989:1,2,122 39 | 1989:2,-0.1,123.2 40 | 1989:3,0.3,121.6 41 | 1989:4,2.2,121 42 | 1990:1,0.5,121.6 43 | 1990:2,2.2,123.3 44 | 1990:3,3.2,123.7 45 | 1990:4,2.2,124.4 46 | 1991:1,2.5,123.4 47 | 1991:2,2.6,121.6 48 | 1991:3,1.8,120.1 49 | 1991:4,1.9,117.7 50 | 1992:1,1.4,114.9 51 | 1992:2,0.8,112.1 52 | 1992:3,0.7,109.9 53 | 1992:4,-0.5,106.4 54 | 1993:1,-0.4,107.3 55 | 1993:2,-1.7,106.8 56 | 1993:3,-2.6,105.3 57 | 1993:4,-2.7,101.9 58 | 1994:1,-2,101.7 59 | 1994:2,-2.9,103.2 60 | 1994:3,-2.2,105.7 61 | 1994:4,-2.9,109 62 | 1995:1,-2.2,108.4 63 | 1995:2,-1.6,108.8 64 | 1995:3,-0.8,105.5 65 | 1995:4,-0.9,106.8 66 | 1996:1,-0.4,106.3 67 | 1996:2,0.4,106.8 68 | 1996:3,0.1,108.8 69 | 1996:4,1,110.7 70 | 1997:1,1,114.3 71 | 1997:2,0.1,113.6 72 | 1997:3,0,112.3 73 | 1997:4,-0.2,109.4 74 | 1998:1,-1.6,106.9 75 | 1998:2,-2.2,103.8 76 | 1998:3,-2.2,102.4 77 | 1998:4,-1.7,101.9 78 | 1999:1,-3.2,102.6 79 | 1999:2,-3,102 80 | 1999:3,-2.7,104.1 81 | 1999:4,-2.9,106 82 | 2000:1,-1.3,107 83 | 2000:2,-1.3,108.1 84 | 2000:3,-1.4,108.1 85 | 2000:4,-0.7,108 86 | 2001:1,-0.4,104.7 87 | 2001:2,-1.2,101.8 88 | 2001:3,-2.4,97.8 89 | 2001:4,-2.9,95.1 90 | 2002:1,-3,97.1 91 | 2002:2,-2.6,100.6 92 | 2002:3,-2.5,102.9 93 | 2002:4,-2.5,103.3 94 | 2003:1,-2.7,104 95 | 2003:2,-2.4,103.9 96 | 2003:3,-2.3,105.3 97 | 2003:4,-1.5,108.3 98 | 2004:1,-1,109.4 99 | 2004:2,-1.3,110.4 100 | 2004:3,-1,111 101 | 2004:4,-1.5,109.8 102 | 2005:1,-1.2,111.2 103 | 2005:2,-0.8,112.5 104 | 2005:3,-0.1,111.1 105 | 2005:4,-0.1,112.1 106 | 2006:1,-0.1,113.1 107 | 2006:2,0,114.5 108 | 2006:3,-0.3,115 109 | 2006:4,0.9,115.6 110 | 2007:1,1.5,114.5 111 | 2007:2,1.6,114.3 112 | 2007:3,1.1,116.2 113 | 2007:4,1.6,117.7 114 | 2008:1,1.9,117.8 115 | 2008:2,1.4,115 116 | 2008:3,0.2,110.3 117 | 2008:4,-2.2,97.8 118 | 2009:1,-6.9,71.8 119 | 2009:2,-5,79.7 120 | 2009:3,-4.9,86.4 121 | 2009:4,-3.6,93.4 122 | 2010:1,-2.9,98.3 123 | 2010:2,-1.7,98.7 124 | 2010:3,0,99.3 125 | 2010:4,-0.9,100.3 126 | 2011:1,-2.4,94.8 127 | 2011:2,-3.2,87.9 128 | 2011:3,-0.9,98 129 | 2011:4,-1.2,99.3 130 | 2012:1,-0.2,101.6 131 | 2012:2,-1.1,98.6 132 | 2012:3,-1.7,94.2 133 | 2012:4,-1.6,92.2 134 | 2013:1,-0.7,94.2 135 | 2013:2,-0.1,97.7 136 | 2013:3,0.6,100.4 137 | 2013:4,0.3,102 138 | 2014:1,1,105 139 | 2014:2,-1,103.1 140 | 2014:3,-1.2,101.4 141 | 2014:4,-0.9,101.6 142 | 2015:1,0.2,101.3 143 | 2015:2,0.2,99.8 144 | 2015:3,-0.1,99.4 145 | 2015:4,-0.8,99.2 146 | 2016:1,-0.3,98 147 | 2016:2,-0.5,96.9 148 | 2016:3,-0.5,98.6 149 | 2016:4,-0.6,100.4 150 | 2017:1,0,100.7 151 | 2017:2,0.3,102.8 152 | 2017:3,0.6,102.5 153 | 2017:4,0.7,103.8 154 | 2018:1,0.3,102.2 155 | 2018:2,0.6,103.3 156 | 2018:3,-0.3,101.9 157 | 2018:4,-0.1,104.7 158 | 2019:1,0.2,100.5 159 | ,, 160 | -------------------------------------------------------------------------------- /ch4/FqReport4.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhasumi/dynamicmodels/6f4698e0d39f6495827b5fe1448991e6a3c0921b/ch4/FqReport4.xlsx -------------------------------------------------------------------------------- /ch4/RBC.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 4, RBC model 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | library(nleqslv) 11 | 12 | #---------------------------------------- 13 | 14 | alpha <- 0.3 15 | beta <- 0.99 16 | delta <- 0.025 17 | mu <- 1.0 18 | gamma <- 1.0 19 | rho <- 0.9 20 | 21 | para <- list(alpha = alpha, beta = beta, delta = delta, mu = mu, gamma = gamma, rho = rho) 22 | 23 | #---------------------------------------- 24 | 25 | findss <- function(p, Astar = 1) { 26 | 27 | rstar <- 1/p$beta + p$delta - 1 28 | K_L <- (rstar/p$alpha/Astar)^(1/(p$alpha-1)) 29 | Y_L <- Astar*K_L^p$alpha 30 | C_L <- Y_L-p$delta*K_L 31 | 32 | wstar <- (1-p$alpha)*Astar*K_L^p$alpha 33 | Lstar <- (wstar/(p$gamma+1)/p$mu)^(1/(p$gamma+1))*C_L^(-1/(p$gamma+1)) 34 | Kstar <- K_L*Lstar 35 | Ystar <- Y_L*Lstar 36 | Cstar <- C_L*Lstar 37 | 38 | list(C = Cstar, L = Lstar, K = Kstar, Y = Ystar, w = wstar, r = rstar, A = Astar) 39 | } 40 | 41 | 42 | 43 | objfun0 <- function(X, maxT, X0, Xss, p = para) { 44 | 45 | nvar <- 7 46 | XX <- matrix(X, maxT, nvar) 47 | C <- c(XX[, 1], Xss$C) 48 | L <- c(XX[, 2], Xss$L) 49 | K <- c(X0$K , XX[, 3]) 50 | Y <- c(XX[, 4], Xss$Y) 51 | w <- c(XX[, 5], Xss$w) 52 | r <- c(XX[, 6], Xss$r) 53 | A <- c(X0$A , XX[, 7]) 54 | 55 | ret <- matrix(NA, maxT, nvar) 56 | for(t in 1:maxT) { 57 | ret[t, 1] <- -w[t]/C[t]+(p$gamma+1)*p$mu*L[t]^p$gamma 58 | ret[t, 2] <- -C[t+1]/C[t]+p$beta*(r[t+1]-p$delta+1) 59 | ret[t, 3] <- -Y[t] + A[t]*K[t]^p$alpha*L[t]^(1-p$alpha) 60 | ret[t, 4] <- -w[t] + (1-p$alpha)*A[t]*K[t]^p$alpha*L[t]^(-p$alpha) 61 | ret[t, 5] <- -r[t]+p$alpha*A[t]*K[t]^(p$alpha-1)*L[t]^(1-p$alpha) 62 | ret[t, 6] <- -K[t+1]+Y[t]+(1-p$delta)*K[t]-C[t] 63 | ret[t, 7] <- -log(A[t+1])+p$rho*log(A[t]) 64 | } 65 | return(c(ret)) 66 | } 67 | 68 | #---------------------------------------- 69 | 70 | ss <- findss(para) 71 | 72 | maxT <- 150 73 | Xinit <- c(rep(ss$C,maxT), rep(ss$L,maxT), rep(ss$K,maxT), rep(ss$Y,maxT), rep(ss$w,maxT), rep(ss$r,maxT), rep(ss$A,maxT)) 74 | 75 | K0 <- ss$K 76 | A0 <- 1.01 77 | X0 <- list(K = K0, A = A0) 78 | 79 | objfun1 <- function(X) objfun0(X, maxT, X0, Xss = ss) 80 | rslt1 <- nleqslv(Xinit, objfun1) 81 | 82 | rsltfun <- function(rslt, maxT, X0, Xss, p = para) { 83 | XX <- matrix(rslt$x, maxT, 7) 84 | C0 <- c(Xss$C, XX[, 1]) 85 | # K0 <- c(Xss$K, X0$K, XX[1:(maxT-1), 3]) 86 | Y0 <- c(Xss$Y, XX[, 4]) 87 | I0 <- Y0 - C0 88 | Iss <- Xss$Y - Xss$C 89 | 90 | sss <- 1-Xss$C/Xss$Y 91 | s <- I0/Y0 92 | 93 | C <- (c(Xss$C, XX[, 1])/Xss$C-1)*100 94 | L <- (c(Xss$L, XX[, 2])/Xss$L-1)*100 95 | K <- (c(Xss$K, X0$K, XX[1:(maxT-1), 3])/Xss$K-1)*100 96 | Y <- (c(Xss$Y, XX[, 4])/Xss$Y-1)*100 97 | w <- (c(Xss$w, XX[, 5])/Xss$w-1)*100 98 | r <- (c(Xss$r, XX[, 6])-Xss$r)*100 99 | A <- (c(Xss$A, X0$A, XX[1:(maxT-1), 7])/Xss$A-1)*100 100 | 101 | I <- (I0/Iss-1)*100 102 | list(C = C, L = L, K = K, Y = Y, w = w, r = r, A = A, I = I, s = s) 103 | } 104 | 105 | X1 <- rsltfun(rslt1, maxT, X0, ss) 106 | 107 | if (.Platform$OS.type == "windows") windows(7, 10) 108 | par(ps = 14) 109 | par(mfrow = c(4, 2)) 110 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 111 | 112 | plot(cbind(0:maxT, X1$A), xlim = c(0,50), typ = "l", main = expression(A[t]), xlab = "", ylab = "") 113 | abline(h = 0, lty = 2, col = grey(0.5)) 114 | 115 | plot(cbind(0:maxT, X1$Y), xlim = c(0,50), typ = "l", main = expression(Y[t]), xlab = "", ylab = "") 116 | abline(h = 0, lty = 2, col = grey(0.5)) 117 | 118 | plot(cbind(0:maxT, X1$C), xlim = c(0,50), typ = "l", main = expression(C[t]), xlab = "", ylab = "") 119 | abline(h = 0, lty = 2, col = grey(0.5)) 120 | 121 | plot(cbind(0:maxT, X1$K), xlim = c(0,50), typ = "l", main = expression(K[t]), xlab = "", ylab = "") 122 | abline(h = 0, lty = 2, col = grey(0.5)) 123 | 124 | plot(cbind(0:maxT, X1$L), xlim = c(0,50), typ = "l", main = expression(L[t]), xlab = "", ylab = "") 125 | abline(h = 0, lty = 2, col = grey(0.5)) 126 | 127 | plot(cbind(0:maxT, X1$I), xlim = c(0,50), typ = "l", main = expression(I[t]), xlab = "", ylab = "") 128 | abline(h = 0, lty = 2, col = grey(0.5)) 129 | 130 | plot(cbind(0:maxT, X1$w), xlim = c(0,50), typ = "l", main = expression(w[t]), xlab = "", ylab = "") 131 | abline(h = 0, lty = 2, col = grey(0.5)) 132 | 133 | plot(cbind(0:maxT, X1$r), xlim = c(0,50), typ = "l", main = expression(r[t]), xlab = "", ylab = "") 134 | abline(h = 0, lty = 2, col = grey(0.5)) 135 | 136 | dev.copy2eps(file= figpath %+% "rbc1.eps") 137 | 138 | if (.Platform$OS.type == "windows") windows(5*0.6, 3.55*0.6) 139 | par(ps = 10*15/14) 140 | par(mai = c(0.85, 0.8, 0.68, 0.35)*0.5) 141 | plot(cbind(0:maxT, X1$s), xlim = c(0,50), typ = "l", main = expression(s[t]), xlab = "", ylab = "") 142 | abline(h = 1-ss$C/ss$Y, lty = 2, col = grey(0.5)) 143 | 144 | dev.copy2eps(file= figpath %+% "rbc2s.eps") 145 | 146 | -------------------------------------------------------------------------------- /ch4/bcycle.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 4, Drawing data 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | dat <- read.csv("FqReport4.csv") 11 | 12 | # peak bottom 13 | # 1980Q1 1983Q1 14 | # 1985Q2 1986Q4 15 | # 1991Q1 1993Q4 16 | # 1997Q2 1999Q1 17 | # 2000Q4 2002Q3 18 | # 2008Q1 2009Q1 19 | # 2012Q1 2002Q4 20 | 21 | peak <- c(1980, 1985.25, 1991, 1997.25, 2000.75, 2008, 2012) 22 | bottom <- c(1983, 1986.75, 1993.75, 1999, 2002, 2009, 2012.75) 23 | 24 | cpeak0 <- c("1980Q1", "1985Q2", "1991Q1", "1997Q2", "2000Q4", "2008Q1", "2012Q1") 25 | cbottom0 <- c("1983Q1", "1986Q4", "1993Q4", "1999Q1", "2002Q1", "2009Q1", "2012Q4") 26 | 27 | cpeak <- c("80Q1", "85Q2", "91Q1", "97Q2", "2000Q4", "08Q1", "12Q1") 28 | cbottom <- c("83Q1", "86Q4", "93Q4", "99Q1", "02Q1", "09Q1", "12Q4") 29 | 30 | gap.ts <- ts(dat$GDPGAP, start = 1980, frequency = 4) 31 | roh.ts <- ts(dat$ROH, start = 1980, frequency = 4) 32 | 33 | #--------- 34 | 35 | if (.Platform$OS.type == "windows") windows(7, 4) 36 | par(ps = 13) 37 | par(mai = c(0.6, 0.85, 0.6, 0.35)) 38 | plot(gap.ts, main = "", ylab = "%", xlab = "") 39 | abline(v = bottom, lty = 2, col = grey(0.5)) 40 | abline(v = peak, col = grey(0.5)) 41 | 42 | par(ps = 13) 43 | axis(side=3, labels = cpeak, at = peak) 44 | 45 | dev.copy2eps(file= figpath %+% "gap.eps") 46 | 47 | #--------- 48 | 49 | par(ps = 13) 50 | plot(roh.ts, main = "", ylab = "2015 = 100", xlab = "") 51 | abline(v = bottom, lty = 2, col = grey(0.5)) 52 | abline(v = peak, col = grey(0.5)) 53 | 54 | par(ps = 13) 55 | axis(side=3, labels = cpeak, at = peak) 56 | 57 | dev.copy2eps(file= figpath %+% "roh.eps") 58 | 59 | -------------------------------------------------------------------------------- /ch4/figures4.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 4, Other figures 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | A0 <- 1.0 11 | A1 <- 1.01 12 | rhos <- c(0, 0.5, 0.9, 1.0) 13 | Len <- 100 14 | 15 | ar1 <- function(rho, A1, len) { 16 | a <- log(A1) 17 | for(i in 2:len) 18 | a[i] <- rho*a[i-1] 19 | exp(a) 20 | } 21 | 22 | ans1 <- c(A0, ar1(rhos[1], A1, Len)) 23 | ans2 <- c(A0, ar1(rhos[2], A1, Len)) 24 | ans3 <- c(A0, ar1(rhos[3], A1, Len)) 25 | ans4 <- c(A0, ar1(rhos[4], A1, Len)) 26 | 27 | if (.Platform$OS.type == "windows") windows(7, 7) 28 | par(mfrow = c(2,2)) 29 | par(ps = 15) 30 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 31 | 32 | plot(cbind(0:Len, ans1), xlim = c(-5, 50), typ = "l", xlab = "t", ylab = expression(A[t]), main = expression(paste(rho, " = 0"))) 33 | plot(cbind(0:Len, ans2), xlim = c(-5, 50), typ = "l", xlab = "t", ylab = expression(A[t]), main = expression(paste(rho, " = 0.5"))) 34 | plot(cbind(0:Len, ans3), xlim = c(-5, 50), typ = "l", xlab = "t", ylab = expression(A[t]), main = expression(paste(rho, " = 0.9"))) 35 | plot(cbind(0:Len, ans4), xlim = c(-5, 50), typ = "l", xlab = "t", ylab = expression(A[t]), main = expression(paste(rho, " = 1.0"))) 36 | 37 | dev.copy2eps(file= figpath %+% "rbcar.eps") 38 | 39 | -------------------------------------------------------------------------------- /ch5/CIA.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 5, CIA model 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | 8 | library(nleqslv) 9 | 10 | #---------------------------------------- 11 | 12 | beta <- 0.99 13 | mu <- 1.0 14 | gamma <- 5 #1.0 15 | rho_A <- 0.9 16 | #rho_zeta <- 0.9 17 | rho_zeta <- 0.7 18 | zeta_ss <- 0 19 | para <- list(beta = beta, mu = mu, gamma = gamma, rho_A = rho_A, rho_zeta = rho_zeta, zeta_ss = zeta_ss) 20 | 21 | #---------------------------------------- 22 | 23 | findss <- function(p, Astar = 1) { 24 | pistar <- p$zeta_ss 25 | istar <- (1-p$beta+p$zeta_ss)/p$beta 26 | Cstar <- (p$beta/p$mu/(p$gamma+1)/(1+p$zeta_ss))^(1/(p$gamma+1)) 27 | mstar <- (1+p$zeta_ss)*Cstar 28 | lamstar <- p$beta/(1+p$zeta_ss)/Cstar 29 | xistar <- (1+p$zeta_ss-p$beta)/(1+p$zeta_ss)/Cstar 30 | list(C = Cstar, ii = istar, A = Astar, pi = pistar, m = mstar, zeta = p$zeta_ss, lam = lamstar, xi = xistar) 31 | } 32 | 33 | objfun0 <- function(X, maxT, X0, Xss, p = para) { 34 | 35 | nvar <- 8 36 | XX <- matrix(X, maxT, nvar) 37 | C <- c(XX[, 1], Xss$C) 38 | ii <- c(XX[, 2], Xss$ii) 39 | A <- c(X0$A , XX[, 3]) 40 | pi <- c(XX[, 4], Xss$pi) 41 | m <- c(XX[, 5], Xss$m) 42 | zeta <- c(X0$zeta , XX[, 6]) 43 | lam <- c(XX[, 7], Xss$lam) 44 | xi <- c(XX[, 8], Xss$xi) 45 | 46 | ret <- matrix(NA, maxT, nvar) 47 | for(t in 1:maxT) { 48 | ret[t, 1] <- 1/C[t]- lam[t] - xi[t] 49 | ret[t, 2] <- A[t]*lam[t] - p$mu*(C[t]/A[t])^p$gamma*(p$gamma+1) 50 | if (t > 1) { 51 | ret[t, 3] <- -C[t] + m[t-1]/(1+pi[t]) 52 | ret[t, 4] <- -(1+pi[t])*m[t] + (1+zeta[t])*m[t-1] 53 | } else { 54 | ret[t, 3] <- -C[t] + X0$m/(1+pi[t]) 55 | ret[t, 4] <- -(1+pi[t])*m[t] + (1+zeta[t])*X0$m 56 | } 57 | ret[t, 5] <- p$beta*lam[t+1] + p$beta*xi[t+1] - (1+pi[t+1])*lam[t] 58 | ret[t, 6] <- p$beta*(ii[t]+1)*lam[t+1] - (1+pi[t+1])*lam[t] 59 | ret[t, 7] <- -log(A[t+1]) + p$rho_A*log(A[t]) 60 | ret[t, 8] <- -(zeta[t+1]-p$zeta_ss) + p$rho_zeta*(zeta[t]-p$zeta_ss) 61 | } 62 | return(c(ret)) 63 | } 64 | 65 | #---------------------------------------- 66 | 67 | ss <- findss(para) 68 | 69 | maxT <- 150 70 | Xinit <- c(rep(ss$C,maxT), rep(ss$ii,maxT), rep(ss$A,maxT), 71 | rep(ss$pi,maxT), rep(ss$m,maxT), rep(ss$zeta,maxT), rep(ss$lam,maxT), rep(ss$xi,maxT)) 72 | 73 | Ainit1 <- 1.01 74 | zetainit1 <- zeta_ss 75 | X0set1 <- list(A = Ainit1, zeta = zetainit1, m = ss$m) 76 | 77 | objfun1 <- function(X) objfun0(X, maxT, X0set1, Xss = ss) 78 | rslt1 <- nleqslv(Xinit, objfun1) 79 | 80 | rsltfun <- function(rslt, maxT, X0, Xss, p = para) { 81 | XX <- matrix(rslt$x, maxT, 6) 82 | 83 | C <- (c(Xss$C, XX[, 1])/Xss$C -1)*100 84 | ii <- (c(Xss$ii, XX[, 2])-Xss$ii)*100 85 | A <- (c(Xss$A, X0$A, XX[1:(maxT-1), 3])/Xss$A-1)*100 86 | pi <- (c(Xss$pi, XX[, 4])-Xss$pi)*100 87 | m <- (c(Xss$m, XX[, 5])/Xss$m -1)*100 88 | zeta <- (c(Xss$zeta, X0$zeta, XX[1:(maxT-1), 6])-Xss$zeta)*100 89 | r <- c(Xss$ii-Xss$pi,ii[-length(ii)]-pi[-1]) 90 | 91 | list(C = C, ii = ii, A = A, pi = pi, m = m, zeta = zeta, r = r) 92 | } 93 | 94 | X1 <- rsltfun(rslt1, maxT, X0set1, ss) 95 | 96 | par(ps = 15) 97 | par(mfrow = c(3, 2)) 98 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 99 | 100 | plot(cbind(0:50, X1$C[1:51]), main = "C", xlab = "", ylab = "", typ = "l") 101 | plot(cbind(0:50, X1$ii[1:51]), main = "i", xlab = "", ylab = "", typ = "l") 102 | plot(cbind(0:50, X1$m[1:51]), main = "m", xlab = "", ylab = "", typ = "l") 103 | plot(cbind(0:50, X1$pi[1:51]), main = "pi", xlab = "", ylab = "", typ = "l") 104 | plot(cbind(0:50, X1$A[1:51]), main = "A", xlab = "", ylab = "", typ = "l") 105 | plot(cbind(0:50, X1$r[1:51]), main = "r", xlab = "", ylab = "", typ = "l") 106 | 107 | write.csv(X1, "cia_techs.csv") 108 | 109 | Ainit2 <- 1.0 110 | zetainit2 <- -0.01 111 | X0set2 <- list(A = Ainit2, zeta = zetainit2, m = ss$m) 112 | 113 | objfun2 <- function(X) objfun0(X, maxT, X0set2, Xss = ss) 114 | rslt2 <- nleqslv(Xinit, objfun2) 115 | 116 | X2 <- rsltfun(rslt2, maxT, X0set2, ss) 117 | 118 | par(ps = 15) 119 | par(mfrow = c(3, 2)) 120 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 121 | 122 | plot(cbind(0:50, X2$C[1:51]), main = "C", xlab = "", ylab = "", typ = "l") 123 | plot(cbind(0:50, X2$ii[1:51]), main = "i", xlab = "", ylab = "", typ = "l") 124 | plot(cbind(0:50, X2$m[1:51]), main = "m", xlab = "", ylab = "", typ = "l") 125 | plot(cbind(0:50, X2$pi[1:51]), main = "pi", xlab = "", ylab = "", typ = "l") 126 | plot(cbind(0:50, X2$zeta[1:51]), main = "zeta", xlab = "", ylab = "", typ = "l") 127 | plot(cbind(0:50, X2$r[1:51]), main = "r", xlab = "", ylab = "", typ = "l") 128 | 129 | write.csv(X2, "cia_mss.csv") 130 | 131 | -------------------------------------------------------------------------------- /ch5/NK.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 5, New Keynesian model 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | 8 | library(nleqslv) 9 | 10 | #---------------------------------------- 11 | 12 | beta <- 0.99 13 | mu <- 1.0 14 | gamma <- 5 15 | eta <- 10 16 | varrho <- 0.9 17 | phi_pi <- 1.5 18 | phi_y <- 0.5 19 | rho_A <- 0.9 20 | rho_v <- 0.7 21 | 22 | para <- list(beta = beta, mu = mu, gamma = gamma, varrho = varrho, eta = eta, phi_pi = phi_pi, phi_y = phi_y, rho_A = rho_A, rho_v = rho_v) 23 | 24 | #---------------------------------------- 25 | 26 | findss <- function(p) { 27 | pistar <- 0 28 | pitilstar <- 0 29 | vstar <- 0 30 | istar <- (1-p$beta)/p$beta 31 | Dstar <- 1/(1-p$varrho*p$beta) 32 | Fstar <- (p$eta-1)/p$eta/(1-p$varrho*p$beta) 33 | phistar <- (p$eta-1)/p$eta 34 | Astar <- 1 35 | Cstar <- ((p$eta-1)/p$eta/p$mu/(p$gamma+1))^(1/(p$gamma+1)) 36 | 37 | list(C = Cstar, phi = phistar, ppi = pistar, ppitil = pitilstar, 38 | F = Fstar, D = Dstar, A = Astar, ii = istar, v = vstar) 39 | } 40 | 41 | objfun0 <- function(X, maxT, X0, Xss, p = para) { 42 | 43 | nvar <- 4 44 | XX <- matrix(X, maxT, nvar) 45 | C <- c(XX[, 1], Xss$C) 46 | ppi <- c(XX[, 2], Xss$ppi) 47 | F <- c(XX[, 3], Xss$F) 48 | D <- c(XX[, 4], Xss$D) 49 | 50 | A <- c(X0$A) 51 | v <- c(X0$v) 52 | for(t in 1:maxT) { 53 | A[t+1] <- exp(p$rho_A*log(A[t])) 54 | v[t+1] <- p$rho_v*v[t] 55 | } 56 | phi <- p$mu*(C/A)^(p$gamma+1)*(p$gamma+1) 57 | ppitil <- p$eta/(p$eta-1)*F/D*(1+ppi)-1 58 | ii <- Xss$ii + p$phi_pi*ppi + p$phi_y*log(C/Xss$C/A) + v 59 | 60 | ret <- matrix(NA, maxT, nvar) 61 | for(t in 1:maxT) { 62 | ret[t, 1] <- -(1+ppi[t+1])*C[t+1]/C[t] + p$beta*(1+ii[t]) 63 | ret[t, 2] <- -F[t] + phi[t] + p$varrho*p$beta*(1+ppi[t+1])^p$eta*F[t+1] 64 | ret[t, 3] <- -D[t] + 1 + p$varrho*p$beta*(1+ppi[t+1])^(p$eta-1)*D[t+1] 65 | ret[t, 4] <- -(1+ppi[t])^(1-p$eta) + (1-p$varrho)*(1+ppitil[t])^(1-p$eta)+p$varrho 66 | } 67 | return(c(ret)) 68 | } 69 | 70 | rsltfun <- function(rslt, maxT, X0, Xss, p = para) { 71 | 72 | nvar <- 4 73 | XX <- matrix(rslt, maxT, nvar) 74 | C <- c(XX[, 1], Xss$C) 75 | ppi <- c(XX[, 2], Xss$ppi) 76 | F <- c(XX[, 3], Xss$F) 77 | D <- c(XX[, 4], Xss$D) 78 | 79 | A <- c(X0$A) 80 | v <- c(X0$v) 81 | for(t in 1:maxT) { 82 | A[t+1] <- exp(p$rho_A*log(A[t])) 83 | v[t+1] <- p$rho_v*v[t] 84 | } 85 | phi <- p$mu*(C/A)^p$gamma*(p$gamma+1)/A*C 86 | ppitil <- p$eta/(p$eta-1)*F/D*(1+ppi)-1 87 | ii <- Xss$ii + p$phi_pi*ppi + p$phi_y*log(C/Xss$C/A) + v 88 | 89 | ans0 <- list(C = C, phi = phi, ppi = ppi, ppitil = ppitil, 90 | F = F, D = D, A = A, ii = ii, v = v) 91 | 92 | C1 <- (c(Xss$C, C)/Xss$C-1)*100 93 | phi1 <- (c(Xss$phi, phi)/Xss$phi-1)*100 94 | ppi1 <- (c(Xss$ppi, ppi)-Xss$ppi)*100 95 | ppitil1 <- (c(Xss$ppitil, ppitil)-Xss$ppitil)*100 96 | F1 <- (c(Xss$F, F)/Xss$F-1)*100 97 | D1 <- (c(Xss$D, D)/Xss$D-1)*100 98 | A1 <- (c(Xss$A, A)/Xss$A-1)*100 99 | ii1 <- (c(Xss$ii, ii)-Xss$ii)*100 100 | v1 <- (c(Xss$v, v) - Xss$v)*100 101 | r1 <- c(Xss$ii-Xss$ppi,ii1[-length(ii1)]-ppi1[-1]) 102 | 103 | ans1 <- list(C = C1, phi = phi1, ppi = ppi1, ppitil = ppitil1, 104 | F = F1, D = D1, A = A1, ii = ii1, v = v1, r = r1) 105 | 106 | return(list(lev = ans0, dev = ans1)) 107 | } 108 | 109 | #---------------------------------------- 110 | 111 | ss <- findss(para) 112 | 113 | maxT <- 150 114 | Xinit <- c(rep(ss$C,maxT), rep(ss$ppi,maxT), rep(ss$F,maxT), rep(ss$D,maxT)) 115 | 116 | A0a <- 1.01 117 | v0a <- 0 118 | X0a <- list(A = A0a, v = v0a) 119 | 120 | objfun1 <- function(X) objfun0(X, maxT, X0a, Xss = ss) 121 | rslt1 <- nleqslv(Xinit, objfun1, control=list(maxit=10^4)) 122 | print(rslt1) 123 | 124 | X1 <- rsltfun(rslt1$x, maxT, X0a, ss) 125 | X1[[1]] 126 | X1[[2]] 127 | 128 | par(ps = 15) 129 | par(mfrow = c(3, 2)) 130 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 131 | 132 | plot(cbind(0:50, X1[[2]]$C[1:51]), main = "C", xlab = "", ylab = "", typ = "l") 133 | plot(cbind(0:50, X1[[2]]$ii[1:51]), main = "i", xlab = "", ylab = "", typ = "l") 134 | plot(cbind(0:50, X1[[2]]$ppi[1:51]), main = "pi", xlab = "", ylab = "", typ = "l") 135 | plot(cbind(0:50, X1[[2]]$r[1:51]), main = "r", xlab = "", ylab = "", typ = "l") 136 | plot(cbind(0:50, X1[[2]]$A[1:51]), main = "A", xlab = "", ylab = "", typ = "l") 137 | plot(cbind(0:50, X1[[2]]$v[1:51]), main = "v", xlab = "", ylab = "", typ = "l") 138 | 139 | write.csv(X1$dev, "nkm_techs.csv") 140 | 141 | 142 | #---------------------------------------- 143 | 144 | A0b <- 1 145 | v0b <- 0.01 146 | X0b <- list(A = A0b, v = v0b) 147 | 148 | objfun2 <- function(X) objfun0(X, maxT, X0b, Xss = ss) 149 | rslt2 <- nleqslv(Xinit, objfun2, control=list(maxit=10^4)) 150 | print(rslt2) 151 | 152 | X2 <- rsltfun(rslt2$x, maxT, X0b, ss) 153 | X2[[1]] 154 | X2[[2]] 155 | 156 | par(ps = 15) 157 | par(mfrow = c(3, 2)) 158 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 159 | 160 | plot(cbind(0:50, X2[[2]]$C[1:51]), main = "C", xlab = "", ylab = "", typ = "l") 161 | plot(cbind(0:50, X2[[2]]$ii[1:51]), main = "i", xlab = "", ylab = "", typ = "l") 162 | plot(cbind(0:50, X2[[2]]$ppi[1:51]), main = "pi", xlab = "", ylab = "", typ = "l") 163 | plot(cbind(0:50, X2[[2]]$r[1:51]), main = "r", xlab = "", ylab = "", typ = "l") 164 | plot(cbind(0:50, X2[[2]]$A[1:51]), main = "A", xlab = "", ylab = "", typ = "l") 165 | plot(cbind(0:50, X2[[2]]$v[1:51]), main = "v", xlab = "", ylab = "", typ = "l") 166 | 167 | write.csv(X2$dev, "nkm_mps.csv") 168 | 169 | -------------------------------------------------------------------------------- /ch5/NK_linear.R: -------------------------------------------------------------------------------- 1 | #====================================================== 2 | # Chapter 5, New Keynesian model (linear approximation) 3 | # modified on 2019/10/19 4 | #====================================================== 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | 8 | library(nleqslv) 9 | 10 | #---------------------------------------- 11 | 12 | beta <- 0.99 13 | mu <- 1.0 14 | gamma <- 5 15 | varrho <- 0.9 16 | phi_pi <- 1.5 17 | phi_y <- 0.5 18 | rho_A <- 0.9 19 | rho_v <- 0.7 20 | 21 | kappa <- (1-varrho)*(1-varrho*beta)*(gamma+1)/varrho 22 | 23 | para <- list(beta = beta, phi_pi = phi_pi, phi_y = phi_y, rho_A = rho_A, rho_v = rho_v, kappa = kappa) 24 | 25 | #---------------------------------------- 26 | 27 | objfun0 <- function(X, maxT, X0,p = para) { 28 | 29 | nvar <- 2 30 | XX <- matrix(X, maxT, nvar) 31 | x <- c(XX[, 1], 0) 32 | ppi <- c(XX[, 2], 0) 33 | 34 | a <- c(X0$a) 35 | v <- c(X0$v) 36 | for(t in 1:maxT) { 37 | a[t+1] <- p$rho_A*a[t] 38 | v[t+1] <- p$rho_v*v[t] 39 | } 40 | ii <- p$phi_pi*ppi + p$phi_y*x + v 41 | 42 | ret <- matrix(NA, maxT, nvar) 43 | for(t in 1:maxT) { 44 | ret[t, 1] <- -x[t] + x[t+1]-(ii[t]-ppi[t+1])+(p$rho_A-1)*a[t] 45 | ret[t, 2] <- -ppi[t] + p$beta*ppi[t+1]+kappa*x[t] 46 | } 47 | return(c(ret)) 48 | } 49 | 50 | rsltfun <- function(rslt, maxT, X0, Xss, p = para) { 51 | 52 | nvar <- 2 53 | XX <- matrix(rslt, maxT, nvar) 54 | x <- c(XX[, 1], 0) 55 | ppi <- c(XX[, 2], 0) 56 | 57 | a <- c(X0$a) 58 | v <- c(X0$v) 59 | 60 | for(t in 1:maxT) { 61 | a[t+1] <- p$rho_A*a[t] 62 | v[t+1] <- p$rho_v*v[t] 63 | } 64 | ii <- p$phi_pi*ppi + p$phi_y*x + v 65 | r <- ii-c(ppi[-1],0) 66 | 67 | dev <- list(x = x, ppi = ppi, a = a, ii = ii, v = v, r = r) 68 | 69 | return(dev) 70 | } 71 | 72 | #---------------------------------------- 73 | 74 | 75 | maxT <- 150 76 | Xinit <- c(rep(0, maxT), rep(0, maxT)) 77 | 78 | a0a <- 0.01 79 | v0a <- 0 80 | X0a <- list(a = a0a, v = v0a) 81 | 82 | objfun1 <- function(X) objfun0(X, maxT, X0a) 83 | rslt1 <- nleqslv(Xinit, objfun1, control=list(maxit=10^4)) 84 | print(rslt1) 85 | 86 | X1 <- rsltfun(rslt1$x, maxT, X0a) 87 | X1[[1]] 88 | X1[[2]] 89 | 90 | par(ps = 15) 91 | par(mfrow = c(3, 2)) 92 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 93 | 94 | maxT2 <- 50 95 | plot(cbind(0:maxT2, c(0, X1$x[1:maxT2])), main = "x", xlab = "", ylab = "", typ = "l") 96 | plot(cbind(0:maxT2, c(0, X1$ii[1:maxT2])), main = "i", xlab = "", ylab = "", typ = "l") 97 | plot(cbind(0:maxT2, c(0, X1$ppi[1:maxT2])), main = "pi", xlab = "", ylab = "", typ = "l") 98 | plot(cbind(0:maxT2, c(0, X1$r[1:maxT2])), main = "r", xlab = "", ylab = "", typ = "l") 99 | plot(cbind(0:maxT2, c(0, X1$a[1:maxT2])), main = "a", xlab = "", ylab = "", typ = "l") 100 | plot(cbind(0:maxT2, c(0, X1$v[1:maxT2])), main = "v", xlab = "", ylab = "", typ = "l") 101 | 102 | #---------------------------------------- 103 | 104 | a0b <- 0 105 | v0b <- 0.01 106 | X0b <- list(a = a0b, v = v0b) 107 | 108 | objfun2 <- function(X) objfun0(X, maxT, X0b) 109 | rslt2 <- nleqslv(Xinit, objfun2, control=list(maxit=10^4)) 110 | print(rslt2) 111 | 112 | X2 <- rsltfun(rslt2$x, maxT, X0b, ss) 113 | X2[[1]] 114 | X2[[2]] 115 | 116 | par(ps = 15) 117 | par(mfrow = c(3, 2)) 118 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 119 | 120 | maxT2 <- 50 121 | plot(cbind(0:maxT2, c(0, X2$x[1:maxT2])), main = "x", xlab = "", ylab = "", typ = "l") 122 | plot(cbind(0:maxT2, c(0, X2$ii[1:maxT2])), main = "i", xlab = "", ylab = "", typ = "l") 123 | plot(cbind(0:maxT2, c(0, X2$ppi[1:maxT2])), main = "pi", xlab = "", ylab = "", typ = "l") 124 | plot(cbind(0:maxT2, c(0, X2$r[1:maxT2])), main = "r", xlab = "", ylab = "", typ = "l") 125 | plot(cbind(0:maxT2, c(0, X2$a[1:maxT2])), main = "a", xlab = "", ylab = "", typ = "l") 126 | plot(cbind(0:maxT2, c(0, X2$v[1:maxT2])), main = "v", xlab = "", ylab = "", typ = "l") 127 | 128 | -------------------------------------------------------------------------------- /ch5/cia_mss.csv: -------------------------------------------------------------------------------- 1 | "","C","ii","A","pi","m","zeta","r" 2 | "1",0,0,0,0,0,0,0.0101010101010101 3 | "2",0.167645962691876,-0.707070616687453,0,-0.167365385844722,-0.83403048956634,-1,0.167365385844722 4 | "3",0.117145475270264,-0.494949466836888,0,-0.950063149329648,-0.583674432194425,-0.7,0.242992532642195 5 | "4",0.0819009269837467,-0.346464637464303,0,-0.665030725728701,-0.408500353613239,-0.49,0.170081258891814 6 | "5",0.057281332121728,-0.242525249590746,0,-0.465515042837897,-0.28591513201307,-0.343,0.119050405373594 7 | "6",0.0400728108561621,-0.169767675797503,0,-0.325857366054764,-0.200123400380225,-0.2401,0.0833321164640178 8 | "7",0.028039162952731,-0.118837373413272,0,-0.228098607559736,-0.14007796124258,-0.16807,0.0583309317622325 9 | "8",0.0196216349188427,-0.0831861615071068,0,-0.159668267057441,-0.0980504493044432,-0.117649,0.0408308936441682 10 | "9",0.0137323144199009,-0.0582303130943915,0,-0.111767415629881,-0.0686332945724955,-0.0823542999999999,0.0285812541227738 11 | "10",0.0096112339859511,-0.0407612191793513,0,-0.0782370090788438,-0.0480423166387856,-0.05764801,0.0200066959844524 12 | "11",0.00672718480423384,-0.0285328534300411,0,-0.0547658172708877,-0.0336291368336905,-0.040353607,0.0140045980915363 13 | "12",0.00470869673085961,-0.0199729974025797,0,-0.0383360284481212,-0.0235401582497019,-0.0282475249,0.00980317501808012 14 | "13",0.00329592474621609,-0.013981098182316,0,-0.0268351985327688,-0.0164779943916948,-0.01977326743,0.00686220113018916 15 | "14",0.00230706747765819,-0.00978676872780432,0,-0.0187846284974757,-0.0115345390493626,-0.013841287201,0.0048035303151597 16 | "15",0.00161490811334541,-0.00685073810952688,0,-0.0131492348156369,-0.00807414939343332,-0.00968890104069999,0.00336246608783259 17 | "16",0.0011304165109971,-0.00479551667668405,0,-0.00920446185615444,-0.00565189088457263,-0.00678223072848999,0.00235372374662755 18 | "17",0.000791282165568674,-0.00335686167370428,0,-0.00644312206707389,-0.00395631691082476,-0.00474756150994299,0.00164760539038984 19 | "18",0.000553892913868204,-0.00234980317156373,0,-0.00451018484318934,-0.00276941855050783,-0.0033232930569601,0.00115332316948506 20 | "19",0.000387722784744859,-0.00164486222009718,0,-0.00315712909438626,-0.00193859137470609,-0.00232630513987207,0.000807325922822526 21 | "20",0.000271404844398582,-0.00115140355406197,0,-0.00220999022110789,-0.00135701317307557,-0.00162841359791045,0.000565128001010707 22 | "21",0.000189982849674308,-0.000805982487874987,0,-0.0015469930837456,-0.00094990883445778,-0.00113988951853731,0.00039558952968363 23 | "22",0.000132987729495326,-0.000564187741481335,0,-0.00108289512382531,-0.000664935994643123,-0.000797922662976119,0.00027691263595032 24 | "23",9.30912806396123e-05,-0.00039493141907529,0,-0.000758026569633788,-0.000465455103382251,-0.000558545864083283,0.000193838828152453 25 | "24",6.51638327520132e-05,-0.000276451993343543,0,-0.000530618590379658,-0.00032581852689173,-0.000390982104858298,0.000135687171304368 26 | "25",4.56146517224809e-05,-0.000193516395338537,0,-0.000371433009179162,-0.00022807294651761,-0.000273687473400809,9.49810158356185e-05 27 | "26",3.19302409179656e-05,-0.000135461476748547,0,-0.000260003104403235,-0.000159651051645504,-0.000191581231380566,6.64867090646975e-05 28 | "27",2.23511611441296e-05,-9.48230336954986e-05,0,-0.000182002172107774,-0.000111755730813901,-0.000134106861966396,4.65406953592268e-05 29 | "28",1.56458091149503e-05,-6.63761236056534e-05,0,-0.000127401519993785,-7.82290089484938e-05,-9.38748033764774e-05,3.25784862982866e-05 30 | "29",1.09520645885652e-05,-4.64632864828618e-05,0,-8.91810637619287e-05,-5.47603049794176e-05,-6.57123623635342e-05,2.28049401562753e-05 31 | "30",7.66644432381725e-06,-3.2524300569263e-05,0,-6.2426744522222e-05,-3.83322128483243e-05,-4.59986536544739e-05,1.59634580393602e-05 32 | "31",5.36651059146465e-06,-2.2767010412518e-05,0,-4.3698721096888e-05,-2.68325486940668e-05,-3.21990575581317e-05,1.1174420527625e-05 33 | "32",3.75655719864199e-06,-1.59369072886412e-05,0,-3.05891047543523e-05,-1.87827839392973e-05,-2.25393402906922e-05,7.82209434183429e-06 34 | "33",2.6295899235862e-06,-1.11558351063856e-05,0,-2.1412373310587e-05,-1.31479486964459e-05,-1.57775382034845e-05,5.47546602194579e-06 35 | "34",1.84071289321963e-06,-7.80908458002105e-06,0,-1.49886613148579e-05,-9.20356404421341e-06,-1.10442767424392e-05,3.83282620847226e-06 36 | "35",1.2884990185924e-06,-5.46635919168592e-06,0,-1.0492062907912e-05,-6.44249481540626e-06,-7.73099371970743e-06,2.6829783278909e-06 37 | "36",9.01949293030668e-07,-3.82645145412946e-06,0,-7.34444405111241e-06,-4.50974635413104e-06,-5.4116956037952e-06,1.87808485942649e-06 38 | "37",6.31364494019238e-07,-2.67851598140939e-06,0,-5.14111081612065e-06,-3.15682244789173e-06,-3.78818692265664e-06,1.31465936199119e-06 39 | "38",4.41955139152128e-07,-1.87496121215741e-06,0,-3.59877757668999e-06,-2.20977570686287e-06,-2.65173084585965e-06,9.20261595280599e-07 40 | "39",3.0936859740649e-07,-1.31247283111091e-06,0,-2.51914429973209e-06,-1.54684300923691e-06,-1.85621159210175e-06,6.44183087574678e-07 41 | "40",2.16558015964097e-07,-9.18731018692553e-07,0,-1.76340101686879e-06,-1.08279010202494e-06,-1.29934811447123e-06,4.50928185757881e-07 42 | "41",1.51590606733976e-07,-6.43111696188581e-07,0,-1.23438071298855e-06,-7.57953078078799e-07,-9.09543680129859e-07,3.15649694295993e-07 43 | "42",1.06113429154675e-07,-4.50178187262618e-07,0,-8.64066514445239e-07,-5.30567156875605e-07,-6.36680576090901e-07,2.20954818256658e-07 44 | "43",7.42793826447041e-08,-3.15124724925564e-07,0,-6.04846543260341e-07,-3.71397024245823e-07,-4.45676403263631e-07,1.54668355997724e-07 45 | "44",5.19955856148613e-08,-2.20587309009146e-07,0,-4.23392589155851e-07,-2.59977905869846e-07,-3.11973482284541e-07,1.08267864230287e-07 46 | "45",3.63968855054964e-08,-1.54411136828181e-07,0,-2.96374809139731e-07,-1.81984538549784e-07,-2.18381437599179e-07,7.57875001305846e-08 47 | "46",2.54778420583079e-08,-1.08087765994525e-07,0,-2.07462357723481e-07,-1.27389165882619e-07,-1.52867006319425e-07,5.30512208953004e-08 48 | "47",1.78344894408156e-08,-7.56614592159477e-08,0,-1.45223657494391e-07,-8.91724138973871e-08,-1.07006904423598e-07,3.71358914998666e-08 49 | "48",1.24841248450025e-08,-5.29630313564344e-08,0,-1.01656562459236e-07,-6.24207130428545e-08,-7.49048330965183e-08,2.59951032432884e-08 50 | "49",8.73889849373199e-09,-3.70741241526029e-08,0,-7.11595958682852e-08,-4.369449246866e-08,-5.24333831675628e-08,1.81965645118507e-08 51 | "50",6.11721784338215e-09,-2.59518590645103e-08,0,-4.98117177877839e-08,-3.0586144728062e-08,-3.67033682172938e-08,1.2737593635181e-08 52 | "51",4.28204138813726e-09,-1.81663286843992e-08,0,-3.48681913292965e-08,-2.14103068607585e-08,-2.56923577521057e-08,8.91633226478628e-09 53 | "52",2.99742453080398e-09,-1.27164213187259e-08,0,-2.44077298272984e-08,-1.49872114718619e-08,-1.7984650426474e-08,6.24140114289927e-09 54 | "53",2.09818828977859e-09,-8.90148805360313e-09,0,-1.70854182097725e-08,-1.04910524711954e-08,-1.25892552985318e-08,4.36899689104666e-09 55 | "54",1.46873624373711e-09,-6.23107381664267e-09,0,-1.19597805049818e-08,-7.34374783206704e-09,-8.81247870897225e-09,3.05829245137869e-09 56 | "55",1.02811092972388e-09,-4.36176008505873e-09,0,-8.37186501837975e-09,-5.14062126200088e-09,-6.16873509628046e-09,2.14079120173708e-09 57 | "56",7.19690973483011e-10,-3.05320473764636e-09,0,-5.86030442383919e-09,-3.59843266295456e-09,-4.31811456739625e-09,1.49854433878046e-09 58 | "57",5.03774799653911e-10,-2.13727126274765e-09,0,-4.10221314238151e-09,-2.51891840719054e-09,-3.02268019717743e-09,1.04900840473515e-09 59 | "58",3.52651241541935e-10,-1.49606785293521e-09,0,-2.87155694392776e-09,-1.76322290101893e-09,-2.11587613802417e-09,7.34285681180108e-10 60 | "59",2.46846987295157e-10,-1.04726539940092e-09,0,-2.01007709032703e-09,-1.23427934539677e-09,-1.48111329661691e-09,5.14009237391822e-10 61 | "60",1.72795111552659e-10,-7.330868551092e-10,0,-1.4070543074654e-09,-8.63986659993543e-10,-1.03677930763197e-09,3.5978890806448e-10 62 | "61",1.20947696302665e-10,-5.13150286152175e-10,0,-9.84939349936805e-10,-6.04793992664554e-10,-7.25745515342325e-10,2.51852494827605e-10 63 | "62",8.46656078579144e-11,-3.59207108502346e-10,0,-6.89453592608831e-10,-4.23361345980311e-10,-5.08021860739569e-10,1.76303306456656e-10 64 | "63",5.92637050544909e-11,-2.51463086464732e-10,0,-4.82640165427056e-10,-2.96351831963193e-10,-3.55615302517545e-10,1.2343305692471e-10 65 | "64",4.14779321999958e-11,-1.76010248043035e-10,0,-3.37834683358927e-10,-2.07456274381457e-10,-2.48930711762263e-10,8.63715968941951e-11 66 | "65",2.90434343241941e-11,-1.23201969459696e-10,0,-2.364881380491e-10,-1.4521717162097e-10,-1.74251498233642e-10,6.04778900060652e-11 67 | "66",2.03170813506404e-11,-8.62296345438551e-11,0,-1.65550410577018e-10,-1.01652020134679e-10,-1.21976048763504e-10,4.23484411173211e-11 68 | "67",1.42330591756945e-11,-6.04027244888172e-11,0,-1.15880123967896e-10,-7.11652958784725e-11,-8.53832341344014e-11,2.96504894240408e-11 69 | "68",9.9475983006414e-12,-4.22651497133941e-11,0,-8.11065903523043e-11,-4.98157071149308e-11,-5.97682638940054e-11,2.07038658634870e-11 70 | "69",6.97220059464598e-12,-2.95687085927199e-11,0,-5.6787584471554e-11,-3.48721052034762e-11,-4.18377847258276e-11,1.45224347581599e-11 71 | "70",4.86277684785819e-12,-2.06992409323981e-11,0,-3.97520075312742e-11,-2.44249065417534e-11,-2.9286449307997e-11,1.01832989385543e-11 72 | "71",3.39728245535298e-12,-1.45066250678560e-11,0,-2.78235312643773e-11,-1.71085368094737e-11,-2.05005145155371e-11,7.12429033197922e-12 73 | "72",2.37587727269783e-12,-1.01658265139193e-11,0,-1.94828800690117e-11,-1.19793064357054e-11,-1.4350360160865e-11,4.97625500115569e-12 74 | "73",1.66533453693773e-12,-7.11375403028569e-12,0,-1.36429609789055e-11,-8.38218383591993e-12,-1.00452521125467e-11,3.47713446498622e-12 75 | "74",1.17683640610267e-12,-4.96529900528841e-12,0,-9.54206683254778e-12,-5.86197757002083e-12,-7.03167647883199e-12,2.42831280226209e-12 76 | "75",7.99360577730113e-13,-3.48124307159026e-12,0,-6.67899624922907e-12,-4.10782519111308e-12,-4.92217353519679e-12,1.71369724394065e-12 77 | "76",5.77315972805081e-13,-2.45029690981724e-12,0,-4.67061784579792e-12,-2.87547763377916e-12,-3.44552147465922e-12,1.18937477420766e-12 78 | "77",3.99680288865056e-13,-1.7052331768852e-12,0,-3.27275305845239e-12,-2.02060590481778e-12,-2.41186503227305e-12,8.22456148635149e-13 79 | "78",2.88657986402541e-13,-1.18793863634892e-12,0,-2.29260378620502e-12,-1.40998324127395e-12,-1.68830552258608e-12,5.87370609319817e-13 80 | "79",1.99840144432528e-13,-8.27810042736132e-13,0,-1.60855418318623e-12,-9.88098491916389e-13,-1.18181386572775e-12,4.20615546837315e-13 81 | "80",1.33226762955019e-13,-5.88244730703735e-13,0,-1.12143737859561e-12,-6.99440505513849e-13,-8.27269705922669e-13,2.93627335859477e-13 82 | "81",8.88178419700125e-14,-4.67161032080554e-13,0,-7.94814266389217e-13,-4.9960036108132e-13,-5.79088794107936e-13,2.06569535685482e-13 83 | "82",6.66133814775094e-14,-2.75821032680312e-13,0,-5.59668133125884e-13,-3.44169137633799e-13,-4.05362155909462e-13,9.25071010453297e-14 84 | "83",4.44089209850063e-14,-1.97411531566161e-13,0,-3.84743185797044e-13,-2.44249065417534e-13,-2.83753509088999e-13,1.08922153116732e-13 85 | "84",2.22044604925031e-14,-1.36002320516582e-13,0,-2.74569791873869e-13,-1.66533453693773e-13,-1.98627456379569e-13,7.71582603077079e-14 86 | "85",2.22044604925031e-14,-9.8358821087885e-14,0,-1.80972377707685e-13,-1.33226762955019e-13,-1.390392194769e-13,4.49700571911034e-14 87 | "86",2.22044604925031e-14,-6.73072708679001e-14,0,-1.44672842050432e-13,-8.88178419700125e-14,-9.73274535617932e-14,4.63140209625467e-14 88 | "87",0,-7.42461647718073e-14,0,-9.77480679737439e-14,-5.55111512312578e-14,-6.81292174746737e-14,3.04407971058438e-14 89 | "88",0,-3.13984949151802e-14,0,-6.06600428966024e-14,-4.44089209850063e-14,-4.76904522153652e-14,-1.3586121875205e-14 90 | "89",0,-2.84494650060196e-14,0,-3.93910643319921e-14,-3.33066907387547e-14,-3.33833165739746e-14,7.99256941681186e-15 91 | "90",0,-7.97972798949331e-15,0,-4.2292055506001e-14,-1.11022302462516e-14,-2.33683215653294e-14,1.38425904999814e-14 92 | "91",0,-7.28583859910259e-15,0,-2.35781357755386e-14,-1.11022302462516e-14,-1.63578250222803e-14,1.55984077860453e-14 93 | "92",0,-2.42861286636753e-15,0,-1.48030137784581e-14,-1.11022302462516e-14,-1.14504774902799e-14,7.51717517935551e-15 94 | "93",0,-2.1163626406917e-14,0,-9.92024149486896e-15,-1.11022302462516e-14,-8.01533421121029e-15,7.49162862850143e-15 95 | "94",0,-1.90819582357449e-15,0,-5.94385931742438e-15,-1.11022302462516e-14,-5.6107338957474e-15,-1.52197670894927e-14 96 | "95",-1.11022302462516e-14,-1.38777878078145e-15,0,-1.33276565158736e-14,-1.11022302462516e-14,-3.92751369867729e-15,1.14194606922992e-14 97 | "96",-1.11022302462516e-14,-1.04083408558608e-15,0,-3.51250192210421e-15,-1.11022302462516e-14,-2.7492595528331e-15,2.12472314132277e-15 98 | "97",-1.11022302462516e-14,-5.20417042793042e-16,0,-2.45962422077193e-15,-1.11022302462516e-14,-1.92448167062986e-15,1.41879013518585e-15 99 | "98",-1.11022302462516e-14,-3.46944695195361e-16,0,-1.67650916807434e-15,-1.11022302462516e-14,-1.34713721223733e-15,1.1560921252813e-15 100 | "99",-1.11022302462516e-14,-3.46944695195361e-16,0,-1.16517608724928e-15,-1.11022302462516e-14,-9.42996086222187e-16,8.1823139205392e-16 101 | "100",-1.11022302462516e-14,-1.73472347597681e-16,0,-8.4996024086269e-16,-1.11022302462516e-14,-6.60097267542303e-16,5.03015545667329e-16 102 | "101",-1.11022302462516e-14,-1.73472347597681e-16,0,-5.88494052405683e-16,-1.11022302462516e-14,-4.62068011709966e-16,4.15021704808002e-16 103 | "102",-1.11022302462516e-14,0,0,-4.25808050571994e-16,-1.11022302462516e-14,-3.23447596360807e-16,2.52335702974313e-16 104 | "103",-1.11022302462516e-14,0,0,-2.97785965974927e-16,-1.11022302462516e-14,-2.26413374456538e-16,2.97785965974927e-16 105 | "104",-1.11022302462516e-14,-1.73472347597681e-16,0,-1.9496646776432e-16,-1.11022302462516e-14,-1.58489393441051e-16,1.9496646776432e-16 106 | "105",-1.11022302462516e-14,-1.73472347597681e-16,0,-1.59286264921451e-16,-1.11022302462516e-14,-1.10942581264642e-16,-1.41860826762299e-17 107 | "106",-1.11022302462516e-14,0,0,-1.03034492142124e-16,-1.11022302462516e-14,-7.7659828511503e-17,-7.04378554555571e-17 108 | "107",-1.11022302462516e-14,1.73472347597681e-16,0,-7.05038180918305e-17,-1.11022302462516e-14,-5.43618598488457e-17,7.05038180918305e-17 109 | "108",-1.11022302462516e-14,0,0,-3.05461504135146e-17,-1.11022302462516e-14,-3.80532626756567e-17,2.04018498011195e-16 110 | "109",-1.11022302462516e-14,0,0,-3.27045425591108e-17,-1.11022302462516e-14,-2.66372552159096e-17,3.27045425591108e-17 111 | "110",-1.11022302462516e-14,0,0,-3.36725898859281e-17,-1.11022302462516e-14,-1.86460558152055e-17,3.36725898859281e-17 112 | "111",-1.11022302462516e-14,0,0,-1.78665799298488e-17,-1.11022302462516e-14,-1.3052134979825e-17,1.78665799298488e-17 113 | "112",-1.11022302462516e-14,1.73472347597681e-16,0,-1.21158454608585e-17,-1.11022302462516e-14,-9.13651417242945e-18,1.21158454608585e-17 114 | "113",-1.11022302462516e-14,0,0,2.23231289115991e-17,-1.11022302462516e-14,-6.39562306059443e-18,1.51149218686082e-16 115 | "114",-1.11022302462516e-14,0,0,2.80894522492059e-18,-1.11022302462516e-14,-4.47689197611273e-18,-2.80894522492059e-18 116 | "115",-1.11022302462516e-14,0,0,-5.76568345314253e-18,-1.11022302462516e-14,-3.13385412099709e-18,5.76568345314253e-18 117 | "116",-1.11022302462516e-14,0,0,2.02753025561298e-17,-1.11022302462516e-14,-2.19372568577001e-18,-2.02753025561298e-17 118 | "117",-1.11022302462516e-14,0,0,3.94573887705117e-18,-1.11022302462516e-14,-1.53556352012716e-18,-3.94573887705117e-18 119 | "118",-1.11022302462516e-14,0,0,5.38958906342261e-18,-1.11022302462516e-14,-1.07484425651487e-18,-5.38958906342261e-18 120 | "119",-1.11022302462516e-14,-1.73472347597681e-16,0,-6.38562410736382e-18,-1.11022302462516e-14,-7.52427927806411e-19,6.38562410736382e-18 121 | "120",-1.11022302462516e-14,0,0,-2.4375513003411e-17,-1.11022302462516e-14,-5.26700771426132e-19,-1.4909683459427e-16 122 | "121",-1.11022302462516e-14,0,0,5.21243102533378e-18,-1.11022302462516e-14,-3.68701110671039e-19,-5.21243102533378e-18 123 | "122",-1.11022302462516e-14,0,0,6.91775715872527e-18,-1.11022302462516e-14,-2.58167084450791e-19,-6.91775715872527e-18 124 | "123",-1.11022302462516e-14,0,0,-2.5524939004249e-18,-1.11022302462516e-14,-1.80746440529922e-19,2.5524939004249e-18 125 | "124",-1.11022302462516e-14,0,0,-8.62689003924359e-18,-1.11022302462516e-14,-1.26549726390455e-19,8.62689003924359e-18 126 | "125",-1.11022302462516e-14,1.73472347597681e-16,0,7.04553022475878e-18,-1.11022302462516e-14,-8.85776102905172e-20,-7.04553022475878e-18 127 | "126",-1.11022302462516e-14,0,0,2.76904766868206e-17,-1.11022302462516e-14,-6.19384165491827e-20,1.4578187091086e-16 128 | "127",-1.11022302462516e-14,0,0,1.37086818583644e-17,-1.11022302462516e-14,-4.32582763609366e-20,-1.37086818583644e-17 129 | "128",-1.11022302462516e-14,0,0,-2.67405472862897e-17,-1.11022302462516e-14,-3.0253203751849e-20,2.67405472862897e-17 130 | "129",-1.11022302462516e-14,0,0,1.0253740138437e-17,-1.11022302462516e-14,-2.12003767353037e-20,-1.0253740138437e-17 131 | "130",-1.11022302462516e-14,-1.73472347597681e-16,0,1.17274430414747e-17,-1.11022302462516e-14,-1.48105459100796e-20,-1.17274430414747e-17 132 | "131",-1.11022302462516e-14,0,0,-2.6171554174876e-17,-1.11022302462516e-14,-1.03151052177393e-20,-1.47300793422805e-16 133 | "132",-1.11022302462516e-14,0,0,1.58273368814285e-17,-1.11022302462516e-14,-7.26831840475701e-21,-1.58273368814285e-17 134 | "133",-1.11022302462516e-14,0,0,2.21633867458931e-17,-1.11022302462516e-14,-5.02912067047156e-21,-2.21633867458931e-17 135 | "134",-1.11022302462516e-14,1.73472347597681e-16,0,1.08143544630586e-17,-1.11022302462516e-14,-3.52759650041086e-21,-1.08143544630586e-17 136 | "135",-1.11022302462516e-14,0,0,3.21743794148176e-17,-1.11022302462516e-14,-2.44709509460429e-21,1.41297968182863e-16 137 | "136",-1.11022302462516e-14,-1.73472347597681e-16,0,1.88399306512168e-17,-1.11022302462516e-14,-1.72519065009406e-21,-1.88399306512168e-17 138 | "137",-1.11022302462516e-14,0,0,-2.58782365255736e-17,-1.11022302462516e-14,-1.219753213243e-21,-1.47594111072107e-16 139 | "138",-1.11022302462516e-14,0,0,3.78996555005065e-17,-1.11022302462516e-14,-8.26135444009442e-22,-3.78996555005065e-17 140 | "139",-1.11022302462516e-14,0,0,3.09929715782427e-17,-1.11022302462516e-14,-5.60364876694004e-22,-3.09929715782427e-17 141 | "140",-1.11022302462516e-14,1.73472347597681e-16,0,2.00013642439041e-17,-1.11022302462516e-14,-3.52283188106826e-22,-2.00013642439041e-17 142 | "141",-1.11022302462516e-14,0,0,5.61761386684033e-17,-1.11022302462516e-14,-1.47426402175216e-22,1.17296208929277e-16 143 | "142",-1.11022302462516e-14,0,0,3.25914090015171e-17,-1.11022302462516e-14,-3.00571506570165e-23,-3.25914090015171e-17 144 | "143",-1.11022302462516e-14,-1.73472347597681e-16,0,3.6054574860797e-18,-1.11022302462516e-14,-2.60565442512491e-23,-3.6054574860797e-18 145 | "144",-1.11022302462516e-14,0,0,8.71019133374471e-18,-1.11022302462516e-14,-8.78096018776734e-25,-1.82182538931425e-16 146 | "145",-1.11022302462516e-14,1.73472347597681e-16,0,3.64669101321246e-17,-1.11022302462516e-14,5.25328979420145e-23,-3.64669101321246e-17 147 | "146",-1.11022302462516e-14,-1.73472347597681e-16,0,6.68768738988791e-17,-1.11022302462516e-14,2.93650010550316e-23,1.06595473698802e-16 148 | "147",-1.11022302462516e-14,0,0,2.60529873181451e-17,-1.11022302462516e-14,1.10659635534782e-22,-1.99525334915826e-16 149 | "148",-1.11022302462516e-14,-6.41847686111419e-15,0,5.23274345513105e-17,-1.11022302462516e-14,1.58268897547762e-22,-5.23274345513105e-17 150 | "149",-1.11022302462516e-14,1.23165366794353e-14,0,-1.02865774849272e-15,-1.11022302462516e-14,3.06579895275987e-22,-5.38981911262146e-15 151 | "150",-1.11022302462516e-14,2.9316826744008e-14,0,-7.05068121943214e-16,-1.11022302462516e-14,4.61489525044531e-22,1.30216048013785e-14 152 | "151",-1.11022302462516e-14,0,0,7.72449311698253e-15,-1.11022302462516e-14,3.23042667391892e-22,2.15923336270255e-14 153 | -------------------------------------------------------------------------------- /ch5/cia_techs.csv: -------------------------------------------------------------------------------- 1 | "","C","ii","A","pi","m","zeta","r" 2 | "1",0,0,0,0,0,0,0.0101010101010101 3 | "2",1.00000008777683,-1.41821084390092e-08,1,-0.990099108062184,1.00000007350143,0,0.990099108062184 4 | "3",0.899551625649697,-7.90986529747295e-09,0.899551631452944,0.0995529221327633,0.89955162527573,-7.08543106928886e-22,-0.0995529363148718 5 | "4",0.809233526046782,-4.98611794214066e-09,0.809233529735121,0.0895930844261146,0.809233525886444,8.24835382645181e-23,-0.0895930923359799 6 | "5",0.728016360439487,-3.14792809874564e-09,0.728016362779815,0.0806301669094793,0.728016360343342,1.48186797111553e-23,-0.0806301718955972 7 | "6",0.654976856873635,-1.9890597849348e-09,0.654976858359912,0.0725642259998398,0.654976856814815,3.15766367375758e-22,-0.0725642291477679 8 | "7",0.58928658671118,-1.25770071440767e-09,0.589286587655913,0.0653054348136308,0.589286586675297,2.67210023665461e-22,-0.0653054368026906 9 | "8",0.530201998925484,-7.95508624251706e-10,0.530201999526336,0.0587729728110187,0.53020199890359,4.73114821952456e-22,-0.0587729740687194 10 | "9",0.477055543331018,-5.03159493236982e-10,0.47705554371329,0.052894121558086,0.477055543317739,7.86244183628174e-23,-0.0528941223535946 11 | "10",0.429247756054196,-3.18174306346286e-10,0.429247756297424,0.0476034507108922,0.429247756046158,-7.32447195523183e-23,-0.0476034512140517 12 | "11",0.386240196676613,-2.01044042524856e-10,0.386240196831311,0.0428420861208237,0.386240196671772,-6.96182015568974e-23,-0.042842086438998 13 | "12",0.347549140313497,-1.26900573382827e-10,0.347549140411862,0.0385570517151167,0.347549140310632,2.3524733905674e-24,-0.0385570519161607 14 | "13",0.312739939796791,-7.99945179541517e-11,0.312739939859252,0.0347006776637863,0.312739939795081,-4.90171138956024e-23,-0.0347006777906869 15 | "14",0.281421983413832,-5.02311733874272e-11,0.281421983453445,0.0312300681147695,0.281421983412855,-1.417108148187e-22,-0.031230068194764 16 | "15",0.253244182560142,-3.15391809890819e-11,0.253244182585233,0.0281066224670384,0.253244182559587,-1.94306238037612e-23,-0.0281066225172696 17 | "16",0.227890931396924,-1.96552843445552e-11,0.227890931412755,0.0252956047687571,0.227890931396613,-5.07449422268159e-23,-0.0252956048002963 18 | "17",0.205078487340304,-1.21814017206567e-11,0.205078487350274,0.0227657563804217,0.205078487340149,6.70069737309582e-23,-0.022765756400077 19 | "18",0.184551727088378,-7.54205725650436e-12,0.184551727094617,0.0204889475373801,0.184551727088289,2.22163829581956e-23,-0.0204889475495615 20 | "19",0.16608123803632,-4.5847006746591e-12,0.166081238040228,0.0184398638899925,0.166081238036275,-4.08425350569637e-23,-0.0184398638975345 21 | "20",0.149460709442617,-2.8045274436117e-12,0.149460709445037,0.0165957244989314,0.149460709442617,-9.61240935541938e-23,-0.0165957245035161 22 | "21",0.134504591673901,-1.64434438287842e-12,0.134504591675388,0.0149360281187089,0.134504591673901,-1.07854742665549e-22,-0.0149360281215135 23 | "22",0.121045995348124,-9.5964902691037e-13,0.121045995349034,0.0134423249242409,0.121045995348146,-1.37697867966062e-22,-0.0134423249258852 24 | "23",0.108934805275895,-5.40192890419178e-13,0.10893480527645,0.0120980111226569,0.108934805275918,-2.61802819658906e-23,-0.0120980111236166 25 | "24",0.0980359868218983,-3.25434124093249e-13,0.0980359868222092,0.0108881441504731,0.0980359868219205,-5.93840617869885e-23,-0.0108881441510133 26 | "25",0.0882280647173772,-1.20216336885193e-13,0.0882280647175548,0.00979927638930911,0.0882280647173772,-5.55316362687204e-23,-0.00979927638963454 27 | "26",0.0794017564908156,-4.78783679369599e-14,0.0794017564909266,0.00881930554028911,0.0794017564908378,-7.45452115348712e-23,-0.00881930554040933 28 | "27",0.0714587445787229,-6.50521303491303e-14,0.0714587445787895,0.00793733998632167,0.0714587445787451,-1.39109147689113e-22,-0.00793733998636954 29 | "28",0.0643105728632687,5.20417042793042e-16,0.0643105728633131,0.007143577637894,0.0643105728632687,-1.49436709623443e-22,-0.00714357763795905 30 | "29",0.0578776548824989,3.40005801291454e-14,0.0578776548824989,0.00642919691085669,0.0578776548824989,-7.97402160665245e-23,-0.00642919691085617 31 | "30",0.0520883822930918,1.38777878078145e-14,0.0520883822930918,0.00578625861964292,0.0520883822930918,-1.25659837218468e-23,-0.00578625861960892 32 | "31",0.0468783233565695,1.59594559789866e-14,0.0468783233565917,0.00520761769164071,0.0468783233565695,5.78846391945077e-23,-0.00520761769162683 33 | "32",0.0421895022806762,1.6826817716975e-14,0.0421895022806984,0.00468684371900909,0.0421895022806984,3.53698132808302e-23,-0.00468684371899313 34 | "33",0.0379697511968091,3.95516952522712e-14,0.0379697511968091,0.00421814946235706,0.0379697511968091,-5.29730720157619e-23,-0.00421814946234024 35 | "34",0.0341721274012441,2.13370987545147e-14,0.0341721274012663,0.00379632650948131,0.0341721274012441,-7.12127246629403e-23,-0.00379632650944176 36 | "35",0.0307543892463125,-1.38777878078145e-15,0.0307543892463125,0.00341668737317636,0.0307543892463125,-2.5009450427965e-23,-0.00341668737315503 37 | "36",0.0276785247448563,2.53269627492614e-14,0.0276785247448785,0.00307501338275719,0.0276785247448563,2.09740770401989e-23,-0.00307501338275858 38 | "37",0.0249103275598905,-1.80411241501588e-14,0.0249103275598905,0.0027675077894164,0.0249103275598905,2.12358641785025e-23,-0.00276750778939107 39 | "38",0.022419015593278,1.09287578986539e-14,0.0224190155933002,0.00249075356393997,0.022419015593278,3.7591869276425e-23,-0.00249075356395801 40 | "39",0.0201768878769215,4.33680868994202e-15,0.0201768878769437,0.00224167541584526,0.0201768878769215,7.24607646607303e-23,-0.00224167541583433 41 | "40",0.0181590159046507,-2.51534904016637e-14,0.0181590159046507,0.00201750561296046,0.0181590159046507,1.76164651357385e-23,-0.00201750561295612 42 | "41",0.0163429659365777,1.11022302462516e-14,0.0163429659365777,0.00181575322001897,0.0163429659365777,-2.21105286260363e-23,-0.00181575322004412 43 | "42",0.0147085491584154,-4.85722573273506e-15,0.0147085491584154,0.00163417641439821,0.0147085491584154,-1.75145888743014e-23,-0.00163417641438711 44 | "43",0.0132375968941334,-2.75821032680312e-14,0.0132375968941556,0.00147075757122768,0.0132375968941334,-5.04298505638967e-24,-0.00147075757123254 45 | "44",0.0119137583532325,-6.59194920871187e-15,0.0119137583532325,0.00132368084069959,0.0119137583532325,-3.10714967568553e-24,-0.00132368084072717 46 | "45",0.0107223186487371,1.6306400674182e-14,0.0107223186487371,0.00119131196816755,0.0107223186487371,-8.30239635753092e-24,-0.00119131196817414 47 | "46",0.00965003505022377,3.29597460435593e-15,0.00965003505022377,0.00107218013273589,0.00965003505022377,1.78715419093651e-24,-0.00107218013271958 48 | "47",0.00868498964121667,-1.21430643318376e-15,0.00868498964123887,0.000964961602143702,0.00868498964121667,-8.02776649834197e-24,-0.000964961602140406 49 | "48",0.00781645673511022,4.5102810375397e-15,0.00781645673511022,0.000868465022904589,0.00781645673511022,-1.39841653393364e-23,-0.000868465022905803 50 | "49",0.00703478356871567,-1.33573707650214e-14,0.00703478356873788,0.000781618181221208,0.00703478356871567,-9.8246774224584e-24,-0.000781618181216698 51 | "50",0.00633128294273977,8.67361737988404e-16,0.00633128294273977,0.000703456088167974,0.00633128294273977,-1.1391252590141e-23,-0.000703456088181332 52 | "51",0.00569813661055463,-1.47451495458029e-14,0.00569813661055463,0.000633110256663816,0.00569813661055463,-6.17002039940028e-24,-0.000633110256662949 53 | "52",0.00512830833885314,1.76941794549634e-14,0.00512830833885314,0.000569799050636901,0.00512830833885314,-6.8829845842902e-24,-0.000569799050651646 54 | "53",0.00461546567038784,-2.13370987545147e-14,0.00461546567038784,0.000512818999470895,0.00461546567038784,-1.60442171931641e-23,-0.000512818999453201 55 | "54",0.00415390951735706,-1.97758476261356e-14,0.00415390951737926,0.000461536981205732,0.00415390951735706,-1.60377627584911e-23,-0.000461536981227069 56 | "55",0.00373851080102128,-3.12250225675825e-15,0.00373851080102128,0.000415383187200854,0.00373851080102128,-1.33921973440863e-23,-0.00041538318722063 57 | "56",0.00336465343158121,-3.29597460435593e-15,0.00336465343160341,0.000373844790845107,0.00336465343158121,-1.75191981117008e-23,-0.000373844790848229 58 | "57",0.00302818299409147,2.8796409701215e-14,0.00302818299409147,0.000336460248854915,0.00302818299409147,-1.12398128221688e-23,-0.000336460248858211 59 | "58",0.00272536056826755,-1.56125112837913e-14,0.00272536056826755,0.000302814173052331,0.00272536056826755,-8.24026893565451e-24,-0.000302814173023534 60 | "59",0.00245282116906331,1.80411241501588e-14,0.00245282116906331,0.000272532714466423,0.00245282116906331,-1.15854466269931e-23,-0.000272532714482036 61 | "60",0.00220753634483373,5.20417042793042e-15,0.00220753634483373,0.000245279409593204,0.00220753634483373,-1.5775971099719e-23,-0.000245279409575163 62 | "61",0.00198678051741563,1.35308431126191e-14,0.00198678051741563,0.000220751441567501,0.00198678051741563,-2.29863528543757e-23,-0.000220751441562297 63 | "62",0.00178810068938162,-1.50920942409982e-14,0.00178810068940383,0.000198676275498786,0.00178810068938162,-1.78773996218461e-23,-0.000198676275485255 64 | "63",0.00160928918169212,6.07153216591882e-15,0.00160928918169212,0.000178808630175087,0.00160928918169212,-1.31934849000106e-23,-0.000178808630190179 65 | "64",0.00144835909809959,9.54097911787244e-15,0.00144835909809959,0.000160927752782427,0.00144835909809959,-1.14447942597501e-23,-0.000160927752776355 66 | "65",0.00130352224432251,1.97758476261356e-14,0.00130352224432251,0.000144834965816375,0.00130352224432251,-9.03040253626037e-24,-0.000144834965806834 67 | "66",0.00117316925525301,-1.56125112837913e-15,0.00117316925525301,0.000130351459815734,0.00117316925525301,-9.10644185034548e-24,-0.000130351459795958 68 | "67",0.00105585171039646,6.41847686111419e-15,0.00105585171039646,0.000117316306179196,0.00105585171039646,-8.17222468646312e-24,-0.000117316306180757 69 | "68",0.000950266037680336,-8.50014503228635e-15,0.000950266037680336,0.000105584669373699,0.000950266037680336,-1.6839127134616e-23,-0.00010558466936728 70 | "69",0.000855239027552912,5.3776427755281e-15,0.000855239027575116,9.50261974033201e-05,0.000855239027552912,-1.31213438211656e-23,-9.50261974118202e-05 71 | "70",0.000769714795656462,9.19403442267708e-15,0.000769714795656462,8.55235736019455e-05,0.000769714795656462,-1.43148084256846e-23,-8.55235735965678e-05 72 | "71",0.000692743049479638,-1.38777878078145e-15,0.000692743049501843,7.6971212970298e-05,0.000692743049479638,-1.69196707199494e-23,-7.6971212961104e-05 73 | "72",0.000623468528582194,1.73472347597681e-15,0.000623468528582194,6.92740889971644e-05,0.000623468528582194,-1.56751994669288e-23,-6.92740889985522e-05 74 | "73",0.000561121500797235,-3.46944695195361e-15,0.000561121500819439,6.23466779427456e-05,0.000561121500797235,-8.60232128058662e-24,-6.23466779410109e-05 75 | "74",0.000505009209050833,1.56125112837913e-15,0.000505009209050833,5.6112008388496e-05,0.000505009209050833,-1.42792523226901e-23,-5.61120083919654e-05 76 | "75",0.000454508173364232,9.54097911787244e-15,0.000454508173364232,5.05008061334603e-05,0.000454508173364232,-2.27028329771436e-23,-5.0500806131899e-05 77 | "76",0.000409057263062174,-8.32667268468867e-15,0.000409057263084378,4.54507243910811e-05,0.000409057263062174,-2.25072780980751e-23,-4.54507243815402e-05 78 | "77",0.000368151461471733,7.45931094670027e-15,0.000368151461471733,4.09056510068706e-05,0.000368151461471733,-1.37529910075619e-23,-4.09056510151973e-05 79 | "78",0.000331336254322245,1.61329283265843e-14,0.00033133625434445,3.68150851437124e-05,0.000331336254322245,-1.05956263509705e-23,-3.68150851362531e-05 80 | "79",0.000298202579496198,-8.67361737988404e-15,0.000298202579496198,3.31335760134685e-05,0.000298202579496198,-1.05070293707715e-23,-3.31335759973356e-05 81 | "80",0.00026838228153192,2.35922392732846e-14,0.00026838228153192,2.9820217952139e-05,0.00026838228153192,-8.05006912849835e-24,-2.98202179608126e-05 82 | "81",0.000241544020962436,2.25514051876985e-15,0.000241544020962436,2.68381957299478e-05,0.000241544020962436,-4.48692671372245e-24,-2.68381957063556e-05 83 | "82",0.000217389592593875,1.73472347597681e-14,0.00021738959261608,2.4154375848723e-05,0.000217389592593875,-5.29177665984025e-24,-2.41543758464678e-05 84 | "83",0.000195650612067055,-1.196959198424e-14,0.00019565061208926,2.17389380016916e-05,0.000195650612067055,-3.83959859972957e-24,-2.17389379843444e-05 85 | "84",0.000176085533643011,9.71445146547012e-15,0.000176085533643011,1.95650439892381e-05,0.000176085533643011,-2.60510606756995e-24,-1.95650440012077e-05 86 | "85",0.000158476966327648,9.54097911787244e-15,0.000158476966327648,1.76085394085838e-05,0.000158476966327648,-1.05679989853814e-23,-1.76085393988693e-05 87 | "86",0.00014262925838171,-1.12757025938492e-14,0.000142629258403915,1.58476853403234e-05,0.00014262925838171,-1.28379784652998e-23,-1.58476853307824e-05 88 | "87",0.000128366323393081,3.72965547335014e-14,0.000128366323415285,1.42629166855176e-05,0.000128366323393081,-9.60496694176616e-24,-1.42629166967933e-05 89 | "88",0.000115529683641924,-6.59194920871187e-15,0.000115529683641924,1.28366249372448e-05,0.000115529683641924,-6.22106382895632e-24,-1.28366248999482e-05 90 | "89",0.000103976709286968,3.98986399474666e-15,0.000103976709286968,1.15529623373185e-05,0.000103976709286968,-8.78237597126767e-24,-1.15529623439104e-05 91 | "90",9.35790334777309e-05,2.0643209364124e-14,9.35790334777309e-05,1.03976660513909e-05,9.35790334777309e-05,-1.52325494726362e-23,-1.0397666047401e-05 92 | "91",8.42211261842252e-05,1.61329283265843e-14,8.42211262064296e-05,9.35789941931625e-06,8.42211261842252e-05,-5.02864050252429e-24,-9.35789939867304e-06 93 | "92",7.57990103794626e-05,1.30104260698261e-14,7.57990103794626e-05,8.4221094255778e-06,7.57990103794626e-05,-2.23227499773857e-24,-8.42210940944488e-06 94 | "93",6.8219106741374e-05,1.38777878078145e-15,6.82191067635785e-05,7.57989845683258e-06,6.8219106741374e-05,-1.27048814132373e-23,-7.57989844382215e-06 95 | "94",6.1397193973356e-05,-1.38777878078145e-15,6.13971939955604e-05,6.82190859166278e-06,6.1397193973356e-05,-1.52455978335762e-23,-6.821908590275e-06 96 | "95",5.52574728862609e-05,3.12250225675825e-15,5.52574728862609e-05,6.13971769019519e-06,5.52574728862609e-05,7.41502541217444e-25,-6.13971769158297e-06 97 | "96",4.97317242276196e-05,1.16226472890446e-14,4.97317242276196e-05,5.52574590774909e-06,4.97317242276196e-05,-6.56552380165001e-24,-5.52574590462659e-06 98 | "97",4.47585506879733e-05,-1.31838984174237e-14,4.47585506879733e-05,4.97317131775053e-06,4.47585506879733e-05,-2.0575167416377e-23,-4.97317130612788e-06 99 | "98",4.0282694713234e-05,2.77555756156289e-15,4.02826947354384e-05,4.47585417393183e-06,4.0282694713234e-05,-2.23544698894859e-23,-4.47585418711573e-06 100 | "99",3.62544245069429e-05,1.07552855510562e-14,3.62544245291474e-05,4.02826873194428e-06,3.62544245069429e-05,-1.227273920594e-23,-4.02826872916872e-06 101 | "100",3.26289814722713e-05,3.98986399474666e-15,3.26289814722713e-05,3.62544185863568e-06,3.26289814722713e-05,-8.32511071892787e-24,-3.62544184788039e-06 102 | "101",2.93660828321052e-05,-1.17961196366423e-14,2.93660828543096e-05,3.26289765995282e-06,2.93660828321052e-05,-1.54845397081769e-23,-3.26289765596296e-06 103 | "102",2.64294741647575e-05,-8.50014503228635e-15,2.6429474186962e-05,2.93660790268124e-06,2.64294741647575e-05,-1.6967967933493e-23,-2.93660791447736e-06 104 | "103",2.37865264374193e-05,1.02348685082632e-14,2.37865264374193e-05,2.64294710325289e-06,2.37865264374193e-05,-1.16729657109983e-23,-2.64294711175304e-06 105 | "104",2.14078735405465e-05,1.00613961606655e-14,2.14078735405465e-05,2.37865238796344e-06,2.14078735405465e-05,-2.07371110728213e-23,-2.37865237772857e-06 106 | "105",1.92670859711086e-05,1.61329283265843e-14,1.92670859933131e-05,2.14078715314019e-06,1.92670859711086e-05,-2.11168544257083e-23,-2.14078714307879e-06 107 | "106",1.73403772230074e-05,8.32667268468867e-15,1.73403772230074e-05,1.92670842515501e-06,1.73403772230074e-05,-1.58973443768488e-23,-1.92670840902209e-06 108 | "107",1.56063393541572e-05,1.33573707650214e-14,1.56063393541572e-05,1.73403758846943e-06,1.56063393541572e-05,-1.82357379096781e-23,-1.73403758014276e-06 109 | "108",1.40457053099396e-05,-1.78676518025611e-14,1.40457053099396e-05,1.56063382628413e-06,1.40457053099396e-05,-1.36113073989365e-23,-1.56063381292676e-06 110 | "109",1.26411346945687e-05,1.80411241501588e-14,1.26411346945687e-05,1.40457044487586e-06,1.26411346945687e-05,-5.44146980345047e-24,-1.40457046274351e-06 111 | "110",1.13770211473962e-05,-2.08166817117217e-15,1.13770211473962e-05,1.2641134119993e-06,1.13770211473962e-05,-9.42431769204864e-25,-1.26411339395817e-06 112 | "111",1.02393189704841e-05,2.15105711021124e-14,1.02393189704841e-05,1.13770205995158e-06,1.02393189704841e-05,8.63436199522835e-25,-1.13770206203325e-06 113 | "112",9.21538703124725e-06,-7.28583859910259e-15,9.21538703124725e-06,1.02393186294937e-06,9.21538703124725e-06,-6.48728261310819e-24,-1.0239318414388e-06 114 | "113",8.29384827483182e-06,7.80625564189563e-15,8.29384829703628e-06,9.21538673581922e-07,8.29384827483182e-06,-9.54457918852646e-24,-9.21538680867761e-07 115 | "114",7.46446342514417e-06,5.72458747072346e-15,7.46446342514417e-06,8.29384794523251e-07,7.46446342514417e-06,-5.16572026439779e-24,-8.29384786716995e-07 116 | "115",6.71801707596842e-06,-4.33680868994202e-15,6.71801707596842e-06,7.46446319069211e-07,6.71801707596842e-06,-2.76733531099388e-24,-7.46446313344623e-07 117 | "116",6.04621532840355e-06,-4.33680868994202e-15,6.04621532840355e-06,6.71801687531924e-07,6.04621532840355e-06,-6.56541076267973e-24,-6.71801691868732e-07 118 | "117",5.44159379778364e-06,-2.77555756156289e-15,5.44159379778364e-06,6.04621525130492e-07,5.44159379778364e-06,-7.10307438088455e-24,-6.04621529467301e-07 119 | "118",4.89743439135992e-06,-1.21430643318376e-15,4.89743439135992e-06,5.44159374980787e-07,4.89743439135992e-06,-5.77769245240195e-24,-5.44159377756344e-07 120 | "119",4.40769092335813e-06,6.59194920871187e-15,4.40769094556259e-06,4.89743439047182e-07,4.40769092335813e-06,-3.55282674181518e-24,-4.89743440261488e-07 121 | "120",3.96692183546321e-06,9.8879238130678e-15,3.96692183546321e-06,4.40769098594246e-07,3.96692183546321e-06,-7.09481648780387e-24,-4.40769092002297e-07 122 | "121",3.57022964525555e-06,4.35415592470179e-14,3.57022964525555e-06,3.96692175740365e-07,3.57022964525555e-06,-7.76549210017552e-24,-3.96692165852442e-07 123 | "122",3.21320665630509e-06,-1.73472347597681e-15,3.21320667850955e-06,3.57022965506903e-07,3.21320665630509e-06,-7.04022151592782e-24,-3.57022921965344e-07 124 | "123",2.89188599733592e-06,6.24500451351651e-15,2.89188599733592e-06,3.21320662320268e-07,2.89188599733592e-06,-4.30088079455579e-24,-3.21320664054991e-07 125 | "124",2.60269741314545e-06,-2.02962646689286e-14,2.60269741314545e-06,2.8918858644005e-07,2.60269741314545e-06,-2.97459394134611e-24,-2.89188580195045e-07 126 | "125",2.34242765184689e-06,9.0205620750794e-15,2.34242765184689e-06,2.6026974987676e-07,2.34242765184689e-06,-2.06890918559118e-24,-2.60269770173024e-07 127 | "126",2.10818489332354e-06,-1.71737624121704e-14,2.10818489332354e-06,2.34242766417987e-07,2.10818489332354e-06,-1.19253616231399e-23,-2.34242757397425e-07 128 | "127",1.89736639732985e-06,3.17454396103756e-14,1.89736639732985e-06,2.10818489431149e-07,1.89736639732985e-06,-2.07251567668983e-25,-2.10818506604911e-07 129 | "128",1.70762974871508e-06,-1.52655665885959e-14,1.70762974871508e-06,1.89736652127033e-07,1.70762974871508e-06,-2.79517067260027e-24,-1.89736620381593e-07 130 | "129",1.53686676718223e-06,1.11022302462516e-14,1.53686678938669e-06,1.70762983000469e-07,1.53686676718223e-06,-9.30312730491177e-24,-1.70762998266035e-07 131 | "130",1.38318010378669e-06,-1.11022302462516e-14,1.38318010378669e-06,1.53686663164647e-07,1.38318010378669e-06,-1.30189098689632e-23,-1.53686652062417e-07 132 | "131",1.24486208008534e-06,2.41126563160776e-14,1.24486208008534e-06,1.38318017082667e-07,1.24486208008534e-06,-1.56100391625897e-23,-1.38318028184897e-07 133 | "132",1.12037585875413e-06,3.46944695195361e-15,1.12037588095859e-06,1.24486220898975e-07,1.12037585875413e-06,-1.37453148487482e-23,-1.24486196786319e-07 134 | "133",1.00833827954006e-06,-2.0643209364124e-14,1.00833830174452e-06,1.12037586196843e-07,1.00833827954006e-06,-8.6761313212954e-24,-1.12037582727396e-07 135 | "134",9.07504449365604e-07,2.42861286636753e-14,9.07504471570064e-07,1.00833825749808e-07,9.07504449365604e-07,-2.60441705455852e-24,-1.00833846393017e-07 136 | "135",8.16753997767705e-07,-1.56125112837913e-15,8.16754019972166e-07,9.07504534440504e-08,8.16753997767705e-07,-7.7448083317234e-24,-9.07504291579217e-08 137 | "136",7.35078620195395e-07,2.98372437868011e-14,7.35078620195395e-07,8.16753902825057e-08,7.35078620195395e-07,-1.96352656099154e-24,-8.16753918437568e-08 138 | "137",6.61570731530503e-07,7.11236625150491e-15,6.61570753734964e-07,7.35078676738573e-08,6.61570731530503e-07,-2.54962702560122e-24,-7.35078378366135e-08 139 | "138",5.95413673920575e-07,-1.38777878078145e-15,5.95413673920575e-07,6.61570623339412e-08,5.95413673920575e-07,-8.96421971805351e-24,-6.61570552215749e-08 140 | "139",5.35872302087625e-07,2.1163626406917e-14,5.35872302087625e-07,5.95413567603079e-08,5.35872302087625e-07,-1.01661904621107e-23,-5.95413581480867e-08 141 | "140",4.82285056335741e-07,-1.16226472890446e-14,4.82285078540201e-07,5.35872419094658e-08,4.82285056335741e-07,-5.0035752119237e-24,-5.35872207458394e-08 142 | "141",4.34056568465735e-07,-1.56125112837913e-15,4.34056568465735e-07,4.82284985174026e-08,4.34056568465735e-07,-1.16339055860205e-23,-4.82285101400499e-08 143 | "142",3.90650911619161e-07,2.42861286636753e-15,3.90650911619161e-07,4.34056564005852e-08,3.90650911619161e-07,-8.06233140240152e-24,-4.34056579618364e-08 144 | "143",3.51585827118583e-07,-9.54097911787244e-15,3.51585827118583e-07,3.90650690898687e-08,3.51585827118583e-07,-3.70094030896862e-24,-3.90650666612558e-08 145 | "144",3.16427217761373e-07,2.34187669256869e-14,3.16427239965833e-07,3.51585887247977e-08,3.16427217761373e-07,1.82191199209157e-25,-3.51585982657768e-08 146 | "145",2.84784507087465e-07,9.0205620750794e-15,2.84784507087465e-07,3.16427198814907e-08,2.84784507087465e-07,5.54230027547711e-24,-3.16426964627237e-08 147 | "146",2.56306043056043e-07,1.35308431126191e-14,2.56306065260503e-07,2.84784612523301e-08,2.56306043056043e-07,7.91019944742579e-24,-2.8478452231768e-08 148 | "147",2.30675434309546e-07,-3.81639164714898e-15,2.30675456514007e-07,2.56305972482729e-08,2.30675434309546e-07,-6.69789990648412e-24,-2.56305837174298e-08 149 | "148",2.0760790864216e-07,-1.07552855510562e-14,2.0760790864216e-07,2.30675399099518e-08,2.0760790864216e-07,-1.6071907887008e-23,-2.30675437263434e-08 150 | "149",1.86847115557498e-07,3.55618312575245e-14,1.86847115557498e-07,2.07607799505676e-08,1.86847115557498e-07,-3.39697490241379e-23,-2.07607907058531e-08 151 | "150",1.68162395119964e-07,-1.83449888092879e-07,1.68162417324424e-07,1.86847028490107e-08,1.68162395119964e-07,-6.42740806286135e-23,-1.86846672871794e-08 152 | "151",1.81615389394096e-07,0,1.51346157828414e-07,-1.34529846968035e-08,1.81615389394096e-07,-4.49918494755954e-23,-1.69996903396076e-07 153 | -------------------------------------------------------------------------------- /ch5/figures5.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 5, Other figures 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | fx <- function(x) sin(x)+1.5 11 | 12 | if (.Platform$OS.type == "windows") windows(7, 7) 13 | par(ps = 18) 14 | par(mai = c(0.85, 0.85, 0.35, 0.35)) 15 | curve(fx, -0.5, 4, ylim = c(0, 3), ylab = "y") 16 | abline(h = 0) 17 | lines(c(0.5, 0.5), c(0, fx(0.5))) 18 | lines(c(3.0, 3.0), c(0, fx(3.0))) 19 | text(0.0, 0.75, "x = a") 20 | text(3.5, 0.75, "x = b") 21 | text(2.0, 2.7, "y = f(x)") 22 | grids <- seq(0.5, 3.0, length =100) 23 | dots <- rbind(c(0.5,0),cbind(grids, fx(grids)),c(3.0,0)) 24 | polygon(dots,col="gray") 25 | 26 | dev.copy2eps(file= figpath %+% "integ.eps") 27 | 28 | #--------------------------------------- 29 | 30 | nkm_techs <- read.csv("nkm_techs.csv") 31 | cia_techs <- read.csv("cia_techs.csv") 32 | 33 | par(ps = 15) 34 | par(mfrow = c(3, 2)) 35 | par(mai = c(0.85, 0.68, 0.68, 0.35*2)*0.5) 36 | 37 | plot(cbind(0:50, nkm_techs$C[1:51]), col = 4, main = expression(C[t]), xlab = "", ylab = "", typ = "l", ylim = c(0,1)) 38 | lines(cbind(0:50, cia_techs$C[1:51]), col = 2, lty = 2) 39 | 40 | plot(cbind(0:50, nkm_techs$ii[1:51]), col = 4, main = expression(i[t]), xlab = "", ylab = "", typ = "l") 41 | lines(cbind(0:50, cia_techs$ii[1:51]), col = 2, lty = 2) 42 | 43 | plot(cbind(0:50, nkm_techs$ppi[1:51]), col = 4, main = expression(pi[t]), xlab = "", ylab = "", typ = "l", ylim = c(-0.5, 0.1)/5) 44 | axis(4, at = seq(-1, 1, 0.02), labels = seq(-1, 1, 0.02)*10) 45 | lines(cbind(0:50, cia_techs$pi[1:51]/10), col = 2, lty = 2) 46 | 47 | plot(cbind(0:50, nkm_techs$r[1:51]), col = 4, main = expression(r[t]), xlab = "", ylab = "", typ = "l", ylim = c(-0.5, 0.5)/5) 48 | axis(4, at = seq(-1, 1, 0.05), labels = seq(-1, 1, 0.05)*10) 49 | lines(cbind(0:50, cia_techs$r[1:51]/10), col = 2, lty = 2) 50 | 51 | plot(cbind(0:50, cia_techs$m[1:51]), col = 2, lty = 2, main = expression(m[t]), xlab = "", ylab = "", typ = "l") 52 | 53 | plot(cbind(0:50, nkm_techs$A[1:51]), col = 4, main = expression(A[t]), xlab = "", ylab = "", typ = "l") 54 | lines(cbind(0:50, cia_techs$A[1:51]), col = 2, lty = 2) 55 | 56 | dev.copy2eps(file= figpath %+% "nkm_cia_techs.eps") 57 | 58 | #--------------------------------------- 59 | 60 | nkm_mps <- read.csv("nkm_mps.csv") 61 | cia_mss <- read.csv("cia_mss.csv") 62 | 63 | plot(cbind(0:50, nkm_mps$C[1:51]), col = 4, main = expression(C[t]), xlab = "", ylab = "", typ = "l", ylim = c(-1, 0.25)) 64 | lines(cbind(0:50, cia_mss$C[1:51]), col = 2, lty = 2) 65 | 66 | plot(cbind(0:50, nkm_mps$ii[1:51]), col = 4, main = expression(i[t]), xlab = "", ylab = "", typ = "l", ylim = c(-4, 1)/5) 67 | lines(cbind(0:50, cia_mss$ii[1:51]), col = 2, lty = 2) 68 | 69 | plot(cbind(0:50, nkm_mps$ppi[1:51]), col = 4, main = expression(pi[t]), xlab = "", ylab = "", typ = "l", ylim = c(-5, 0)/5) 70 | lines(cbind(0:50, cia_mss$pi[1:51]), col = 2, lty = 2) 71 | 72 | plot(cbind(0:50, nkm_mps$r[1:51]), col = 4, main = expression(r[t]), xlab = "", ylab = "", typ = "l", ylim = c(0, 0.3)) 73 | lines(cbind(0:50, cia_mss$r[1:51]), col = 2, lty = 2) 74 | 75 | plot(cbind(0:50, cia_mss$m[1:51]), col = 2, lty = 2, main = expression(m[t]), xlab = "", ylab = "", typ = "l") 76 | 77 | plot(cbind(0:50, nkm_mps$v[1:51]), col = 4, main = expression(paste(v[t], ", ", zeta[t])), xlab = "", ylab = "", typ = "l", ylim = c(-5, 5)/5) 78 | lines(cbind(0:50, cia_mss$zeta[1:51]), col = 2, lty = 2) 79 | 80 | dev.copy2eps(file= figpath %+% "nkm_cia_ms.eps") 81 | 82 | -------------------------------------------------------------------------------- /ch5/nkm_mps.csv: -------------------------------------------------------------------------------- 1 | "","C","phi","ppi","ppitil","F","D","A","ii","v","r" 2 | "1",0,0,0,0,0,0,0,0,0,0.0101010101010101 3 | "2",-0.97679961476379,-5.71952746532599,-0.267061441844508,-2.39320379496373,-5.72478899017877,-3.67121765323852,0,0.108607038086817,1,0.267061441844508 4 | "3",-0.690894859440305,-4.07442496988744,-0.180682377593618,-1.67407612221617,-4.00500696414613,-2.54701586209435,0,0.0823301395031457,0.7,0.289289415680435 5 | "4",-0.487013487903132,-2.88673378642081,-0.123539312994023,-1.17139667841124,-2.80239570143113,-1.77183145037373,0,0.0605893989728039,0.49,0.205869452497169 6 | "5",-0.342533445943327,-2.03768147353627,-0.0850800924624027,-0.819793063838958,-1.96114906154549,-1.23489109427083,0,0.0438191438858954,0.343,0.145669491435207 7 | "6",-0.240557344953674,-1.43469168517443,-0.0588853959471068,-0.573778025185567,-1.37255141410016,-0.861795344837679,0,0.0313483315836981,0.2401,0.102704539833002 8 | "7",-0.168770305220023,-1.00835892107973,-0.0408958681521664,-0.401611384744915,-0.960664125756738,-0.601973330658789,0,0.0222697564011318,0.16807,0.0722441997358646 9 | "8",-0.118324156587202,-0.707848158899349,-0.0284699855543227,-0.281113242934661,-0.672405907610452,-0.420754011612168,0,0.0157469142251444,0.117649,0.0507397419554545 10 | "9",-0.0829170781798005,-0.496472322241825,-0.0198525405506371,-0.196772587243388,-0.470655491672789,-0.294220954091284,0,0.0110997524723475,0.0823543,0.0355994547757814 11 | "10",-0.0580859830263125,-0.348010192735593,-0.01385950218857,-0.137737719067044,-0.329444898110398,-0.205804492222372,0,0.00780732698265445,0.05764801,0.0249592546609174 12 | "11",-0.040681709357171,-0.243842140537065,-0.00968344896194184,-0.0964149508193346,-0.230604626048858,-0.143989621232699,0,0.00548344025233048,0.040353607,0.0174907759445963 13 | "12",-0.0284877239760895,-0.170804657522461,-0.00676951646211898,-0.0674897752744097,-0.161419915630945,-0.100756729961515,0,0.00384735895733075,0.0282475249,0.0122529567144495 14 | "13",-0.0199465590714709,-0.119619690515738,-0.00473430893335089,-0.0472425117952757,-0.112992316548066,-0.0705120759566191,0,0.00269752969890413,0.01977326743,0.00858166789068165 15 | "14",-0.0139651138656549,-0.0837614349796345,-0.00331188599626776,-0.0330695986372365,-0.079093826897858,-0.0493498145451188,0,0.00189041366736066,0.013841287201,0.00600941569517188 16 | "15",-0.00977681501738159,-0.0586465540563852,-0.00231727723195255,-0.0231486416966464,-0.0553652898680701,-0.0345406381246804,0,0.00132433870322409,0.00968890104069999,0.00420769089931321 17 | "16",-0.00684437556758288,-0.041059227225182,-0.00162158330420774,-0.016204011582821,-0.0387555124667149,-0.024176373277518,0,0.000927550869350528,0.00678223072848999,0.00294592200743183 18 | "17",-0.00479135928976859,-0.0287447123899609,-0.00113485814252637,-0.0113427897831975,-0.0271287654620256,-0.0169224454257599,0,0.000649537256626302,0.00474756150994299,0.0020624090118769 19 | "18",-0.00335409670607634,-0.020122892817187,-0.000794278150924014,-0.00793994390398955,-0.018990090141402,-0.0118452140575598,0,0.000454799351995439,0.0033232930569601,0.00144381540755032 20 | "19",-0.00234793883389095,-0.0140868061067057,-0.000555934668598785,-0.00555795636203449,-0.0132930407208631,-0.00829140595953737,0,0.000318419937770861,0.00232630513987207,0.00101073402059422 21 | "20",-0.00164359203871367,-0.00986114703194207,-0.000389124853944458,-0.00389056731590065,-0.00930511754146934,-0.00580386467425864,0,0.000222923544076006,0.00162841359791045,0.00070754479171532 22 | "21",-0.00115053150487876,-0.00690299047390042,-0.000272372986254813,-0.00272339607512162,-0.00651357690778509,-0.00406264671966028,0,0.000156060977383327,0.00113988951853731,0.000495296530330819 23 | "22",-0.000805380421131652,-0.00483218523219531,-0.000190654029223008,-0.00190637674053473,-0.00455950120382687,-0.00284382401362082,0,0.000109249786973097,0.000797922662976119,0.000346715006606335 24 | "23",-0.000563770394845786,-0.00338257469386649,-0.000133454360659721,-0.00133446346766153,-0.00319164955325801,-0.0019906627515387,0,7.64783310751652e-05,0.000558545864083283,0.000242704147632818 25 | "24",-0.000394641285361708,-0.002367824351035,-9.34163572147369e-05,-0.000934124304574624,-0.00223415405549154,-0.00139345703769056,0,5.35365369999305e-05,0.000390982104858298,0.000169894688289902 26 | "25",-0.000276249884145763,-0.00165748785777575,-6.53906194023962e-05,-0.000653886953061456,-0.00156390752926727,-0.000975416551074471,0,3.74764114390719e-05,0.000273687473400809,0.000118927156402327 27 | "26",-0.000193375401247309,-0.00116024679833737,-4.57730265652059e-05,-0.00045772083767659,-0.00109473511875624,-0.000682789931816252,0,2.62338974238441e-05,0.000191581231380566,8.32494380042778e-05 28 | "27",-0.000135363017217394,-0.000812175354791833,-3.20409191617257e-05,-0.000320404571929611,-0.000766314508759969,-0.000477952141841875,0,1.83639288071219e-05,0.000134106861966396,5.82748165855698e-05 29 | "28",-9.47542278528779e-05,-0.000568524020327921,-2.24285456985463e-05,-0.00022428319329526,-0.000536420119667813,-0.000334566102144773,0,1.28548484561869e-05,9.38748033764774e-05,4.07924745056682e-05 30 | "29",-6.63280162460644e-05,-0.000397967437570923,-1.56999341038119e-05,-0.000156998231826133,-0.000375494065862902,-0.000234196076875914,0,8.99844208625267e-06,6.57123623635342e-05,2.85547825599988e-05 31 | "30",-4.64296391999852e-05,-0.000278577511791944,-1.09899304065402e-05,-0.000109898760591864,-0.000262845837306624,-0.000163937158392802,0,6.298933055357e-06,4.59986536544739e-05,1.99883724927928e-05 32 | "31",-3.25007610602057e-05,-0.000195004407910204,-7.69293979486515e-06,-7.69291315871889e-05,-0.00018399208174813,-0.000114755964086832,0,4.4092646948532e-06,3.21990575581317e-05,1.39918728502221e-05 33 | "32",-2.27505394301275e-05,-0.000136503158931767,-5.38505221803541e-06,-5.38503916902577e-05,-0.000128794455012127,-8.03291518636229e-05,0,3.08649095465824e-06,2.25393402906922e-05,9.79431691288861e-06 34 | "33",-1.59253808806881e-05,-9.55522472145809e-05,-3.76953378713209e-06,-3.76952739578051e-05,-9.01561173827226e-05,-5.62303950180087e-05,0,2.16054644851943e-06,1.57775382034846e-05,6.85602474179033e-06 35 | "34",-1.11477682085415e-05,-6.68865905883997e-05,-2.63867230334038e-06,-2.63866916871969e-05,-6.31092815672751e-05,-3.93612709093105e-05,0,1.5123838724776e-06,1.10442767424392e-05,4.79921875185981e-06 36 | "35",-7.80343852868626e-06,-4.68206220349821e-05,-1.84706995071301e-06,-1.84706841266369e-05,-4.41764967384906e-05,-2.75528868387553e-05,0,1.05866937698956e-06,7.73099371970743e-06,3.35945382319061e-06 37 | "36",-5.46240737087089e-06,-3.27744397399243e-05,-1.29294863453101e-06,-1.29294788542289e-05,-3.09235474893477e-05,-1.92870193704842e-05,0,7.41068892015639e-07,5.4116956037952e-06,2.35161801152058e-06 38 | "37",-3.82368534612709e-06,-2.29421098896232e-05,-9.05063883827365e-07,-9.05063515244109e-06,-2.16464830726792e-05,-1.35009128210406e-05,0,5.18748387301482e-07,3.78818692265664e-06,1.646132775843e-06 39 | "38",-2.67657984664993e-06,-1.6059477991881e-05,-6.33544637348836e-07,-6.33544459116564e-06,-1.51525380354123e-05,-9.45063859392192e-06,0,3.63123948618482e-07,2.65173084585965e-06,1.15229302465032e-06 40 | "39",-1.87360592596164e-06,-1.12416350006583e-05,-4.43481208300294e-07,-4.43481117384792e-06,-1.06067765126561e-05,-6.61544679037007e-06,0,2.54186807713275e-07,1.85621159210175e-06,8.06605156918776e-07 41 | "40",-1.31152416704694e-06,-7.86914474693035e-06,-3.10436822782546e-07,-3.1043678294651e-06,-7.42474345338806e-06,-4.63081257784381e-06,0,1.77930792495673e-07,1.29934811447123e-06,5.6462363049582e-07 42 | "41",-9.18066922483973e-07,-5.50840140167708e-06,-2.17305766979123e-07,-2.17305748950736e-06,-5.19732032966402e-06,-3.24156868014569e-06,0,1.24551566282882e-07,9.09543680129859e-07,3.95236559474796e-07 43 | "42",-6.42646846849004e-07,-3.85588101448064e-06,-1.52114035713367e-07,-1.52114023599381e-06,-3.63812414638787e-06,-2.26909798728414e-06,0,8.71860980980466e-08,6.36680576090901e-07,2.76665601996249e-07 44 | "43",-4.49852788353411e-07,-2.69911667460931e-06,-1.06479822443954e-07,-1.06479812744809e-06,-2.54668677257541e-06,-1.58836848118682e-06,0,6.10302749309843e-08,4.45676403263631e-07,1.93665920542e-07 45 | "44",-3.14896964059841e-07,-1.88938175105235e-06,-7.4535871464196e-08,-7.45358674780761e-07,-1.78268065864629e-06,-1.11185787243784e-06,0,4.27211929027171e-08,3.11973482284542e-07,1.3556614639518e-07 46 | "45",-2.20427875952112e-07,-1.32256720020152e-06,-5.21751118108766e-08,-5.21751064574971e-07,-1.24787634669943e-06,-7.783003908024e-07,0,2.99048317359274e-08,2.18381437599179e-07,9.48963047135937e-08 47 | "46",-1.5429950650514e-07,-9.2579702792861e-07,-3.6522580959674e-08,-3.65225782950063e-07,-8.73513339438858e-07,-5.44810163649601e-07,0,2.09333817641211e-08,1.52867006319425e-07,6.64274126956014e-08 48 | "47",-1.08009678978505e-07,-6.48058040564337e-07,-2.55658044701392e-08,-2.5565803918326e-07,-6.11459205490661e-07,-3.8136697133595e-07,0,1.46533582143227e-08,1.07006904423598e-07,4.64991862342603e-08 49 | "48",-7.56067763951762e-08,-4.53640669473288e-07,-1.78960583941163e-08,-1.78960612995382e-07,-4.2802128508157e-07,-2.66956734495949e-07,0,1.02573572899334e-08,7.49048330965184e-08,3.25494166084389e-08 50 | "49",-5.29247645708608e-08,-3.17548543016244e-07,-1.25272394231558e-08,-1.25272447970559e-07,-2.99614733023645e-07,-1.86869519858135e-07,0,7.18014172423898e-09,5.24333831675629e-08,2.27845967130892e-08 51 | "50",-3.70473318689335e-08,-2.2228394680468e-07,-8.76906630465149e-09,-8.76906880442618e-08,-2.09730122158192e-07,-1.30808508469471e-07,0,5.02610297131723e-09,3.6703368217294e-08,1.59492080288905e-08 52 | "51",-2.59331445207067e-08,-1.55598878226471e-07,-6.13834212435731e-09,-6.13834649776379e-08,-1.4681088567059e-07,-9.15657549782622e-08,0,3.51827230543611e-09,2.56923577521058e-08,1.11644450956745e-08 53 | "52",-1.81531900622645e-08,-1.08919095964666e-07,-4.29684558809301e-09,-4.29684066105551e-08,-1.02767394594139e-07,-6.40958397468694e-08,0,2.46278691884427e-09,1.79846504264741e-08,7.81511789352912e-09 54 | "53",-1.27072463662614e-08,-7.62434781975685e-08,-3.00778074838845e-09,-3.00778291162374e-08,-7.19369674939685e-08,-4.48669212893549e-08,0,1.7239610780595e-09,1.25892552985318e-08,5.47056766723272e-09 55 | "54",-8.89507356660602e-09,-5.33703969907151e-08,-2.10545328606432e-09,-2.10544692791359e-08,-5.03556751851875e-08,-3.14066550544112e-08,0,1.20676194731439e-09,8.81247870897229e-09,3.82941436412382e-09 56 | "55",-6.22655260684724e-09,-3.73593045388532e-08,-1.47381401731663e-09,-1.47380996295965e-08,-3.52487705690407e-08,-2.19844809024039e-08,0,8.44737821359409e-10,6.1687350962806e-09,2.68057596463102e-09 57 | "56",-4.35859126568516e-09,-2.6151547594111e-08,-1.03166925854319e-09,-1.03166697407175e-08,-2.46739295661769e-08,-1.53889345710922e-08,0,5.91315017783867e-10,4.31811456739642e-09,1.8764070799026e-09 58 | "57",-3.05102609843289e-09,-1.83061454883671e-08,-7.22155542479597e-10,-7.22161219712802e-09,-1.72715508561794e-08,-1.0772094327649e-08,0,4.13933817777767e-10,3.0226801971775e-09,1.31347056026346e-09 59 | "58",-2.13572493024117e-09,-1.2814305172526e-08,-5.05511695687638e-10,-5.05507857795351e-09,-1.20898957511884e-08,-7.54033502303741e-09,0,2.89746178439021e-10,2.11587613802425e-09,9.19445513465405e-10 60 | "59",-1.49501522272999e-09,-8.97004692745895e-09,-3.53848355968772e-10,-3.53853613077604e-09,-8.46276382304723e-09,-5.27807797467972e-09,0,2.02833236317979e-10,1.48111329661697e-09,6.43594534407793e-10 61 | "60",-1.04649622301167e-09,-6.27893292914905e-09,-2.47699131218624e-10,-2.47694087462946e-09,-5.92376148134122e-09,-3.69452246573587e-09,0,1.41982606227664e-10,1.03677930763188e-09,4.50532367536603e-10 62 | "61",-7.32547356108171e-10,-4.39528413664902e-09,-1.73381838030746e-10,-1.73384639978735e-09,-4.14647205460028e-09,-2.58600918456864e-09,0,9.93991347564283e-11,7.25745515342316e-10,3.1536444425841e-10 63 | "62",-5.12778708383621e-10,-3.07667225030173e-09,-1.21368994092335e-10,-1.21367360605973e-09,-2.90236723543558e-09,-1.81006321042787e-09,0,6.95790647320393e-11,5.08021860739621e-10,2.20768128848763e-10 64 | "63",-3.58946206091559e-10,-2.1536883387796e-09,-8.49501908495331e-11,-8.49531556212924e-10,-2.03148609045911e-09,-1.2669088000905e-09,0,4.87169332652471e-11,3.55615302517735e-10,1.54529255581572e-10 65 | "64",-2.51265674933165e-10,-1.5075718451385e-09,-5.9470194832025e-11,-5.94668758679973e-10,-1.42190703655842e-09,-8.8671292530762e-10,0,3.40926939457198e-11,2.48930711762414e-10,1.08187128097272e-10 66 | "65",-1.75892633791364e-10,-1.05530029159695e-09,-4.16197574884715e-11,-4.16222611931971e-10,-9.95181714813498e-10,-6.20581364074724e-10,0,2.38755196169116e-11,1.7425149823369e-10,7.57124514341913e-11 67 | "66",-1.2312373343093e-10,-7.38742400585579e-10,-2.91311213031358e-11,-2.91322521661641e-10,-6.96487312268346e-10,-4.34297042772869e-10,0,1.67175301379885e-11,1.21976048763583e-10,5.30066409200474e-11 68 | "67",-8.61755111714047e-11,-5.17041964798182e-10,-2.03919588657745e-11,-2.03870254011917e-10,-4.87410112270936e-10,-3.03934655221383e-10,0,1.17076487393675e-11,8.53832341345081e-11,3.7109489003763e-11 69 | "68",-6.0329519158131e-11,-3.61943808258047e-10,-1.42688977916738e-11,-1.42696965355071e-10,-3.41093819855587e-10,-2.12674322597195e-10,0,8.20021134328996e-12,5.97682638941557e-11,2.59765465310413e-11 70 | "69",-4.21995771660022e-11,-2.53208565226259e-10,-9.98947160317684e-12,-9.98867655255253e-11,-2.38675745833916e-10,-1.48780987530017e-10,0,5.75373082511987e-12,4.1837784725909e-11,1.81896829464668e-11 71 | "70",-2.95319324550292e-11,-1.77180492499929e-10,-6.99732712845521e-12,-6.98996416303999e-11,-1.66966440673377e-10,-1.0405010186787e-10,0,4.02455846426619e-12,2.92864493081363e-11,1.27510579535751e-11 72 | "71",-2.06834549487667e-11,-1.24089627462354e-10,-4.8989658480918e-12,-4.89497331557232e-11,-1.16773257730074e-10,-7.27196081129478e-11,0,2.81025203108243e-12,2.05005145156954e-11,8.92352431235799e-12 73 | "72",-1.44884104713583e-11,-8.68860539071648e-11,-3.42568744225133e-12,-3.42725847701786e-11,-8.16235967704415e-11,-5.07927033766009e-11,0,1.96752336645289e-12,1.43503601609868e-11,6.23593947333375e-12 74 | "73",-1.01585406753202e-11,-6.09290395914286e-11,-2.39747760560121e-12,-2.39697151016571e-11,-5.69655433935168e-11,-3.539391002505e-11,0,1.36973765663129e-12,1.00452521126907e-11,4.3650009720541e-12 75 | "74",-7.11652958784725e-12,-4.26436663758523e-11,-1.67653104807565e-12,-1.67643676718399e-11,-3.97348820513344e-11,-2.46469511466785e-11,0,9.58608192824784e-13,7.03167647888352e-12,3.04626870470694e-12 76 | "75",-4.98490138056695e-12,-2.98649993624167e-11,-1.17447082158563e-12,-1.17128529097954e-11,-2.76445533131664e-11,-1.71196390397199e-11,0,6.67868538251071e-13,4.92217353521846e-12,2.13307901441042e-12 77 | "76",-3.47499806707674e-12,-2.08277839419679e-11,-8.19826121960897e-13,-8.1823436914874e-12,-1.91846538655227e-11,-1.18349774425042e-11,0,4.78263262326806e-13,3.44552147465293e-12,1.48769466021197e-12 78 | "77",-2.4535928844216e-12,-1.46771483855446e-11,-5.6803370656749e-13,-5.71764857681956e-12,-1.33004718350094e-11,-8.14903700074865e-12,0,3.32893435039949e-13,2.41186503225705e-12,1.0462969688943e-12 79 | "78",-1.72084568816899e-12,-1.03028696685215e-11,-3.97131898531371e-13,-3.98570065840431e-12,-9.14823772291129e-12,-5.56221735337203e-12,0,2.32106001085697e-13,1.68830552257993e-12,7.3002533357132e-13 80 | "79",-1.19904086659517e-12,-7.19424519957101e-12,-2.74828940703617e-13,-2.75335310107039e-12,-6.26165785888588e-12,-3.77475828372553e-12,0,1.70176372993325e-13,1.18181386580595e-12,5.06934941789314e-13 81 | "80",-8.54871728961371e-13,-5.09592368302947e-12,-1.8596760048821e-13,-1.88737914186277e-12,-4.2410519540681e-12,-2.53130849614536e-12,0,1.20910226275583e-13,8.27269706064167e-13,3.56143973481535e-13 82 | "81",-5.77315972805081e-13,-3.45279360658424e-12,-1.30223256331855e-13,-1.31006316905768e-12,-2.8421709430404e-12,-1.66533453693773e-12,0,9.5062846483529e-14,5.79088794244917e-13,2.51133482607439e-13 83 | "82",-3.99680288865056e-13,-2.35367281220533e-12,-8.75784258542653e-14,-8.99280649946377e-13,-1.87627691161651e-12,-1.06581410364015e-12,0,7.42461647718073e-14,4.05362155971442e-13,1.82641272337794e-13 84 | "83",-2.88657986402541e-13,-1.73194791841524e-12,-5.83729120585069e-14,-5.99520433297585e-13,-1.21014309684142e-12,-6.55031584528842e-13,0,5.18682319317065e-14,2.83753509180009e-13,1.32619076830314e-13 85 | "84",-1.99840144432528e-13,-1.15463194561016e-12,-3.76760046302184e-14,-3.99680288865056e-13,-7.32747196252603e-13,-3.66373598126302e-13,0,4.21537804662364e-14,1.98627456426006e-13,8.95442365619249e-14 86 | "85",-1.33226762955019e-13,-7.99360577730113e-13,-2.86842371769885e-14,-2.66453525910038e-13,-4.32986979603811e-13,-1.88737914186277e-13,0,2.94902990916057e-14,1.39039219498205e-13,7.08380176432249e-14 87 | "86",-8.88178419700125e-14,-5.21804821573824e-13,-1.6291479114049e-14,-1.22124532708767e-13,-2.1094237467878e-13,-9.99200722162641e-14,0,2.84494650060196e-14,9.73274536487432e-14,4.57817782056547e-14 88 | "87",-5.55111512312578e-14,-3.44169137633799e-13,-8.3794641535779e-15,-8.88178419700125e-14,-8.88178419700125e-14,-2.22044604925031e-14,0,2.79290479632266e-14,6.81292175541202e-14,3.68289291595975e-14 89 | "88",-1.11022302462516e-14,-6.66133814775094e-14,-7.15090339107457e-16,-2.22044604925031e-14,-2.22044604925031e-14,0,0,4.11129463806503e-14,4.76904522878841e-14,2.86441383023341e-14 90 | "89",0,2.22044604925031e-14,-3.37651332978813e-15,0,0,0,0,2.8275992658422e-14,3.33833166015189e-14,4.44894597104385e-14 91 | "90",0,2.22044604925031e-14,-3.19791473888007e-15,0,0,0,0,1.85615411929518e-14,2.33683216210632e-14,3.1473907397302e-14 92 | "91",0,2.22044604925031e-14,-5.94670626851592e-21,0,0,0,0,1.6306400674182e-14,1.63578251347443e-14,1.85615471396581e-14 93 | "92",0,2.22044604925031e-14,-1.60184816315786e-20,0,0,0,0,1.14491749414469e-14,1.1450477594321e-14,1.63064166926636e-14 94 | "93",0,2.22044604925031e-14,-1.78149990830729e-20,0,0,0,0,7.97972798949331e-15,8.01533431602469e-15,1.1449192756446e-14 95 | "94",0,2.22044604925031e-14,-8.09684019783068e-21,0,0,0,0,5.55111512312578e-15,5.61073402121728e-15,7.97973608633351e-15 96 | "95",0,2.22044604925031e-14,5.93995761019756e-21,0,0,0,0,3.98986399474666e-15,3.9275138148521e-15,5.55110918316817e-15 97 | "96",0,2.22044604925031e-14,1.76828102200966e-20,0,0,0,0,2.77555756156289e-15,2.74925967039647e-15,3.98984631193644e-15 98 | "97",0,2.22044604925031e-14,2.29822531442524e-20,0,0,0,0,1.90819582357449e-15,1.92448176927753e-15,2.77553457930975e-15 99 | "98",0,2.22044604925031e-14,2.00071941338895e-20,0,0,0,0,1.38777878078145e-15,1.34713723849427e-15,1.90817581638035e-15 100 | "99",0,2.22044604925031e-14,1.02297340722728e-20,0,0,0,0,8.67361737988404e-16,9.42996066945988e-16,1.38776855104737e-15 101 | "100",0,2.22044604925031e-14,4.16193901193935e-22,0,0,0,0,6.93889390390723e-16,6.60097246862192e-16,8.67361321794502e-16 102 | "101",0,2.22044604925031e-14,-5.36607525051521e-21,0,0,0,0,5.20417042793042e-16,4.62068072803534e-16,6.93894756465973e-16 103 | "102",0,2.22044604925031e-14,-6.77337460037104e-21,0,0,0,0,3.46944695195361e-16,3.23447650962474e-16,5.20423816167643e-16 104 | "103",0,2.22044604925031e-14,-2.56818395232095e-21,0,0,0,0,1.73472347597681e-16,2.26413355673732e-16,3.46947263379314e-16 105 | "104",0,2.22044604925031e-14,3.74102138473759e-21,0,0,0,0,1.73472347597681e-16,1.58489348971612e-16,1.73468606576296e-16 106 | "105",0,2.22044604925031e-14,8.30063399342601e-21,0,0,0,0,1.73472347597681e-16,1.10942544280129e-16,1.73464046963687e-16 107 | "106",0,2.22044604925031e-14,1.01875223554313e-20,0,0,0,0,0,7.76597809960899e-17,1.73462160075325e-16 108 | "107",0,2.22044604925031e-14,8.43366191164247e-21,0,0,0,0,0,5.4361846697263e-17,-8.43366191164247e-21 109 | "108",0,2.22044604925031e-14,4.05181442997841e-21,0,0,0,0,0,3.80532926880841e-17,-4.05181442997841e-21 110 | "109",0,2.22044604925031e-14,4.4026614816868e-22,0,0,0,0,0,2.66373048816588e-17,-4.4026614816868e-22 111 | "110",0,2.22044604925031e-14,-1.4166024168243e-21,0,0,0,0,0,1.86461134171612e-17,1.4166024168243e-21 112 | "111",0,2.22044604925031e-14,-9.58823406275062e-22,0,0,0,0,0,1.30522793920128e-17,9.58823406275062e-22 113 | "112",0,2.22044604925031e-14,8.41727717946092e-22,0,0,0,0,0,9.13659557440898e-18,-8.41727717946092e-22 114 | "113",0,2.22044604925031e-14,2.73023157538095e-21,0,0,0,0,0,6.39561690208629e-18,-2.73023157538095e-21 115 | "114",0,2.22044604925031e-14,4.12938607301659e-21,0,0,0,0,0,4.4769318314604e-18,-4.12938607301659e-21 116 | "115",0,2.22044604925031e-14,4.24580673094573e-21,0,0,0,0,0,3.13385228202228e-18,-4.24580673094573e-21 117 | "116",0,2.22044604925031e-14,2.73493344685907e-21,0,0,0,0,0,2.1936965974156e-18,-2.73493344685907e-21 118 | "117",0,2.22044604925031e-14,7.65157144907462e-22,0,0,0,0,0,1.53558761819092e-18,-7.65157144907462e-22 119 | "118",0,2.22044604925031e-14,-6.59934706468438e-22,0,0,0,0,0,1.07491133273364e-18,6.59934706468438e-22 120 | "119",0,2.22044604925031e-14,-1.1779193438795e-21,0,0,0,0,0,7.52437932913549e-19,1.1779193438795e-21 121 | "120",0,2.22044604925031e-14,-9.36782003962112e-22,0,0,0,0,0,5.26706553039485e-19,9.36782003962112e-22 122 | "121",0,2.22044604925031e-14,-1.27891476623774e-23,0,0,0,0,0,3.68694587127639e-19,1.27891476623774e-23 123 | "122",0,2.22044604925031e-14,9.83590831861681e-22,0,0,0,0,0,2.58086210989347e-19,-9.83590831861681e-22 124 | "123",0,2.22044604925031e-14,1.44247298233408e-21,0,0,0,0,0,1.80660347692543e-19,-1.44247298233408e-21 125 | "124",0,2.22044604925031e-14,1.28028159000118e-21,0,0,0,0,0,1.2646224338478e-19,-1.28028159000118e-21 126 | "125",0,2.22044604925031e-14,6.22642759180301e-22,0,0,0,0,0,8.85235703693461e-20,-6.22642759180301e-22 127 | "126",0,2.22044604925031e-14,-9.54540803696872e-23,0,0,0,0,0,6.19664992585423e-20,9.54540803696872e-23 128 | "127",0,2.22044604925031e-14,-6.04835435039983e-22,0,0,0,0,0,4.33765494809796e-20,6.04835435039983e-22 129 | "128",0,2.22044604925031e-14,-6.85864377709048e-22,0,0,0,0,0,3.03635846366857e-20,6.85864377709048e-22 130 | "129",0,2.22044604925031e-14,-3.78879342930557e-22,0,0,0,0,0,2.125450924568e-20,3.78879342930557e-22 131 | "130",0,2.22044604925031e-14,1.73927223421702e-22,0,0,0,0,0,1.4878156471976e-20,-1.73927223421702e-22 132 | "131",0,2.22044604925031e-14,5.79242214381554e-22,0,0,0,0,0,1.04147095303832e-20,-5.79242214381554e-22 133 | "132",0,2.22044604925031e-14,7.21826212535612e-22,0,0,0,0,0,7.29029667126824e-21,-7.21826212535612e-22 134 | "133",0,2.22044604925031e-14,5.40379278174393e-22,0,0,0,0,0,5.10320766988777e-21,-5.40379278174393e-22 135 | "134",0,2.22044604925031e-14,2.34981722910698e-22,0,0,0,0,0,3.57224536892144e-21,-2.34981722910698e-22 136 | "135",0,2.22044604925031e-14,-1.17196407641907e-22,0,0,0,0,0,2.500571758245e-21,1.17196407641907e-22 137 | "136",0,2.22044604925031e-14,-3.29672263253734e-22,0,0,0,0,0,1.7504002307715e-21,3.29672263253734e-22 138 | "137",0,2.22044604925031e-14,-3.30396012164142e-22,0,0,0,0,0,1.22528016154005e-21,3.30396012164142e-22 139 | "138",0,2.22044604925031e-14,-1.55541586402491e-22,0,0,0,0,0,8.57696113078037e-22,1.55541586402491e-22 140 | "139",0,2.22044604925031e-14,4.82084664160634e-23,0,0,0,0,0,6.00387279154626e-22,-4.82084664160634e-23 141 | "140",0,2.22044604925031e-14,1.87749327086638e-22,0,0,0,0,0,4.20271095408238e-22,-1.87749327086638e-22 142 | "141",0,2.22044604925031e-14,2.15123439060756e-22,0,0,0,0,0,2.94189766785767e-22,-2.15123439060756e-22 143 | "142",0,2.22044604925031e-14,1.37233877270131e-22,0,0,0,0,0,2.05932836750037e-22,-1.37233877270131e-22 144 | "143",0,2.22044604925031e-14,-3.24698798521675e-24,0,0,0,0,0,1.44152985725026e-22,3.24698798521675e-24 145 | "144",0,2.22044604925031e-14,-1.14881018558068e-22,0,0,0,0,0,1.00907090007518e-22,1.14881018558068e-22 146 | "145",0,2.22044604925031e-14,-1.68143532343467e-22,0,0,0,0,0,7.06349630052625e-23,1.68143532343467e-22 147 | "146",0,2.22044604925031e-14,-1.35290307812439e-22,0,0,0,0,0,4.94444741036838e-23,1.35290307812439e-22 148 | "147",0,2.22044604925031e-14,-5.93254505662574e-23,0,0,0,0,0,3.46111318725786e-23,5.93254505662574e-23 149 | "148",0,2.22044604925031e-14,2.49058983994834e-23,0,0,0,0,0,2.4227792310805e-23,-2.49058983994834e-23 150 | "149",0,2.22044604925031e-14,7.7912928579792e-23,0,0,0,0,0,1.69594546175635e-23,-7.7912928579792e-23 151 | "150",0,2.22044604925031e-14,7.67091036387902e-23,0,0,0,0,0,1.18716182322945e-23,-7.67091036387902e-23 152 | "151",0,2.22044604925031e-14,4.16109553643811e-23,0,0,0,0,0,8.31013276260613e-24,-4.16109553643811e-23 153 | "152",0,2.22044604925031e-14,0,0,0,0,0,0,5.81709293382429e-24,0 154 | -------------------------------------------------------------------------------- /ch6/RBC_BK.R: -------------------------------------------------------------------------------- 1 | #================================================== 2 | # Chapter 6, RBC model (linear approximation) 3 | # modified on 2019/10/19 4 | #================================================== 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | alpha <- 0.3 11 | beta <- 0.99 12 | delta <- 0.025 13 | mu <- 1.0 14 | gamma <- 1.0 15 | rho <- 0.9 16 | 17 | Astar <- 1 18 | rstar <- 1/beta + delta - 1 19 | K_L <- (rstar/alpha/Astar)^(1/(alpha-1)) 20 | Y_L <- Astar*K_L^alpha 21 | C_L <- Y_L-delta*K_L 22 | wstar <- (1-alpha)*Astar*K_L^alpha 23 | Lstar <- (wstar/(gamma+1)/mu)^(1/(gamma+1))*C_L^(-1/(gamma+1)) 24 | Kstar <- K_L*Lstar 25 | Ystar <- Y_L*Lstar 26 | Cstar <- C_L*Lstar 27 | Rstar <- rstar+1 28 | 29 | nvar <- 7 30 | Bmat <- matrix(0, nvar, nvar) 31 | Cmat <- matrix(0, nvar, nvar) 32 | 33 | Bmat[2,1] <- 1.0 34 | Bmat[2,5] <- -Rstar*beta 35 | Bmat[6,6] <- Kstar 36 | Bmat[7,7] <- 1.0 37 | 38 | Cmat[1,1] <- 1.0 39 | Cmat[1,2] <- gamma 40 | Cmat[1,4] <- -1.0 41 | Cmat[2,1] <- 1.0 42 | Cmat[3,2] <- -alpha+1.0 43 | Cmat[3,3] <- -1.0 44 | Cmat[3,6] <- alpha 45 | Cmat[3,7] <- 1.0 46 | Cmat[4,2] <- -alpha 47 | Cmat[4,4] <- -1.0 48 | Cmat[4,6] <- alpha 49 | Cmat[4,7] <- 1.0 50 | Cmat[5,2] <- -alpha+1.0 51 | Cmat[5,5] <- -Rstar/(Rstar-1.0) 52 | Cmat[5,6] <- alpha-1.0 53 | Cmat[5,7] <- 1.0 54 | Cmat[6,1] <- -Cstar 55 | Cmat[6,3] <- Ystar 56 | Cmat[6,6] <- -Kstar*(delta-1.0) 57 | Cmat[7,7] <- rho 58 | 59 | A <- solve(Cmat) %*% Bmat 60 | 61 | # Policy/Transition Function を求める関数 62 | # 加藤涼[2007]も参照 63 | 64 | W <- eigen(A)[[2]] 65 | theta <- eigen(A)[[1]] 66 | Q <- solve(W) 67 | 68 | ntheta <- length(theta) 69 | 70 | ## Extract unstable vectors 71 | sjjw <- which(theta - 1.0 < 0) 72 | n <- length(sjjw) 73 | UQ <- Q[sjjw,] 74 | 75 | ## Extract stable vectors 76 | sjw <- setdiff(c(1:ntheta),sjjw) 77 | k <- length(sjw) 78 | SQ <- Q[sjw,] 79 | 80 | ## Extract stable roots 81 | VLL <- theta[sjw] 82 | VL <- diag(1.0/VLL) 83 | 84 | # Elements in Q 85 | PA <- UQ[1:n,1:n] 86 | PB <- UQ[1:n,(n+1):(n+k)] 87 | PC <- SQ[1:k,1:n] 88 | PD <- SQ[1:k,(n+1):(n+k)] 89 | P <- -solve(PA) %*% PB 90 | PE <- PC %*% P + PD 91 | 92 | # Solution 93 | AA <- solve(PE) %*% VL %*% PE 94 | 95 | # funcition for simulation 96 | rbc_sim <- function(AA, P, len_t, S_0){ 97 | Ss <- S_0 98 | S <- matrix(0, nrow=len_t-1, ncol=ncol(AA)) 99 | for (i in 1:(len_t-1)){ 100 | q <- AA %*% Ss 101 | S[i,] <- t(q) 102 | Ss <- S[i,] 103 | } 104 | SY <- rbind(t(S1), S) 105 | X <- t(P %*% t(SY)) 106 | return(list(X, SY)) 107 | } 108 | 109 | # Time span 110 | nsim <- 100 111 | 112 | # Initial Values 113 | S1 <- matrix(c(0, 1), ncol=1) 114 | 115 | # SIMULATION 116 | simrslt <- rbc_sim(AA, P, nsim, S1) 117 | X <- simrslt[[1]] 118 | SY <- simrslt[[2]] 119 | 120 | # C,L,Y,w,R,K,A 121 | par(mfrow=c(2,2), ps = 15, mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 122 | plot(cbind(0:nsim, c(0, X[, 1])), typ = "l", col = 4, lwd = 1, xlab = "", ylab = "", main = expression(C[t])) 123 | plot(cbind(0:nsim, c(0, SY[, 1])), typ = "l", col = 4, lwd = 1, xlab = "", ylab = "", main = expression(K[t])) 124 | plot(cbind(0:nsim, c(0, X[, 2])), typ = "l", col = 4, lwd = 1, xlab = "", ylab = "", main = expression(L[t])) 125 | plot(cbind(0:nsim, c(0, SY[, 2])), typ = "l", col = 4, lwd = 1, xlab = "", ylab = "", main = expression(A[t])) 126 | dev.copy2eps(file= figpath %+% "bk_rbc_ckla.eps") 127 | 128 | -------------------------------------------------------------------------------- /ch6/RBC_PolIter_Chebyshev.R: -------------------------------------------------------------------------------- 1 | #================================================== 2 | # Chapter 6, RBC model (Chebyshev approximation) 3 | # modified on 2019/10/19 4 | #================================================== 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | beta <- 0.99 11 | alpha <- 0.3 12 | gamma <- 1.0 13 | delta <- 0.025 14 | rho <- 0.9 15 | mu <- 1.0 16 | 17 | r_ss <- 1/beta-1+delta 18 | k_l <- (r_ss/alpha)^(1/(alpha-1)) 19 | w_ss <- (1-alpha)*(k_l)^alpha 20 | c_l <- k_l^alpha-delta*k_l 21 | l_ss <- ((w_ss/mu/(1+gamma)) * c_l^(-1))^(1/(gamma+1)) 22 | k_ss <- k_l*l_ss 23 | c_ss <- c_l*l_ss 24 | 25 | U <- function (x) log(x[1]) - mu * x[2]^(gamma+1) 26 | 27 | g <- function (s, x, epsilon) { 28 | wt <- (1-alpha) * s[1]^alpha / x[2]^alpha * s[2] 29 | rt <- alpha * x[2]^(1-alpha) / s[1]^(1-alpha) * s[2] 30 | s1 <- x[2] * wt + s[1] * rt + (1 - delta) * s[1] - x[1] 31 | s2 <- exp(rho * log(s[2]) + epsilon) 32 | c(s1, s2) 33 | } 34 | 35 | y <- 0 36 | for(i in 0:500) 37 | y <- y + beta^i * U(c(c_ss,l_ss)) 38 | 39 | #--------------------------------------- 40 | # チェビシェフ近似補間(2次) 41 | #--------------------------------------- 42 | 43 | library(nleqslv) # nleqslv 44 | 45 | xj <- function(n = 10){ 46 | -cos(0.5*(2*(1:n)-1)*pi/n) 47 | } 48 | 49 | trans0 <- function(x, a = -1, b = 1) { 50 | y <- (x-a)/(b-a)*2-1 51 | y 52 | } 53 | 54 | trans <- function(x, a = -1, b = 1) { 55 | y <- (x-a)/(b-a)*2-1 56 | y[which(y < -1)] <- -1 57 | y[which(y > 1)] <- 1 58 | y 59 | } 60 | 61 | rev <- function(y, a = -1, b = 1) (y+1)*(b-a)*0.5+a 62 | 63 | fn2 <- function(x, cc, nt){ 64 | size <- dim(x) 65 | lTk <- vector("list", size[2]) 66 | for (i in 1:size[2]){ 67 | Tk <- matrix(1, size[1], 1) 68 | Tk <- cbind(Tk, x[, i]) 69 | for (k in 2:(nt-1)) 70 | Tk <- cbind(Tk, 2*x[, i]*Tk[, k]-Tk[, k-1]) 71 | lTk[[i]] <- Tk 72 | } 73 | Tkk <- c() 74 | for (i in 1:size[1]) { 75 | rTk <- lTk[[1]][i,] 76 | for (k in 2:size[2]) 77 | rTk <- lTk[[k]][i,] %x% rTk 78 | Tkk <- rbind(Tkk, rTk) 79 | } 80 | rownames(Tkk) <- NULL 81 | Tkk %*% cc 82 | } 83 | 84 | xj2 <- function(n = 10){ 85 | as.matrix(expand.grid(xj(n),xj(n))) 86 | } 87 | 88 | trans2 <- function(x, a, b) cbind(trans(x[, 1], a[1], b[1]), trans(x[, 2], a[2], b[2])) 89 | rev2 <- function(y, a, b) cbind(rev(y[, 1], a[1], b[1]), rev(y[, 2], a[2], b[2])) 90 | 91 | cheb2x <- function(x, coef, a, b, n, vc, z) { 92 | ans <- fn2(trans2(matrix(x, 1), a, b), coef, n) 93 | ans 94 | } 95 | 96 | #--------------------------------------- 97 | # Policy Iteration 98 | #--------------------------------------- 99 | 100 | getcoef <- function(nt, f) { 101 | ngrid <- nt*nt 102 | at <- c(1.0, 0.90) 103 | bt <- c(30.0, 1.10) 104 | 105 | node <- cbind(rev(xj(nt), at[1], bt[1]), rev(xj(nt), at[2], bt[2])) 106 | xjgrid <- rev2(xj2(nt), at, bt) 107 | apxfun <- function(x, coef) fn2(trans2(x, at, bt), coef, nt) 108 | 109 | niter <- 1000 110 | eps <- 0.001 111 | 112 | # initialization 113 | cc <- rep(0, ngrid) 114 | v <- rep(0, ngrid) 115 | coef1 <- rep(0, ngrid) 116 | coef2 <- rep(0, ngrid) 117 | 118 | hl <- function(ct, s) 119 | ((1-alpha)*s[1]^alpha*s[2]/(gamma+1)/mu/ct)^(1/(alpha+gamma)) 120 | 121 | for(iter in 1:niter) { 122 | print(iter) 123 | v1 <- c(v) 124 | c1 <- c(cc) 125 | 126 | for(i in 1:ngrid) { 127 | obj <- function(ct) { 128 | st <- c(xjgrid[i, ]) 129 | lt <- hl(ct, st) 130 | xt <- c(ct, lt) 131 | sa <- matrix(g(st,xt , 0), 1) 132 | - U(xt) - beta*f(sa) 133 | } 134 | opt <- optimize(obj, c(0.001, (1 - delta)*xjgrid[i, 1])) 135 | cc[i] <- opt$minimum 136 | } 137 | fobj1 <- function(coef) cc - apxfun(xjgrid, coef) 138 | coef1 <- nleqslv(coef1, fobj1)$x 139 | hc <- function(x) cheb2x(x, coef1, at, bt, nt, node, cc) 140 | 141 | for(i in 1:ngrid) { 142 | st <- c(xjgrid[i, ]) 143 | ct <- max(min(hc(st), (1 - delta) * st[1]), 0.1) 144 | xt <- c(ct, hl(ct, st)) 145 | y <- U(xt) 146 | for(k in 1:500) { 147 | st <- g(st, xt, 0) 148 | ct <- max(min(hc(st), (1 - delta) * st[1]), 0.1) 149 | xt <- c(ct, hl(ct, st)) 150 | y <- y + beta^k * U(xt) 151 | } 152 | v[i] <- y 153 | } 154 | if (identical(abs(c(cc) - c1) < eps ,rep(T, nt*nt))) break 155 | 156 | fobj2 <- function(coef) v - apxfun(xjgrid, coef) 157 | coef2 <- nleqslv(coef2, fobj2)$x 158 | f <- function(x) cheb2x(x, coef2, at, bt, nt, node, v) 159 | 160 | persp(node[, 1], node[, 2], matrix(v, nt, nt)) 161 | print(abs(c(cc) - c1)) 162 | } 163 | return(list(coef1, coef2, cc)) 164 | } 165 | 166 | f <- function (x) -45 + sqrt(x[1]) + sqrt(x[2]) 167 | at <- c(1.0, 0.90) 168 | bt <- c(30.0, 1.10) 169 | nt1 <- 10 170 | coefset1 <- getcoef(10, f) 171 | 172 | f2 <- function(x) cheb2x(x, coefset1[[2]], at, bt, nt1) 173 | nt2 <- 15 174 | 175 | coefset2 <- getcoef(nt2, f2) 176 | hc <- function(x) cheb2x(x, coefset2[[1]], at, bt, nt2) 177 | hl <- function(ct, s) 178 | ((1-alpha)*s[1]^alpha*s[2]/(gamma+1)/mu/ct)^(1/(alpha+gamma)) 179 | cc <- coefset2[[3]] 180 | 181 | #--------------------------------------- 182 | # Plot 183 | #--------------------------------------- 184 | 185 | nt <- nt2 186 | node <- cbind(rev(xj(nt), at[1], bt[1]), rev(xj(nt), at[2], bt[2])) 187 | 188 | st <- c(k_ss, 1.0) 189 | kt <- c(k_ss) 190 | for (t in 1:10000) { 191 | ct <- hc(st) 192 | lt <- hl(ct, st) 193 | st <- g(st, c(ct, lt), 0) 194 | kt[t+1] <- st[1] 195 | } 196 | k_sn <- kt[t+1] 197 | 198 | nsim <- 101 199 | X <- matrix(NA, nsim, 4) 200 | X[1, 3:4] <- c(k_sn, 1.0) 201 | X[1, 1] <- hc(X[1, 3:4]) 202 | X[1, 2] <- hl(X[1, 1], X[1, 3:4]) 203 | X[2, 3:4] <- g(X[1, 3:4], X[1, 1:2], 0.01) 204 | 205 | for (i in 2:nsim) { 206 | X[i, 1] <- hc(X[i, 3:4]) 207 | X[i, 2] <- hl(X[i, 1], X[i, 3:4]) 208 | if (i < nsim) 209 | X[i+1, 3:4] <- g(X[i, 3:4], X[i, 1:2], 0) 210 | } 211 | 212 | if (.Platform$OS.type == "windows") windows(7, 7) 213 | par(ps = 12, mai = c(0.85, 0.68, 0.68, 0.35)*0.3) 214 | persp(node[, 1], node[, 2], matrix(cc, nt, nt), 215 | theta = -30, phi = 30, expand = 0.5, ticktype = "detailed", 216 | col = "lightgray", border = "red", xlab = "K", ylab = "A", zlab = "C") 217 | 218 | dev.copy2eps(file= figpath %+% "polit_rbc_pol.eps") 219 | 220 | par(mfrow=c(2,2), ps = 15, mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 221 | plot(cbind(0:(nsim-1), (log(X[, 1])-log(c_ss))*100), typ = "l", col = 2, lwd = 1, xlab = "", ylab = "", main = expression(C[t])) 222 | plot(cbind(0:(nsim-1), (log(X[, 3])-log(k_ss))*100), typ = "l", col = 2, lwd = 1, xlab = "", ylab = "", main = expression(K[t])) 223 | plot(cbind(0:(nsim-1), (log(X[, 2])-log(l_ss))*100), typ = "l", col = 2, lwd = 1, xlab = "", ylab = "", main = expression(L[t])) 224 | plot(cbind(0:(nsim-1), log(X[, 4])*100), typ = "l", col = 2, lwd = 1, xlab = "", ylab = "", main = expression(A[t])) 225 | dev.copy2eps(file= figpath %+% "polit_rbc_ckla.eps") 226 | 227 | -------------------------------------------------------------------------------- /ch6/Ramsey_PolIter_Chebyshev.R: -------------------------------------------------------------------------------- 1 | #================================================== 2 | # Chapter 6, Ramsey model (Chebyshev approximation) 3 | # modified on 2019/10/19 4 | #================================================== 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | beta <- 0.99 11 | alpha <- 0.3 12 | delta <- 0.25 13 | 14 | Kss <- ((1/beta+delta-1)/alpha)^(1/(alpha-1)) 15 | Css <- Kss^alpha - delta*Kss 16 | 17 | U <- function (C) log(C) 18 | g <- function (K, C) K^alpha + (1-delta)*K - C 19 | 20 | y <- 0 21 | for(i in 0:200) 22 | y <- y + beta^i * U(Css) 23 | 24 | #--------------------------------------- 25 | # チェビシェフ近似補間(1次) 26 | #--------------------------------------- 27 | 28 | library(nleqslv) # nleqslv 29 | 30 | xj <- function(n = 10){ 31 | -cos(0.5*(2*(1:n)-1)*pi/n) 32 | } 33 | 34 | trans0 <- function(x, a = -1, b = 1) { 35 | y <- (x-a)/(b-a)*2-1 36 | y 37 | } 38 | 39 | trans <- function(x, a = -1, b = 1) { 40 | y <- (x-a)/(b-a)*2-1 41 | y[which(y < -1)] <- -1 42 | y[which(y > 1)] <- 1 43 | y 44 | } 45 | 46 | rev <- function(y, a = -1, b = 1) (y+1)*(b-a)*0.5+a 47 | 48 | fn <- function(x, cc, nt){ 49 | size <- length(x) 50 | Tk <- matrix(1, size[1], 1) 51 | Tk <- cbind(Tk, x) 52 | for (k in 2:(nt-1)) 53 | Tk <- cbind(Tk, 2*x*Tk[, k]-Tk[, k-1]) 54 | Tk %*% cc 55 | } 56 | 57 | cheb <- function(x, coef, a, b, n) { 58 | fn(trans(matrix(x, 1), a, b), coef, n) 59 | } 60 | 61 | #--------------------------------------- 62 | # Policy Iteration 63 | #--------------------------------------- 64 | 65 | nt <- 20 66 | at <- 0.5 67 | bt <- 3.0 68 | 69 | node <- rev(xj(nt), at[1], bt[1]) 70 | apxfun <- function(x, coef) fn(trans(x, at, bt), coef, nt) 71 | 72 | niter <- 1000 73 | eps <- 0.0001 74 | 75 | # initialization 76 | f <- function (x) -45 + sqrt(x) 77 | cc <- rep(0, nt) 78 | v <- rep(0, nt) 79 | coef <- rep(0, nt) 80 | coef2 <- rep(0, nt) 81 | 82 | for(iter in 1:niter) { 83 | print(iter) 84 | v1 <- c(v) 85 | c1 <- c(cc) 86 | coef1 <- coef 87 | 88 | for(i in 1:nt) { 89 | obj <- function(ct) { 90 | st <- node[i] 91 | sa <- matrix(g(st,ct), 1) 92 | return(-U(ct)-beta*f(sa)) 93 | } 94 | opt <- optimize(obj, c(0.001, min((1 - delta) *node[i]+node[i]^alpha,bt*0.99))) 95 | cc[i] <- opt$minimum 96 | } 97 | fobj1 <- function(coef) cc - apxfun(node, coef) 98 | coef1 <- nleqslv(coef1, fobj1)$x 99 | hc <- function(x) cheb(x, coef1, at, bt, nt) 100 | 101 | for(i in 1:nt) { 102 | st <- node[i] 103 | ct <- max(min(hc(st), st), 0.001) 104 | y <- U(ct) 105 | for(k in 1:1000) { 106 | st <- g(st, ct) 107 | ct <- max(min(hc(st), st), 0.001) 108 | y <- y + beta^k * U(ct) 109 | } 110 | v[i] <- y 111 | } 112 | if (identical(abs(c(cc) - c1) < eps ,rep(T, nt))) break 113 | 114 | fobj2 <- function(coef) v - apxfun(node, coef) 115 | coef2 <- nleqslv(coef2, fobj2)$x 116 | f <- function(x) cheb(x, coef2, at, bt, nt) 117 | 118 | plot(cbind(node, v), typ = "l") 119 | print(abs(c(cc) - c1)) 120 | } 121 | 122 | #--------------------------------------- 123 | # Plot 124 | #--------------------------------------- 125 | 126 | if (.Platform$OS.type == "windows") windows(7, 7) 127 | par(ps = 20) 128 | par(mai = c(0.85, 1, 0.25, 0.1)) 129 | plot(cbind(node, cc), typ = "l", xlab = expression(K[t]), ylab = expression(C[t])) 130 | dev.copy2eps(file= figpath %+% "polit_ram_ct.eps") 131 | 132 | plot(cbind(node, v), typ = "l", xlab = expression(K[t]), ylab = expression(V(K[t]))) 133 | dev.copy2eps(file= figpath %+% "polit_ram_v.eps") 134 | 135 | #-------------------- 136 | # シミュレーション 137 | #-------------------- 138 | 139 | K01 <- Kss*0.5 140 | KK <- K01 141 | CC <- c() 142 | 143 | for(i in 1:31) { 144 | CC[i] <- hc(KK[i]) 145 | KK[i+1] <- g(KK[i], CC[i]) 146 | } 147 | 148 | par(ps = 15) 149 | par(mai = c(0.85*0.75, 0.68*0.75, 0.68*0.75, 0.5)) 150 | par(mfrow = c(2,1)) 151 | plot(cbind(1:31, CC[1:31]), typ = "l", main = expression(C[t]), xlab = "", ylab = "") 152 | axis(side=4, labels = c(expression(C[1]),expression("C*")), at = c(CC[1],Css), las = 2) 153 | 154 | plot(cbind(1:31, KK[1:31]), typ = "l", main = expression(K[t]), xlab = "", ylab = "") 155 | axis(side=4, labels = c(expression(K[1]),expression("K*")), at = c(KK[1],Kss), las = 2) 156 | 157 | dev.copy2eps(file= figpath %+% "polit_ram_ck.eps") 158 | 159 | -------------------------------------------------------------------------------- /ch6/figures6.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 6, Dynamic programming 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | xj <- function(n = 9){ 11 | -cos(0.5*(2*(1:n)-1)*pi/n) 12 | } 13 | 14 | phi <- function(x, j) { 15 | if (j == 0) { 16 | y <- rep(1, length(x)) 17 | } else if (j == 1) { 18 | y <- x 19 | } else { 20 | y <- 2*x*phi(x, j-1) - phi(x, j-2) 21 | } 22 | return(y) 23 | } 24 | nodes <- seq(-1,1,length = 100) 25 | 26 | if (.Platform$OS.type == "windows") windows(7,2.5) 27 | par(ps = 10, mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 28 | plot(cbind(xj(),rep(0,9)),main = expression(z["i"]), xlab = "", ylab = "",axes = F) 29 | axis(1) 30 | axis(2, labels = "", at = 0) 31 | box() 32 | dev.copy2eps(file= figpath %+% "chebnode.eps") 33 | 34 | if (.Platform$OS.type == "windows") windows(7,7) 35 | par(mfrow = c(3,3), ps = 15, mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 36 | 37 | ff <- function(x) phi(x, j=0) 38 | curve(ff, -1, 1, main = expression(paste(phi[0],"(z)"))) 39 | 40 | ff <- function(x) phi(x, j=1) 41 | curve(ff, -1, 1, main = expression(paste(phi[1],"(z)"))) 42 | 43 | ff <- function(x) phi(x, j=2) 44 | curve(ff, -1, 1, main = expression(paste(phi[2],"(z)"))) 45 | 46 | ff <- function(x) phi(x, j=3) 47 | curve(ff, -1, 1, main = expression(paste(phi[3],"(z)"))) 48 | 49 | ff <- function(x) phi(x, j=4) 50 | curve(ff, -1, 1, main = expression(paste(phi[4],"(z)"))) 51 | 52 | ff <- function(x) phi(x, j=5) 53 | curve(ff, -1, 1, main = expression(paste(phi[5],"(z)"))) 54 | 55 | ff <- function(x) phi(x, j=6) 56 | curve(ff, -1, 1, main = expression(paste(phi[6],"(z)"))) 57 | 58 | ff <- function(x) phi(x, j=7) 59 | curve(ff, -1, 1, main = expression(paste(phi[7],"(z)"))) 60 | 61 | ff <- function(x) phi(x, j=8) 62 | curve(ff, -1, 1, main = expression(paste(phi[8],"(z)"))) 63 | 64 | dev.copy2eps(file= figpath %+% "chebfun.eps") 65 | 66 | -------------------------------------------------------------------------------- /ch7/NK_commit.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 7, Optimal MP (commitment) 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | library(nleqslv) 11 | 12 | #---------------------------------------- 13 | 14 | beta <- 0.99 15 | gamma <- 5 16 | eta <- 10 17 | varrho <- 0.9 18 | phi_pi <- 1.5 19 | phi_y <- 0.5 20 | 21 | kappa <- (1-varrho)*(1-varrho*beta)*(gamma+1)/varrho 22 | lambda <- (1-varrho)*(1-varrho*beta)/eta/varrho*(1+gamma) 23 | 24 | para <- list(beta = beta, kappa = kappa, lambda = lambda) 25 | 26 | #---------------------------------------- 27 | 28 | objfun0 <- function(X, maxT, X0,p = para) { 29 | 30 | nvar <- 4 31 | XX <- matrix(X, maxT, nvar) 32 | x <- c(XX[, 1], 0) 33 | ppi <- c(XX[, 2], 0) 34 | ii <- c(XX[, 3], 0) 35 | psi <- c(XX[, 4], 0) 36 | 37 | e <- c(X0$e, rep(0, maxT)) 38 | 39 | ret <- matrix(NA, maxT, nvar) 40 | for(t in 1:maxT) { 41 | ret[t, 1] <- -ppi[t] + p$beta*ppi[t+1]+kappa*x[t]+e[t] 42 | ret[t, 2] <- -x[t] + x[t+1]-(ii[t]-ppi[t+1]) 43 | if (t == 1) { 44 | ret[t, 3] <- ppi[t]+psi[t] 45 | } else { 46 | ret[t, 3] <- ppi[t]+psi[t]-psi[t-1] 47 | } 48 | ret[t, 4] <- p$lambda*x[t]-p$kappa*psi[t] 49 | } 50 | return(c(ret)) 51 | } 52 | 53 | rsltfun <- function(rslt, maxT, X0, p = para) { 54 | 55 | nvar <- 4 56 | XX <- matrix(rslt, maxT, nvar) 57 | x <- c(XX[, 1], 0) 58 | ppi <- c(XX[, 2], 0) 59 | ii <- c(XX[, 3], 0) 60 | psi <- c(XX[, 4], 0) 61 | 62 | e <- c(X0$e, rep(0, maxT)) 63 | r <- ii-c(ppi[-1],0) 64 | 65 | dev <- list(x = x, ppi = ppi, psi = psi, ii = ii, e = e, r = r) 66 | 67 | cumbeta <- c(1, cumprod(rep(p$beta, maxT))) 68 | W <- -0.5*sum(cumbeta*ppi^2+p$lambda*cumbeta*x^2) 69 | 70 | 71 | return(list(dev = dev, W = W)) 72 | } 73 | 74 | #---------------------------------------- 75 | 76 | maxT <- 150 77 | Xinit <- c(rep(0, maxT), rep(0, maxT), rep(0, maxT), rep(0, maxT)) 78 | 79 | e0 <- 1 80 | X0 <- list(e = e0) 81 | 82 | objfun1 <- function(X) objfun0(X, maxT, X0) 83 | rslt1 <- nleqslv(Xinit, objfun1, control=list(maxit=10^4)) 84 | print(rslt1) 85 | 86 | X1 <- rsltfun(rslt1$x, maxT, X0) 87 | X1[[1]] 88 | X1[[2]]/10^4 89 | 90 | par(ps = 15) 91 | par(mfrow = c(3, 2)) 92 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 93 | 94 | maxT2 <- 10 95 | plot(cbind(0:maxT2, c(0, X1[[1]]$x[1:maxT2])), main = expression(x[t]), 96 | xlab = "", ylab = "", typ = "l") 97 | plot(cbind(0:maxT2, c(0, X1[[1]]$ii[1:maxT2])), main = expression(i[t]), 98 | xlab = "", ylab = "", typ = "l") 99 | plot(cbind(0:maxT2, c(0, X1[[1]]$ppi[1:maxT2])), main = expression(pi[t]), 100 | xlab = "", ylab = "", typ = "l") 101 | plot(cbind(0:maxT2, c(0, X1[[1]]$psi[1:maxT2])), main = expression(psi[t]), 102 | xlab = "", ylab = "", typ = "l") 103 | plot(cbind(0:maxT2, c(0, X1[[1]]$e[1:maxT2])), main = expression(e[t]), 104 | xlab = "", ylab = "", typ = "l") 105 | 106 | write.csv(X1[[1]], "nkm_commit.csv", row.names = F) 107 | dev.copy2eps(file= figpath %+% "nkm_commit.eps") 108 | 109 | 110 | -------------------------------------------------------------------------------- /ch7/NK_discretion.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 7, Optimal MP (discretion) 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | library(nleqslv) 11 | 12 | #---------------------------------------- 13 | 14 | beta <- 0.99 15 | gamma <- 5 16 | eta <- 10 17 | varrho <- 0.9 18 | phi_pi <- 1.5 19 | phi_y <- 0.5 20 | 21 | kappa <- (1-varrho)*(1-varrho*beta)*(gamma+1)/varrho 22 | lambda <- (1-varrho)*(1-varrho*beta)/eta/varrho*(1+gamma) 23 | 24 | para <- list(beta = beta, kappa = kappa, lambda = lambda) 25 | 26 | #---------------------------------------- 27 | 28 | objfun0 <- function(X, maxT, X0, p = para) { 29 | 30 | nvar <- 3 31 | XX <- matrix(X, maxT, nvar) 32 | x <- c(XX[, 1], 0) 33 | ppi <- c(XX[, 2], 0) 34 | ii <- c(XX[, 3], 0) 35 | 36 | e <- c(X0$e, rep(0, maxT)) 37 | 38 | ret <- matrix(NA, maxT, nvar) 39 | for(t in 1:maxT) { 40 | ret[t, 1] <- -ppi[t] + p$beta*ppi[t+1]+kappa*x[t]+e[t] 41 | ret[t, 2] <- -x[t] + x[t+1]-(ii[t]-ppi[t+1]) 42 | ret[t, 3] <- p$lambda*x[t]+p$kappa*ppi[t] 43 | } 44 | return(c(ret)) 45 | } 46 | 47 | rsltfun <- function(rslt, maxT, X0, p = para) { 48 | 49 | nvar <- 3 50 | XX <- matrix(rslt, maxT, nvar) 51 | x <- c(XX[, 1], 0) 52 | ppi <- c(XX[, 2], 0) 53 | ii <- c(XX[, 3], 0) 54 | 55 | e <- c(X0$e, rep(0, maxT)) 56 | r <- ii-c(ppi[-1],0) 57 | 58 | dev <- list(x = x, ppi = ppi, ii = ii, e = e, r = r) 59 | 60 | cumbeta <- c(1, cumprod(rep(p$beta, maxT))) 61 | W <- -0.5*sum(cumbeta*ppi^2+p$lambda*cumbeta*x^2) 62 | 63 | 64 | return(list(dev = dev, W = W)) 65 | } 66 | 67 | #---------------------------------------- 68 | 69 | maxT <- 150 70 | Xinit <- c(rep(0, maxT), rep(0, maxT), rep(0, maxT)) 71 | 72 | e0 <- 1 73 | X0 <- list(e = e0) 74 | 75 | objfun1 <- function(X) objfun0(X, maxT, X0) 76 | rslt1 <- nleqslv(Xinit, objfun1, control=list(maxit=10^4)) 77 | print(rslt1) 78 | 79 | X1 <- rsltfun(rslt1$x, maxT, X0) 80 | X1[[1]] 81 | X1[[2]]/10^4 82 | 83 | par(ps = 15) 84 | par(mfrow = c(3, 2)) 85 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 86 | 87 | maxT2 <- 10 88 | plot(cbind(0:maxT2, c(0, X1[[1]]$x[1:maxT2])), main = expression(x[t]), 89 | xlab = "", ylab = "", typ = "l") 90 | plot(cbind(0:maxT2, c(0, X1[[1]]$ii[1:maxT2])), main = expression(i[t]), 91 | xlab = "", ylab = "", typ = "l") 92 | plot(cbind(0:maxT2, c(0, X1[[1]]$ppi[1:maxT2])), main = expression(pi[t]), 93 | xlab = "", ylab = "", typ = "l") 94 | plot(cbind(0:maxT2, c(0, -X1[[1]]$ppi[1:maxT2])), main = expression(psi[t]), 95 | xlab = "", ylab = "", typ = "l") 96 | plot(cbind(0:maxT2, c(0, X1[[1]]$e[1:maxT2])), main = expression(e[t]), 97 | xlab = "", ylab = "", typ = "l") 98 | 99 | write.csv(X1[[1]], "nkm_discretion.csv", row.names = F) 100 | 101 | Y1 <- read.csv("nkm_commit.csv") 102 | 103 | par(ps = 15) 104 | par(mfrow = c(3, 2)) 105 | par(mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 106 | 107 | maxT2 <- 10 108 | plot(cbind(0:maxT2, c(0, X1[[1]]$x[1:maxT2])), main = expression(x[t]), 109 | xlab = "", ylab = "", typ = "l") 110 | lines(cbind(0:maxT2, c(0, Y1$x[1:maxT2])), lty = 2) 111 | plot(cbind(0:maxT2, c(0, X1[[1]]$ii[1:maxT2])), main = expression(i[t]), 112 | xlab = "", ylab = "", typ = "l") 113 | lines(cbind(0:maxT2, c(0, Y1$ii[1:maxT2])), lty = 2) 114 | plot(cbind(0:maxT2, c(0, X1[[1]]$ppi[1:maxT2])), main = expression(pi[t]), 115 | xlab = "", ylab = "", typ = "l", ylim = range(X1[[1]]$ppi[1:maxT2],Y1$ppi[1:maxT2])) 116 | lines(cbind(0:maxT2, c(0, Y1$ppi[1:maxT2])), lty = 2) 117 | plot(cbind(0:maxT2, c(0, -X1[[1]]$ppi[1:maxT2])), main = expression(psi[t]), 118 | xlab = "", ylab = "", typ = "l", ylim = range(-X1[[1]]$ppi[1:maxT2],Y1$psi[1:maxT2])) 119 | lines(cbind(0:maxT2, c(0, Y1$psi[1:maxT2])), lty = 2) 120 | plot(cbind(0:maxT2, c(0, X1[[1]]$e[1:maxT2])), main = expression(e[t]), 121 | xlab = "", ylab = "", typ = "l") 122 | 123 | dev.copy2eps(file= figpath %+% "nkm_discretion.eps") 124 | 125 | -------------------------------------------------------------------------------- /ch7/figures7.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 7, Other figures 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | beta <- 0.99 11 | gamma <- 5 12 | varrho <- 0.9 13 | 14 | kappa <- (1-varrho)*(1-varrho*beta)*(gamma+1)/varrho 15 | 16 | phi_y1 <- -1 17 | phi_y2 <- 3 18 | 19 | phi_pi1 <- -(1-beta)*phi_y1/kappa+1 20 | phi_pi2 <- -(1-beta)*phi_y2/kappa+1 21 | 22 | if (.Platform$OS.type == "windows") windows(7, 7) 23 | par(ps = 15) 24 | par(mai = c(0.68*1.5, 0.68*1.5, 0.34, 0.34)) 25 | 26 | plot(NA, xlim = c(0, 2), ylim = c(0, 2), main = "", xlab = expression(phi[y]), ylab = expression(phi[pi])) 27 | polygon(c(phi_y1, phi_y2, phi_y2, phi_y1, phi_y1), c(phi_pi1, phi_pi2, -1, -1, phi_pi1), col = "grey", border = "grey") 28 | box() 29 | 30 | text(1, 0.4, "indeterminate") 31 | text(1, 1.5, "determinate") 32 | 33 | dev.copy2eps(file= figpath %+% "nkm_indet.eps") 34 | 35 | 36 | -------------------------------------------------------------------------------- /ch7/nkm_commit.csv: -------------------------------------------------------------------------------- 1 | "x","ppi","psi","ii","e","r" 2 | -4.38013820601573,0.438013820601573,-0.438013820601573,2.21541942207227,1,2.46157713563586 3 | -1.91856107037987,-0.246157713563586,-0.191856107037987,0.970384325296806,0,1.07820480588534 4 | -0.840356264494532,-0.107820480588534,-0.0840356264494532,0.425041745775134,0,0.472268606416816 5 | -0.368087658077716,-0.0472268606416816,-0.0368087658077716,0.186174158982129,0,0.20686017664681 6 | -0.161227481430906,-0.020686017664681,-0.0161227481430906,0.0815468546730471,0,0.0906076163033857 7 | -0.0706198651275204,-0.00906076163033857,-0.00706198651275204,0.0357186493733826,0,0.0396873881926474 8 | -0.030932476934873,-0.00396873881926474,-0.0030932476934873,0.0156452620787633,0,0.0173836245319592 9 | -0.0135488524029138,-0.00173836245319592,-0.00135488524029138,0.00685284101743203,0,0.0076142677971467 10 | -0.00593458460576707,-0.00076142677971467,-0.000593458460576707,0.00300163907602058,0,0.00333515452891175 11 | -0.00259943007685532,-0.000333515452891175,-0.000259943007685532,0.00131475939975475,0,0.00146084377750528 12 | -0.00113858629935004,-0.000146084377750528,-0.000113858629935004,0.000575882787858409,0,0.000639869764287121 13 | -0.000498716535062917,-6.39869764287121e-05,-4.98716535062917e-05,0.000252244620128547,0,0.00028027180014283 14 | -0.000218444734920087,-2.8027180014283e-05,-2.18444734920087e-05,0.000110486629788697,0,0.000122762921987442 15 | -9.56818129326451e-05,-1.22762921987442e-05,-9.56818129326451e-06,4.8394670839139e-05,0,5.37718564879322e-05 16 | -4.19099564447129e-05,-5.37718564879322e-06,-4.19099564447129e-06,2.11975346710068e-05,0,2.35528163011187e-05 17 | -1.83571401435942e-05,-2.35528163011187e-06,-1.83571401435942e-06,9.28481314858201e-06,0,1.031645905398e-05 18 | -8.04068108961422e-06,-1.031645905398e-06,-8.04068108961422e-07,4.06687648078213e-06,0,4.51875164531348e-06 19 | -3.52192944430075e-06,-4.51875164531348e-07,-3.52192944430075e-07,1.78134810526206e-06,0,1.9792756725134e-06 20 | -1.54265377178735e-06,-1.9792756725134e-07,-1.54265377178735e-07,7.80255089407209e-07,0,8.66950099341343e-07 21 | -6.75703672446003e-07,-8.66950099341343e-08,-6.75703672446003e-08,3.41762512755074e-07,0,3.79736125283415e-07 22 | -2.95967547162588e-07,-3.79736125283415e-08,-2.95967547162588e-08,1.49696703950244e-07,0,1.66329671055826e-07 23 | -1.29637876106761e-07,-1.66329671055826e-08,-1.29637876106761e-08,6.55692252287089e-08,0,7.28546946985654e-08 24 | -5.6783181408196e-08,-7.28546946985654e-09,-5.6783181408196e-09,2.87202268563119e-08,0,3.19113631736798e-08 25 | -2.48718182345162e-08,-3.19113631736798e-09,-2.48718182345161e-09,1.25798562938771e-08,0,1.39776181043079e-08 26 | -1.08942001302083e-08,-1.39776181043079e-09,-1.08942001302083e-09,5.51015091789983e-09,0,6.12238990877759e-09 27 | -4.7718102214307e-09,-6.12238990877761e-10,-4.7718102214307e-10,2.41352225564057e-09,0,2.68169139515619e-09 28 | -2.09011882627451e-09,-2.6816913951562e-10,-2.0901188262745e-10,1.05715610430007e-09,0,1.17461789366674e-09 29 | -9.15500932607771e-10,-1.17461789366673e-10,-9.15500932607776e-11,4.63048984216749e-10,0,5.14498871351943e-10 30 | -4.01002061255828e-10,-5.1449887135194e-11,-4.01002061255835e-11,2.02821854702436e-10,0,2.25357616336042e-10 31 | -1.75644444919785e-10,-2.25357616336065e-11,-1.75644444919771e-11,8.88387754797286e-11,0,9.87097505330301e-11 32 | -7.69346943867548e-11,-9.87097505330157e-12,-7.69346943867543e-12,3.89126114654476e-11,0,4.32362349616069e-11 33 | -3.36984594251477e-11,-4.32362349615925e-12,-3.36984594251591e-12,1.70442616175566e-11,0,1.89380684639522e-11 34 | -1.47603909611955e-11,-1.89380684639552e-12,-1.47603909612014e-12,7.46562215043965e-12,0,8.29513572271097e-12 35 | -6.46525523848428e-12,-8.29513572271318e-13,-6.46525523848865e-13,3.27004568127878e-12,0,3.63338409031028e-12 36 | -2.83187114817415e-12,-3.63338409031507e-13,-2.83187114817512e-13,1.43232520239695e-12,0,1.59147244710824e-12 37 | -1.24039870106577e-12,-1.59147244711296e-13,-1.24039870106299e-13,6.27378234258705e-13,0,6.97086926952555e-13 38 | -5.43311774113855e-13,-6.97086926938506e-14,-5.4331177412252e-14,2.74800337337512e-13,0,3.05333708153861e-13 39 | -2.37978065960293e-13,-3.05333708163481e-14,-2.37978065960245e-14,1.20366345661234e-13,0,1.33740384068554e-13 40 | -1.0423768189147e-13,-1.33740384073196e-14,-1.04237681889244e-14,5.27221229369521e-14,0,5.85801365965683e-14 41 | -4.565754529522e-14,-5.85801365961618e-15,-4.56575452940246e-15,2.30930185035383e-14,0,2.56589094475393e-14 42 | -1.99986358479579e-14,-2.56589094400102e-15,-1.99986358547377e-15,1.01150612541839e-14,0,1.12389569499455e-14 43 | -8.75967889829461e-15,-1.1238956957616e-15,-8.75967889762917e-16,4.43053663196801e-15,0,4.92281847950195e-15 44 | -3.83686041869542e-15,-4.9228184753394e-16,-3.83686042259135e-16,1.94063627208346e-15,0,2.15626252494951e-15 45 | -1.68059789377955e-15,-2.15626252866055e-16,-1.68059789403534e-16,8.50025512577605e-16,0,9.44472791353246e-16 46 | -7.3612510227337e-16,-9.44472787756407e-17,-7.36125104553913e-17,3.72322920097236e-16,0,4.13692133582886e-16 47 | -3.22432968866098e-16,-4.13692134856507e-17,-3.22432969609025e-17,1.63082584023153e-16,0,1.81202871305988e-16 48 | -1.41230097768919e-16,-1.81202872828355e-17,-1.41230096392913e-17,7.14324268929369e-17,0,7.93693631412662e-17 49 | -6.186073468851e-17,-7.93693624832932e-18,-6.18607346596105e-18,3.12883882072433e-17,0,3.47648760183853e-17 50 | -2.70958585784501e-17,-3.47648781114202e-18,-2.70958567488259e-18,1.37047475441784e-17,0,1.52274972519575e-17 51 | -1.18683612238146e-17,-1.52274970777917e-18,-1.18683595206548e-18,6.00286853818722e-18,0,6.66985396692022e-18 52 | -5.19850720308652e-18,-6.66985428732999e-19,-5.19850530269511e-19,2.62934068680939e-18,0,2.92148946454765e-18 53 | -2.27701784312861e-18,-2.92148777738256e-19,-2.27701775435799e-19,1.1516865012287e-18,0,1.27965174768471e-18 54 | -9.97365891009555e-19,-1.27965246456013e-19,-9.97365579881539e-20,5.04455030740073e-19,0,5.60505574766918e-19 55 | -4.36860376578668e-19,-5.60505440268449e-20,-4.36859899636115e-20,2.20958396972899e-19,0,2.45509263816324e-19 56 | -1.91351024512406e-19,-2.45508668434246e-20,-1.91350703413695e-20,9.67829451546676e-20,0,1.07536594084892e-19 57 | -8.38144254510907e-20,-1.07536489302247e-20,-8.38142688626864e-21,4.23916013776814e-20,0,4.71018620941883e-20 58 | -3.67124497105087e-20,-4.71026071650689e-21,-3.67114514468398e-21,1.85692134619474e-20,0,2.06323391390069e-20 59 | -1.60799570813846e-20,-2.06312567705953e-21,-1.60800487781933e-21,8.13189561772449e-21,0,9.0356054799126e-21 60 | -7.04439762697722e-21,-9.03709862188107e-22,-7.04315240716792e-22,3.56360020337537e-21,0,3.95942877230321e-21 61 | -3.08494652518076e-21,-3.95828568927843e-22,-3.08491232771693e-22,1.55981892169459e-21,0,1.73320037713983e-21 62 | -1.35170532396957e-21,-1.73381455445237e-22,-1.35092647498574e-22,6.83699929028276e-22,0,7.59614501116461e-22 63 | -5.92047937913059e-22,-7.59145720881853e-23,-5.91929785695512e-23,2.9982246117093e-22,0,3.33091302840018e-22 64 | -2.58963787819217e-22,-3.32688416690883e-23,-2.59168172037014e-23,1.31314358674862e-22,0,1.45897870534942e-22 65 | -1.1306803151375e-22,-1.45835118600802e-23,-1.13464957281207e-23,5.68399676141168e-23,0,6.32390153577248e-23 66 | -4.98594972666976e-23,-6.39904774360796e-24,-4.97977092257322e-24,2.47650763377742e-23,0,2.75950680926459e-23 67 | -2.22405596086404e-23,-2.82999175487174e-24,-2.13990315812477e-24,1.24939683819052e-23,0,1.36808344986548e-23 68 | -8.5592339839831e-24,-1.18686611674953e-24,-9.14559492432408e-25,3.74883467857858e-24,0,4.30184462807332e-24 69 | -4.3346838715518e-24,-5.53009949494732e-25,-3.68286714357777e-25,2.15669124181151e-24,0,2.38226577085154e-24 70 | -1.93502038341374e-24,-2.25574529040026e-25,-1.41585385048159e-25,1.47433687221038e-24,0,1.5313364586773e-24 71 | -4.1430212228024e-25,-5.69995864669252e-26,-6.05873853269574e-26,1.22122030630377e-25,0,1.34565865942642e-25 72 | -3.13304377296148e-25,-1.24438353122653e-26,-1.88427745303468e-26,4.56834624180048e-25,0,4.52484015169149e-25 73 | 9.86361169158034e-26,4.35060901089819e-27,5.44710766171042e-29,-1.70157767183079e-25,0,-1.74314684649098e-25 74 | -4.47016324997827e-26,4.15691746601919e-27,1.14502100168395e-26,4.83124835568023e-25,0,4.73134827934939e-25 75 | 3.89258369670784e-25,9.99000763308381e-27,1.5903284856348e-26,-8.48099298629588e-25,0,-8.54563936999566e-25 76 | -4.87787223651672e-25,6.46463836997791e-27,3.87474831430905e-27,8.27799443118294e-25,0,8.10559746999444e-25 77 | 2.77905498725121e-25,1.723969611885e-26,-7.79325977548565e-27,6.28332877315612e-26,0,5.5319734469314e-26 78 | 3.39170567858661e-25,7.51355326224715e-27,-6.4745005516665e-27,-3.93076785015702e-25,0,-3.8386564651514e-25 79 | -3.89724065309127e-26,-9.21113850056252e-27,6.09128295948872e-28,-4.00873191905162e-26,0,-3.55671768258859e-26 80 | -6.78967119186403e-26,-4.52014236463028e-27,-2.92921475348615e-27,3.71070623173823e-25,0,3.62341502760474e-25 81 | 3.24091031358105e-25,8.72912041334818e-27,-5.95145896496756e-27,-3.44099789299059e-25,0,-3.43984648829188e-25 82 | -2.83835697409618e-26,-1.15140469870727e-28,-1.86748374836492e-27,1.65409908928503e-25,0,1.60395280198792e-25 83 | 1.2697830805191e-25,5.01462872971159e-27,1.80379312473341e-28,-7.99350977627113e-26,0,-7.96789449393584e-26 84 | 3.01920634106881e-26,-2.56152823352883e-28,-2.93591999895815e-27,1.5034544369643e-25,0,1.50188965547716e-25 85 | 1.67369271379685e-25,1.56478148714569e-28,-1.42976435797815e-27,-2.19696126026564e-25,0,-2.16953163925584e-25 86 | -4.4491376416638e-26,-2.74296210098028e-27,3.64953196997286e-27,-3.36603094471987e-26,0,-3.54031631392262e-26 87 | -8.97526568100544e-26,1.74285369202746e-27,6.46681363562772e-27,7.41411068142644e-26,0,6.28163335776677e-26 88 | -2.282195090699e-26,1.13247732365966e-26,-1.34936689694145e-27,-6.76730338371201e-26,0,-6.88652234727772e-26 89 | -6.72797425720717e-26,1.19218963565707e-27,-1.50495880491799e-27,1.60022795940583e-25,0,1.58837369304222e-25 90 | 8.72304955475538e-26,1.18542663636086e-27,-1.98285116500547e-27,-1.01963560982604e-25,0,-1.02431323962297e-25 91 | -2.22014590345532e-26,4.67762979693221e-28,3.0076691829224e-28,9.62797191917618e-26,0,9.06645336497265e-26 92 | 5.86429967885007e-26,5.61518554203529e-27,-2.97927823109196e-27,1.02435994751673e-26,0,6.30011888596654e-27 93 | 6.09903125010001e-26,3.94348058920073e-27,-6.82718322272564e-27,-2.69218717281595e-26,0,-2.8455992892073e-26 94 | 3.29346989702463e-26,1.53412116391353e-27,-6.31573268891518e-27,4.00750119203925e-26,0,4.27329326346743e-26 95 | 8.15098707818154e-26,-2.65792071428179e-27,-3.1645730825253e-27,-1.64956477371305e-25,0,-1.58875640029908e-25 96 | -8.36520526144502e-26,-6.08083734139759e-27,4.63836514093225e-28,6.08905084760918e-26,0,5.8337739155283e-26 97 | -1.70971611251538e-26,2.55276932080887e-27,2.91100796271982e-28,1.06849514216056e-25,0,1.0422016520213e-25 98 | 8.67552592374527e-26,2.62934901392607e-27,-9.16232522834305e-29,-5.84719029018829e-26,0,-5.72094412344177e-26 99 | 3.0489374608807e-26,-1.26246166746516e-27,1.04566377807837e-27,-1.51618098203681e-27,0,-2.73986657785479e-27 100 | 2.60961523756628e-26,1.22368559581798e-27,9.2185626234604e-28,1.20849402893552e-27,0,-1.01766271872811e-27 101 | 2.24174532333741e-26,2.22615674766363e-27,-1.16268306483222e-27,-3.70444576462018e-26,0,-3.58468751659592e-26 102 | -1.19111564082359e-26,-1.1975824802426e-27,-1.20517757757129e-27,4.3886871580336e-26,0,4.4533369694072e-26 103 | 3.22199045158615e-26,-6.46498113735976e-28,1.37283488294455e-28,-6.03534309888106e-26,0,-5.95503808789838e-26 104 | -3.06902098130357e-26,-8.0305010982685e-28,2.6390596730763e-28,6.04069570597523e-26,0,5.94342171866077e-26 105 | 3.14979463724557e-26,9.72739873144547e-28,9.77079872014789e-29,-2.13149896645605e-26,0,-2.11400803181299e-26 106 | 1.14718375360395e-26,-1.74909346430603e-28,-1.63315585203132e-28,-5.7184756686617e-27,0,-6.20537685495354e-27 107 | 5.84759747511196e-27,4.8690118629184e-28,-9.86147944639066e-28,3.85002779013698e-26,0,3.69267568435584e-26 108 | 3.92800033504926e-26,1.57352105781139e-27,-1.70613075799749e-27,-3.63239397974677e-26,0,-3.43606084018941e-26 109 | 4.44824990351523e-27,-1.96333139557368e-27,-3.98678428140592e-28,-2.432423941004e-26,0,-2.38259792574551e-26 110 | -1.90929208596857e-26,-4.98260152584965e-28,7.74344461043498e-28,4.14687238718972e-26,0,3.91235498115516e-26 111 | 1.8000991573963e-26,2.34517406034563e-27,-1.39652093236559e-27,4.52940871174233e-27,0,4.28656562009545e-27 112 | 2.44961628669072e-26,2.42843091646884e-28,-1.09650418786082e-27,-1.63305328903955e-26,0,-1.60927562734402e-26 113 | 6.03427796091791e-27,-2.37776616955292e-28,-7.4375096758041e-28,1.47658778405506e-26,0,1.3636468946997e-26 114 | 1.81162059032471e-26,1.12940889355367e-27,-1.61377630233655e-27,-2.78545558695794e-26,0,-2.76795073711603e-26 115 | -9.73084905901497e-27,-1.75048498419078e-28,-1.24835495284625e-27,2.12573699091515e-26,0,2.04773637497207e-26 116 | 1.01636112953086e-26,7.80006159430731e-28,-1.49964493549724e-27,-1.80489335554756e-26,0,-1.60713214916794e-26 117 | -7.02749235919005e-27,-1.97761206379628e-27,1.61358768157262e-28,-3.39552002689712e-27,0,-2.81937792755187e-27 118 | -1.1644197577151e-26,-5.7614209934525e-28,6.93003941326146e-28,1.6193718077153e-26,0,1.56955024045219e-26 119 | 5.33003168039383e-27,4.98215672631047e-28,3.86621071501383e-28,-1.06207746667746e-26,0,-1.07678486152394e-26 120 | -6.10057058812666e-27,1.4707394846477e-28,6.1720865540117e-28,1.76959354411657e-26,0,1.71414408666178e-26 121 | 1.04033649696298e-26,5.54494574547964e-28,3.59050878790869e-28,-2.33607420626616e-26,0,-2.33020520205865e-26 122 | -1.14299977672592e-26,-5.86900420750868e-29,1.49027339649904e-28,2.36672897800525e-26,0,2.32154694814247e-26 123 | 1.07968817129264e-26,4.5182029862782e-28,1.25018299740122e-28,-1.72046621290848e-26,0,-1.6970217118155e-26 124 | -7.02699094332903e-27,-2.34445010929807e-28,7.40460251455057e-28,5.37104801782645e-27,0,5.04818153759674e-27 125 | -2.47991295583078e-27,3.22866480229716e-28,4.65101212102394e-28,1.02985973831498e-26,0,9.61824667065524e-27 126 | 7.43854926871395e-27,6.80350712494572e-28,2.46102544512561e-28,-7.80587083698388e-27,0,-8.00539713107414e-27 127 | -2.45393062013704e-28,1.99526294090269e-28,4.56156266586874e-29,-4.00860841397911e-27,0,-4.34228392743991e-27 128 | -4.37457445256886e-27,3.33675513460799e-28,-4.66554151708033e-29,2.02358906232008e-26,0,1.94182246584856e-26 129 | 1.54543153342701e-26,8.17665964715256e-28,-4.60930078167823e-28,-2.08224155162006e-26,0,-2.02296774881885e-26 130 | -4.21608160057653e-27,-5.9273802801208e-28,-2.61215211461874e-28,5.76744350277775e-27,0,6.26995801429732e-27 131 | 2.3766559040419e-27,-5.02514511519574e-28,2.0906302371092e-28,9.55831715874862e-28,0,8.46943220854464e-28 132 | 2.81849554168299e-27,1.08888495020398e-28,2.54648016046429e-28,1.3373276007103e-26,0,1.30117873584109e-26 133 | 1.5075760052862e-26,3.61488648692102e-28,7.41613013814004e-29,-7.62388484152855e-27,0,-7.66885381313429e-27 134 | 6.73973360507644e-27,4.49689716057351e-29,1.13818075965713e-28,-6.57462437122344e-27,0,-6.37682540758911e-27 135 | 1.02509422335435e-28,-1.97798963634335e-28,2.50411480239286e-28,2.43650963888068e-27,0,2.24144276862048e-27 136 | 1.94302296384819e-27,1.95066870260199e-28,1.79408798006229e-28,-2.07266696513801e-27,0,-2.31607554968933e-27 137 | -1.7465325793331e-29,2.43408584551324e-28,6.87451214462579e-29,6.5412867074513e-27,0,6.20642930946431e-27 138 | 6.06855674540371e-27,3.34857397986991e-28,-7.04441768431963e-29,-4.33814421625608e-27,0,-4.47719828718005e-27 139 | 1.2786990306703e-27,1.39054070923968e-28,-1.02078618137949e-28,-2.77204240332313e-27,0,-2.8031051466079e-27 140 | -1.50448088540229e-27,3.10627432847729e-29,-7.05864071457475e-29,4.39699077850729e-27,0,4.30113603244112e-27 141 | 3.19907484155041e-27,9.58547460661646e-29,-4.65543177665761e-29,-3.6177131284091e-27,0,-3.56655226419645e-27 142 | -4.72841452326513e-28,-5.11608642126462e-29,6.24120737849881e-29,3.78392142352519e-27,0,3.74123654351972e-27 143 | 3.43175384092506e-27,4.26848800054771e-29,1.61433900489952e-28,-1.19449309000028e-27,0,-1.34052078887174e-27 144 | 1.42693577175222e-27,1.46027698871465e-28,1.0051902188616e-28,1.2227148488851e-27,0,1.06751711670208e-27 145 | 2.26811774771545e-27,1.5519773218302e-28,5.10652417909074e-29,-1.24322096829158e-27,0,-1.40594995284947e-27 146 | 5.61347201808964e-28,1.62728984557891e-28,2.75174485611109e-29,8.24047648314232e-28,0,6.37423471508871e-28 147 | 1.0293256810259e-27,1.86624176805361e-28,4.58998638258236e-29,9.80134673759017e-28,0,8.99013386935437e-28 148 | 1.591660722396e-27,8.11212868235796e-29,7.31979730403931e-29,-1.77304830057262e-27,0,-1.82948988037527e-27 149 | -2.44894047546583e-28,5.64415798026418e-29,7.66210155992531e-29,1.15316072551938e-28,0,4.07516992357758e-29 150 | -2.568978753704e-28,7.45643733161618e-29,6.01330164978963e-29,3.09375333730589e-27,0,2.94746745962606e-27 151 | 2.52513134138285e-27,1.46285877679832e-28,4.82986780323488e-29,-2.36564810850464e-27,0,-2.36564810850464e-27 152 | 0,0,0,0,0,0 153 | -------------------------------------------------------------------------------- /ch7/nkm_discretion.csv: -------------------------------------------------------------------------------- 1 | "x","ppi","ii","e","r" 2 | -5.79150579150579,0.579150579150579,5.79150579150579,1,5.79150579150579 3 | -1.2158775452183e-23,-1.49295934219513e-23,-2.00430684787477e-22,0,-1.77147398051419e-22 4 | -1.87118227181286e-22,-2.32832867360581e-23,3.94051926364117e-23,0,5.32779909379183e-23 5 | -1.32400952178607e-22,-1.38727983015066e-23,1.39188010259478e-22,0,1.45755959104688e-22 6 | 1.20548966704617e-23,-6.56794884520974e-24,-5.9965706825141e-23,0,-5.06422492742835e-23 7 | -3.79335346753612e-23,-9.32345755085746e-24,1.58539730872069e-23,0,2.03879009979934e-23 8 | -1.37840645891337e-23,-4.53392791078648e-24,-4.97905826888626e-23,0,-4.29524609020396e-23 9 | -5.31537455887835e-23,-6.83812178682307e-24,6.12667978636658e-24,0,1.05894355816003e-23 10 | -4.11209135550561e-23,-4.46275579523369e-24,5.26949385642806e-23,0,5.75347455654333e-23 11 | 1.77573656699624e-23,-4.83980700115269e-24,-6.03066270676133e-23,0,-5.48314631764597e-23 12 | -3.66648629296054e-23,-5.47516389115357e-24,-1.48311429400302e-23,0,-1.11379920092472e-23 13 | -4.62532968386112e-23,-3.69315093078309e-24,5.08640750364425e-23,0,5.32464052646665e-23 14 | 5.24461491897138e-24,-2.38233022822399e-24,-2.32089578703335e-23,0,-1.98045241652491e-23 15 | -1.36657771150671e-23,-3.40443370508444e-24,6.05069567167724e-24,0,8.90544767755209e-24 16 | -3.22052602607136e-24,-2.85475200587485e-24,-1.6433991646633e-23,0,-1.34047688890501e-23 17 | -1.49325148204024e-23,-3.02922275758292e-24,2.60864853012702e-24,0,4.75050363876158e-24 18 | -8.54415534872146e-24,-2.14185510863456e-24,6.55143242822965e-24,0,7.67215655293658e-24 19 | 2.16754837611034e-24,-1.12072412470693e-24,-1.02020907793296e-23,0,-1.02365028826565e-23 20 | -8.92838472049181e-24,3.44121033269311e-26,-2.25925486150077e-24,0,-2.28481174039568e-24 21 | -1.05424607913205e-23,2.55568788949107e-26,-8.21549454705814e-24,0,-6.94594737909053e-24 22 | -1.38979657007444e-23,-1.26954716796761e-24,-1.89781604489783e-24,0,-1.48524965542439e-25 23 | -1.37687941155533e-23,-1.74929107935539e-24,-5.97024188034338e-24,0,-4.63934501422121e-24 24 | -1.92088121240711e-23,-1.33089686612217e-24,5.26143479548835e-24,0,6.05316350592268e-24 25 | -1.22115671209701e-23,-7.9172871043433e-25,-4.42993017130585e-24,0,-3.67036505485507e-24 26 | -1.48980630937631e-23,-7.59565116450775e-25,-5.59523681937515e-25,0,1.67529096216864e-26 27 | -1.35092751233398e-23,-5.76276591559202e-25,-4.3620267378917e-24,0,-4.19884673661591e-24 28 | -1.70576145912028e-23,-1.63180001275791e-25,9.52559208449353e-24,0,9.77466082367285e-24 29 | -6.99659770575044e-24,-2.49068739179317e-25,-1.40540918495542e-24,0,-6.77459330203357e-25 30 | -6.27544842364707e-24,-7.27949854752059e-25,-1.18864030315508e-24,0,-9.18715542266988e-25 31 | -6.52141119249391e-24,-2.69924760888091e-25,-7.04105621771332e-24,0,-7.54317235302529e-24 32 | -1.41786073804675e-23,5.02116135311972e-25,1.19038896311181e-23,0,1.12058194115693e-23 33 | -2.26047554979589e-24,6.98070219548809e-25,-9.52551729678193e-24,0,-9.19100826863478e-24 34 | -1.15364025193473e-23,-3.34509028147153e-25,1.28270642235186e-23,0,1.27801685935818e-23 35 | 1.16336477450647e-24,4.68956299368273e-26,-1.53947623785432e-23,0,-1.48434609075391e-23 36 | -1.31127933673678e-23,-5.51301471004058e-25,1.02242279666152e-23,0,1.02034733689995e-23 37 | -2.94534595086989e-24,2.07545976156704e-26,-9.27450681038078e-24,0,-9.54860784712343e-24 38 | -1.21165616809037e-23,2.7410103674265e-25,1.35538946122312e-23,0,1.23975512267156e-23 39 | 1.01969250222993e-24,1.15634338551557e-24,1.51011514033745e-23,0,1.42796996127302e-23 40 | 1.56512992885641e-23,8.2145179064426e-25,-1.55891967222461e-23,0,-1.5449145722118e-23 41 | 2.64219974585029e-25,-1.4005100012814e-25,-2.39539007935491e-24,0,-2.2116652250196e-24 42 | -1.94047782445997e-24,-1.8372485433531e-25,8.1019861895706e-25,0,7.45017433593267e-25 43 | -9.07196693936563e-25,6.51811853637933e-26,-1.64702981994238e-23,0,-1.62789862781173e-23 44 | -1.68715627697604e-23,-1.913119213065e-25,1.89824771574814e-23,0,1.81749111399284e-23 45 | 1.02255888995881e-24,8.07566017553015e-25,-8.07852066355783e-24,0,-8.33648902023957e-24 46 | -7.26399425680045e-24,2.57968356681742e-25,8.07034083714244e-24,0,7.60086851180858e-24 47 | 5.51548951461168e-25,4.69472325333852e-25,-9.20271200354356e-24,0,-9.62540494499054e-24 48 | -8.70907245868841e-24,4.2269294144698e-25,2.51277846153073e-24,0,1.66999290453644e-24 49 | -6.51212234300898e-24,8.42785556994294e-25,4.45814554111067e-24,0,3.39883081126064e-24 50 | -2.84903673326843e-24,1.05931472985003e-24,-3.91009726160553e-24,0,-4.75799248022411e-24 51 | -7.51472405046779e-24,8.47895218618589e-25,7.06476150640414e-24,0,5.89636074248636e-24 52 | -1.5416296306022e-24,1.16840076391778e-24,-9.44133985702682e-25,0,-2.23474627667461e-24 53 | -3.77616065147953e-24,1.29061229097193e-24,5.48788404830164e-24,0,4.18927418686496e-24 54 | 4.15328850941032e-25,1.29860986143668e-24,5.71884764392672e-24,0,4.55849658924913e-24 55 | 4.95080463316456e-24,1.16035105467759e-24,-4.48269319458131e-24,0,-5.20936263563956e-24 56 | -2.24096561445129e-25,7.26669441058248e-25,1.77145652696666e-24,0,1.07128285911788e-24 57 | 8.04541863806068e-25,7.00173667848775e-25,-7.08764714396253e-26,0,-7.06621246812788e-25 58 | 2.28729492237685e-25,6.35744775373162e-25,-6.71796678933396e-24,0,-7.31989600354339e-24 59 | -7.00604631805761e-24,6.01929214209438e-25,1.03555903017403e-23,0,9.3457873018634e-24 60 | 2.45699465565609e-24,1.00980299987692e-24,-1.25178911473757e-24,0,-2.11947973157787e-24 61 | 2.70346151278435e-25,8.67690616840293e-25,2.24921996376291e-24,0,1.53373006223823e-24 62 | 1.8391179834611e-24,7.15489901524682e-25,-2.08890010095852e-24,0,-2.60773088305679e-24 63 | -7.4955017905086e-25,5.18830782098267e-25,1.49984662359955e-24,0,1.14284819563927e-24 64 | 3.80053172952989e-25,3.56998427960273e-25,1.79438698168523e-24,0,1.41352424793198e-24 65 | 1.90351754941627e-24,3.80862733753253e-25,-1.97805911561424e-24,0,-2.30731563899461e-24 66 | -3.6525070959351e-25,3.29256523380371e-25,4.50583423356149e-24,0,4.04002000184545e-24 67 | 3.71242816910883e-24,4.65814231716038e-25,-3.84978127110409e-25,0,-5.67244101261019e-25 68 | 3.17252252727482e-24,1.8226597415061e-25,-2.60545951908795e-24,0,-2.74658832931679e-24 69 | 3.99981500400199e-25,1.41128810228847e-25,6.08054588175243e-25,0,6.1364606200484e-25 70 | 9.86593568813307e-25,-5.59147382959773e-27,-1.11167698405226e-24,0,-1.01832258826049e-24 71 | -4.12600384448075e-26,-9.33543957917653e-26,4.41318153878938e-25,0,4.9733103294265e-25 72 | 4.01340658436088e-25,-5.60128790637114e-26,-2.56578760911974e-25,0,-1.98772868803429e-25 73 | 1.87094985218955e-25,-5.78058921085447e-26,3.15866039844031e-24,0,3.20824660797623e-24 74 | 3.38500800837486e-24,-4.95862095359186e-26,-3.01912450907584e-24,0,-2.72759474310881e-24 75 | 6.45323777759793e-25,-2.91529765967029e-25,-2.60121548516608e-24,0,-2.28389118170456e-24 76 | -1.63160542141856e-24,-3.17324303461519e-25,1.99540592271213e-24,0,2.1934470987111e-24 77 | 6.29270177152773e-25,-1.98041175998971e-25,3.95269863630089e-24,0,4.12747905905508e-24 78 | 4.75212405304628e-24,-1.74780422754196e-25,-5.38132930555989e-24,0,-4.78143490875166e-24 79 | -2.71716896382945e-26,-5.99894396808227e-25,-9.4582765003652e-25,0,-4.67905522775823e-25 80 | -4.41440845534935e-25,-4.77922127260697e-25,1.8036884514039e-24,0,2.3487447971997e-24 81 | 1.91460727782911e-24,-5.45056345795799e-25,-5.89566488704927e-24,0,-5.16388748997028e-24 82 | -3.22874237004443e-24,-7.31777397078984e-25,-2.61562830978665e-24,0,-2.09807067215221e-24 83 | -5.32489700440623e-24,-5.17557637634438e-25,4.74819503270022e-24,0,4.93623427209677e-24 84 | -3.77854939625625e-25,-1.88039239396553e-25,4.01045552658867e-24,0,3.99940487490922e-24 85 | 3.6620166200138e-24,1.10506516794556e-26,-2.11119675293243e-24,0,-1.82209263872283e-24 86 | 1.8565509790055e-24,-2.891041142096e-25,-4.57362583669786e-24,0,-4.1382066460012e-24 87 | -2.26066828762026e-24,-4.35419190696651e-25,2.60586363773855e-25,0,5.02861050732908e-25 88 | -1.73063812428777e-24,-2.42274686959053e-25,3.9408193632777e-25,0,5.61018647308619e-25 89 | -1.16548847896721e-24,-1.66936710980849e-25,2.85118893687012e-24,0,2.9315006600557e-24 90 | 1.78252122560876e-24,-8.03117231855789e-26,-3.19086572174056e-24,0,-2.89539614944941e-24 91 | -1.0986442900743e-24,-2.95469572291156e-25,2.33845765194293e-24,0,2.54094508027088e-24 92 | 1.43551449292583e-24,-2.02487428327948e-25,-1.26268706559472e-24,0,-9.36643484088532e-25 93 | 5.15393397740964e-25,-3.26043581506183e-25,1.20003014653485e-24,0,1.5370631752076e-24 94 | 2.07592709386065e-24,-3.3703302867275e-25,-2.93271097360695e-24,0,-2.42301637560841e-24 95 | -3.21371255431429e-25,-5.09694597998542e-25,-7.38454067720997e-25,0,-2.61306681699024e-25 96 | -5.50981187313563e-25,-4.77147386021974e-25,-2.43720515155039e-24,0,-2.12921183672839e-24 97 | -2.66382587144737e-24,-3.07993314822e-25,2.0757886318236e-24,0,2.25172915696873e-24 98 | -4.02380894799139e-25,-1.75940525145125e-25,2.86640265098398e-25,0,4.36284092708681e-25 99 | 3.92571267694271e-26,-1.49643827610283e-25,-1.38724621419904e-25,0,4.15666326252583e-26 100 | 8.70543630911638e-26,-1.80291254045162e-25,-2.24153484538714e-24,0,-2.05015794320432e-24 101 | -1.95735495810381e-24,-1.91376902182823e-25,1.06266584872364e-24,0,1.21762154288382e-24 102 | -7.31156506539048e-25,-1.54955694160183e-25,9.88987703112383e-25,0,1.07690662462967e-24 103 | 3.52489815175255e-25,-8.7918921517291e-26,-3.36384934526425e-24,0,-3.23373505126168e-24 104 | -2.87116522151369e-24,-1.30114294002566e-25,5.55944024512989e-24,0,5.4454359021334e-24 105 | 2.59330101010435e-24,1.1400434299649e-25,2.3624474729015e-24,0,2.40503959697015e-24 106 | 5.00704099559827e-24,-4.25921240686544e-26,-1.17598351649775e-23,0,-1.1431032204262e-23 107 | -6.40550621702804e-24,-3.28802960715492e-25,6.59550715936214e-24,0,6.49047833105977e-24 108 | 1.00988420016487e-25,1.05028828302372e-25,-3.25242839770247e-24,0,-3.45158496175579e-24 109 | -3.3247818771424e-24,1.99156564053316e-25,1.20579672129276e-24,0,8.90087613230984e-25 110 | -2.42900029940871e-24,3.15709108061778e-25,8.93038290824623e-24,0,8.53698861904212e-24 111 | 6.11027351023851e-24,3.93394289204102e-25,-4.87206797169498e-24,0,-4.81076739804292e-24 112 | 1.30273457167253e-24,-6.1300573652065e-26,-6.84660266093327e-24,0,-6.76821455272428e-24 113 | -5.46040291271028e-24,-7.83881082089848e-26,1.00785627273951e-23,0,9.81978058057098e-24 114 | 4.36363352429612e-24,2.58782146824163e-25,-7.26668838627361e-24,0,-7.1772624915972e-24 115 | -2.8068161965825e-24,-8.94258946764119e-26,-1.4154260667742e-24,0,-1.60047019852886e-24 116 | -4.40172842167759e-24,1.85044131754655e-25,4.54094742006975e-24,0,4.06727816058639e-24 117 | -3.28996529771227e-25,4.73669259483366e-25,-4.6804351642671e-25,0,-9.08244405989286e-25 118 | -1.23929103734176e-24,4.40200889562576e-25,1.49026835152555e-24,0,9.32006323183446e-25 119 | -3.06087825735078e-25,5.58262028342106e-25,2.15116754382796e-25,0,-3.29803063009617e-25 120 | -6.37278824796185e-25,5.44919817392413e-25,3.06521353490006e-24,0,2.26895837140645e-24 121 | 1.64539344971327e-24,7.96255163493609e-25,-3.79349465884701e-25,0,-9.7831831314695e-25 122 | 6.77075977699787e-25,5.98968847262249e-25,1.19576629941609e-24,0,6.91681235077424e-25 123 | 1.3744308891487e-24,5.04085064338669e-25,-1.59502843262644e-24,0,-2.0617852244721e-24 124 | -6.78661648593481e-25,4.66756791845657e-25,3.94957530640627e-24,0,3.44293023127427e-24 125 | 2.77420203408106e-24,5.06645075131995e-25,-4.81292103761798e-24,0,-5.1471849364833e-24 126 | -2.36080170875649e-24,3.34263898865319e-25,2.76358169321797e-24,0,2.26628831451684e-24 127 | -8.48875152959523e-26,4.97293378701121e-25,2.02900331145027e-24,0,1.56898782291482e-24 128 | 1.49160187928574e-24,4.60015488535454e-25,-2.22744171281139e-24,0,-2.57578801451155e-24 129 | -1.07871930989333e-24,3.48346301700167e-25,1.74413661597836e-24,0,1.33330202271091e-24 130 | 2.59430607436438e-25,4.10834593267447e-25,4.49400083156734e-25,0,8.64651856840648e-26 131 | 3.47940018304306e-25,3.62934897472669e-25,8.00828664710313e-25,0,4.33529757895082e-25 132 | 7.85982316340749e-25,3.67298906815231e-25,2.94295419856097e-25,0,-8.1751646249244e-26 133 | 7.13505774599607e-25,3.76047066105341e-25,9.3954495532765e-26,0,-2.30613655694927e-25 134 | 4.92480393488436e-25,3.24568151227692e-25,2.11627659576858e-25,0,-5.51544119688123e-26 135 | 4.45110014116597e-25,2.66782071545671e-25,2.34188875160564e-24,0,2.03843689996312e-24 136 | 2.49641945234574e-24,3.03451851642514e-25,-4.04814914028841e-24,0,-4.28892260183367e-24 137 | -1.7713698508747e-24,2.40773461545258e-25,7.67903929808264e-24,0,7.2730846422861e-24 138 | 5.52520882330587e-24,4.05954655796547e-25,9.65734770683926e-25,0,8.26673126931194e-25 139 | 6.38535251879948e-24,1.39061643752732e-25,-1.49574706323543e-23,0,-1.47489166930278e-23 140 | -8.32045019787079e-24,-2.08553939326491e-25,1.45199486373886e-23,0,1.4210677965131e-23 141 | 5.92655786955206e-24,3.09270672257583e-25,-1.18216602926129e-23,0,-1.14908418354254e-23 142 | -5.54295788552456e-24,-3.30818457187501e-25,7.24461369310356e-24,0,7.18506796595743e-24 143 | 1.66233337945851e-24,5.95457271461256e-26,7.33180987243136e-24,0,7.41335685395728e-24 144 | 9.09461760730783e-24,-8.15469815259138e-26,-1.04771003819976e-23,0,-9.79916614520331e-24 145 | -6.79942115828145e-25,-6.77934236794252e-25,-4.04564386288336e-24,0,-3.48242627966814e-24 146 | -4.13292139041053e-24,-5.63217583215227e-25,5.25635263306217e-24,0,5.46743447484833e-24 147 | 1.36704164060507e-24,-2.11081841786155e-25,1.13069618012108e-24,0,1.43502264277366e-24 148 | 2.83535702235528e-24,-3.04326462652579e-25,-2.3022206637417e-24,0,-1.85512583860971e-24 149 | 1.01825530243121e-24,-4.47094825131988e-25,1.02724175934445e-24,0,1.21461057636439e-24 150 | 2.29519158643846e-24,-1.87368817019936e-25,-2.00789075125067e-24,0,-1.76385269901235e-24 151 | 6.01638408032299e-25,-2.44038052238322e-25,-6.92913195455322e-25,0,-6.92913195455322e-25 152 | 0,0,0,0,0 153 | -------------------------------------------------------------------------------- /ch8/dataplot.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 8, Drawing data 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | dset <- read.csv("dset_fig.csv") 8 | # figpath <- "../../figs/" 9 | figpath <- "./" 10 | 11 | if (.Platform$OS.type == "windows") windows(7, 8) 12 | par(mfrow = c(3, 1), ps = 13) 13 | par(mai = c(0.7,1.2, 0.5, 0.35)*0.5) 14 | par(family="Japan1GothicBBB") 15 | plot(ts(dset$GAP, start = c(1980, 2), freq = 4), main = "GDPギャップ", xlab = "", ylab = "%") 16 | plot(ts(dset$PC_PGDP, start = c(1980, 2), freq = 4), main = "GDPデフレーター(前期比伸び率)", xlab = "", ylab = "%") 17 | plot(ts(dset$IRS, start = c(1980, 2), freq = 4), main = "短期金利", xlab = "", ylab = "%") 18 | 19 | # GAP PC_PGD IRS 20 | dev.copy2pdf(file=figpath %+% "dataplot.pdf",family="Japan1GothicBBB") 21 | # [0 0 504 575] 22 | 23 | -------------------------------------------------------------------------------- /ch8/dset_fig.csv: -------------------------------------------------------------------------------- 1 | GAP,PC_PGDP,IRS 2 | -2.100000,2.566845,12.471670 3 | -1.000000,1.147028,12.063830 4 | 0.100000,0.927835,10.008170 5 | -0.100000,0.204290,8.515300 6 | -0.100000,0.509684,7.120030 7 | -0.600000,0.405680,7.250900 8 | -1.000000,0.808081,6.850270 9 | -0.600000,0.801603,6.609230 10 | -0.800000,-0.099404,7.172230 11 | -1.400000,0.398010,7.118300 12 | -0.900000,-0.198216,6.841230 13 | -1.300000,0.794439,6.635670 14 | -1.400000,0.098522,6.190930 15 | -1.100000,0.000000,6.458770 16 | -1.300000,0.295276,6.283670 17 | -1.200000,0.588813,6.181770 18 | -0.300000,0.292683,5.844300 19 | -0.600000,0.389105,6.152770 20 | -1.200000,0.678295,6.221100 21 | -1.000000,0.384986,6.248730 22 | -0.100000,0.191755,6.068570 23 | 0.300000,-0.191388,6.254030 24 | 0.800000,0.287632,7.281830 25 | -0.400000,0.956023,6.053000 26 | -1.100000,0.568182,4.435730 27 | -1.600000,0.376648,4.562530 28 | -1.500000,-0.375235,4.120730 29 | -2.400000,-0.188324,3.998030 30 | -1.700000,-0.283019,3.281770 31 | -1.100000,0.378430,3.248930 32 | 0.400000,-0.188501,3.524970 33 | 0.900000,0.566572,3.488570 34 | 0.300000,-0.375587,3.332370 35 | 1.000000,0.565504,3.778130 36 | 1.100000,0.281162,3.888570 37 | 2.000000,0.467290,3.909160 38 | -0.100000,1.023256,4.360840 39 | 0.300000,0.644567,5.183260 40 | 2.200000,0.548948,6.035370 41 | 0.500000,0.636943,6.516260 42 | 2.200000,0.632911,7.100170 43 | 3.200000,0.269542,7.441210 44 | 2.200000,1.254480,7.909520 45 | 2.500000,0.619469,8.080540 46 | 2.600000,0.791557,8.031670 47 | 1.800000,0.523560,7.260740 48 | 1.900000,0.868056,6.454880 49 | 1.400000,0.000000,5.543340 50 | 0.800000,0.860585,4.680300 51 | 0.700000,-0.170648,4.201530 52 | -0.500000,0.085470,3.905450 53 | -0.400000,0.341588,3.389970 54 | -1.700000,-0.255319,3.134180 55 | -2.600000,0.341297,3.020260 56 | -2.700000,0.255102,2.418150 57 | -2.000000,-0.169635,2.195600 58 | -2.900000,0.424809,2.046270 59 | -2.200000,-0.423012,2.069860 60 | -2.900000,0.169924,2.202980 61 | -2.200000,-0.508906,2.154710 62 | -1.600000,-0.170503,1.320100 63 | -0.800000,0.085397,0.746670 64 | -0.900000,0.085324,0.403330 65 | -0.400000,-0.511509,0.403330 66 | 0.400000,0.085690,0.413330 67 | 0.100000,-0.085616,0.406670 68 | 1.000000,-0.171380,0.423330 69 | 1.000000,-0.085837,0.436670 70 | 0.100000,1.030928,0.436670 71 | 0.000000,-0.170068,0.436670 72 | -0.200000,0.170358,0.423330 73 | -1.600000,-0.085034,0.433330 74 | -2.200000,-0.170213,0.416670 75 | -2.200000,-0.341006,0.363330 76 | -1.700000,0.171086,0.216670 77 | -3.200000,-0.597780,0.120000 78 | -------------------------------------------------------------------------------- /ch8/figures8.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 8, Other figures 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | "%+%" <- function(x, y) paste(x, y, sep = "") 7 | # figpath <- "../../figs/" 8 | figpath <- "./" 9 | 10 | #---------------------------- 11 | # 主な確率分布 12 | 13 | f1 <- function(x) dnorm(x, 0, 1) 14 | f2 <- function(x) dgamma(x, 1, 1) 15 | f3 <- function(x) dbeta(x, 2, 2) 16 | f4 <- function(x) dunif(x, -1, 1) 17 | 18 | par(mfrow = c(2,2), ps = 15, mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 19 | curve(f1, -4, 4, main = expression(paste("N(",mu," = 0, ", sigma^2," = 1 )"))) 20 | abline(h = 0, col = 'grey') 21 | 22 | curve(f2, 0, 5, main = expression(paste("Ga(",s," = 1, ", r," = 1 )")),xlim = c(0,4)) 23 | abline(h = 0, col = 'grey') 24 | lines(cbind(c(0, 0), c(0, 1)),lty=2) 25 | 26 | curve(f3, 0, 1, main = expression(paste("Be(",a," = 2, ", b," = 2 )"))) 27 | abline(h = 0, col = 'grey') 28 | 29 | curve(f4, -1, 1, main = expression(paste("Unif(",a," = -1, ", b," = 1 )")),ylim = c(0, 1)) 30 | lines(cbind(c(-1.0, -1.0), c(0, 0.5)),lty=2) 31 | lines(cbind(c(1.0, 1.0), c(0, 0.5)),lty=2) 32 | abline(h = 0, col = 'grey') 33 | 34 | dev.copy2eps(file= figpath %+% "distribution.eps") 35 | 36 | #---------------------------- 37 | # ベイズ推定の例(ベルヌーイ過程) 38 | 39 | N <- c(5, 20, 100, 1000) 40 | theta <- 0.6 41 | set.seed(101) 42 | vec <- runif(N[4]) 43 | rslt <- rep(0, N[4]) 44 | rslt[vec < theta] <- 1 45 | 46 | a0 <- 2 47 | b0 <- 2 48 | x1 <- seq(0,1,length = 200) 49 | y1 <- dbeta(x1, a0, b0) 50 | fb1 <- function(x) dbeta(x, a0+sum(rslt[1:N[1]]), b0+N[1]-sum(rslt[1:N[1]])) 51 | fb2 <- function(x) dbeta(x, a0+sum(rslt[1:N[2]]), b0+N[2]-sum(rslt[1:N[2]])) 52 | fb3 <- function(x) dbeta(x, a0+sum(rslt[1:N[3]]), b0+N[3]-sum(rslt[1:N[3]])) 53 | fb4 <- function(x) dbeta(x, a0+sum(rslt[1:N[4]]), b0+N[4]-sum(rslt[1:N[4]])) 54 | 55 | par(mfrow = c(2,2), ps = 15, mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 56 | 57 | curve(fb1, 0, 1, main = "N = 5", ylim = c(0, 5)) 58 | lines(cbind(x1, y1), lty = 2) 59 | lines(cbind(c(theta,theta),c(0, 10^4)),col=3) 60 | 61 | curve(fb2, 0, 1, main = "N = 20", ylim = c(0, 5)) 62 | lines(cbind(x1, y1), lty = 2) 63 | lines(cbind(c(theta,theta),c(0, 10^4)),col=3) 64 | 65 | curve(fb3, 0, 1, main = "N = 100", ylim = c(0, 10)) 66 | lines(cbind(x1, y1), lty = 2) 67 | lines(cbind(c(theta,theta),c(0, 10^4)),col=3) 68 | 69 | curve(fb4, 0, 1, main = "N = 1000", ylim = c(0, 30)) 70 | lines(cbind(x1, y1), lty = 2) 71 | lines(cbind(c(theta,theta),c(0, 10^4)),col=3) 72 | 73 | dev.copy2eps(file= figpath %+% "bernoulli.eps") 74 | 75 | #---------------------------- 76 | # マルコフ過程の例 77 | 78 | set.seed(101) 79 | aa <- c(0, -100, 100) 80 | rho <- 0.5 81 | 82 | vec1 <- aa[1] 83 | vec2 <- aa[2] 84 | vec3 <- aa[3] 85 | 86 | for(i in 1:999) { 87 | vec1[i+1] <- rho*vec1[i] + rnorm(1) 88 | vec2[i+1] <- rho*vec2[i] + rnorm(1) 89 | vec3[i+1] <- rho*vec3[i] + rnorm(1) 90 | } 91 | 92 | if (.Platform$OS.type == "windows") windows(10,7) 93 | par(ps = 15) 94 | plot(vec1[1:200], typ = "l", xlab = "", ylab = "", main = expression(a[t]), ylim = c(-5, 5)) 95 | lines(vec2[1:200], col = 2,lty=2) 96 | lines(vec3[1:200], col = 4,lty=4) 97 | 98 | dev.copy2eps(file= figpath %+% "markov.eps") 99 | 100 | #---------------------------- 101 | # MHアルゴリズムの例 102 | 103 | set.seed(102) 104 | 105 | ff <- function(x) log(dgamma(x, 5, 1)) 106 | x2 <- seq(0,15,length = 200) 107 | y2 <- dgamma(x2, 5, 1) 108 | 109 | niter <- 1200 110 | chain4 <- rgamma(niter, 5, 1) 111 | 112 | Metropolis <- function(init, sig2) { 113 | chain <- init[1] 114 | for(i in 2:niter) { 115 | cand <- chain[i-1] + rnorm(1, sd = sqrt(sig2)) 116 | prob <- min(exp(ff(cand)-ff(chain[i-1])), 1) 117 | if (runif(1) < prob) { 118 | chain[i] <- cand 119 | } else { 120 | chain[i] <- chain[i-1] 121 | } 122 | } 123 | return(chain) 124 | } 125 | 126 | chain1 <- Metropolis(9, 0.1) 127 | chain2 <- Metropolis(9, 20) 128 | chain3 <- Metropolis(9, 5000) 129 | 130 | rejrate1 <- sum(chain1[201:1200] == chain1[201:1200-1])/1000 131 | rejrate2 <- sum(chain2[201:1200] == chain2[201:1200-1])/1000 132 | rejrate3 <- sum(chain3[201:1200] == chain3[201:1200-1])/1000 133 | 1-c(rejrate1,rejrate2,rejrate3) 134 | 135 | if (.Platform$OS.type == "windows") windows(7,7) 136 | 137 | par(mfrow = c(2,2), ps = 15, mai = c(0.85, 0.68, 0.68, 0.35)*0.5) 138 | par(family="Japan1GothicBBB") 139 | 140 | hist(chain1[201:1200], xlab = "", main = expression(paste(sigma^2, " = 0.1")), probability = T, xlim = c(0, 15)) 141 | lines(cbind(x2, y2)) 142 | 143 | hist(chain2[201:1200], xlab = "", main = expression(paste(sigma^2, " = 20")), probability = T, xlim = c(0, 15)) 144 | lines(cbind(x2, y2)) 145 | 146 | hist(chain3[201:1200], xlab = "", main = expression(paste(sigma^2, " = 5000")), probability = T, xlim = c(0, 15)) 147 | lines(cbind(x2, y2)) 148 | 149 | hist(chain4[201:1200], xlab = "", main = "(参考)", probability = T, xlim = c(0, 15), ylim = c(0, 0.2)) 150 | lines(cbind(x2, y2)) 151 | 152 | dev.copy2pdf(file=figpath %+% "metropolis.pdf",family="Japan1GothicBBB") 153 | 154 | -------------------------------------------------------------------------------- /ch8_dynare/FqReport8.csv: -------------------------------------------------------------------------------- 1 | ,GDPGAP,PGDP11@,CMBEMTU 2 | 1980:1,-0.5,93.5,9.17557 3 | 1980:2,-2.1,95.9,12.47167 4 | 1980:3,-1,97,12.06383 5 | 1980:4,0.1,97.9,10.00817 6 | 1981:1,-0.1,98.1,8.5153 7 | 1981:2,-0.1,98.6,7.12003 8 | 1981:3,-0.6,99,7.2509 9 | 1981:4,-1,99.8,6.85027 10 | 1982:1,-0.6,100.6,6.60923 11 | 1982:2,-0.8,100.5,7.17223 12 | 1982:3,-1.4,100.9,7.1183 13 | 1982:4,-0.9,100.7,6.84123 14 | 1983:1,-1.3,101.5,6.63567 15 | 1983:2,-1.4,101.6,6.19093 16 | 1983:3,-1.1,101.6,6.45877 17 | 1983:4,-1.3,101.9,6.28367 18 | 1984:1,-1.2,102.5,6.18177 19 | 1984:2,-0.3,102.8,5.8443 20 | 1984:3,-0.6,103.2,6.15277 21 | 1984:4,-1.2,103.9,6.2211 22 | 1985:1,-1,104.3,6.24873 23 | 1985:2,-0.1,104.5,6.06857 24 | 1985:3,0.3,104.3,6.25403 25 | 1985:4,0.8,104.6,7.28183 26 | 1986:1,-0.4,105.6,6.053 27 | 1986:2,-1.1,106.2,4.43573 28 | 1986:3,-1.6,106.6,4.56253 29 | 1986:4,-1.5,106.2,4.12073 30 | 1987:1,-2.4,106,3.99803 31 | 1987:2,-1.7,105.7,3.28177 32 | 1987:3,-1.1,106.1,3.24893 33 | 1987:4,0.4,105.9,3.52497 34 | 1988:1,0.9,106.5,3.48857 35 | 1988:2,0.3,106.1,3.33237 36 | 1988:3,1,106.7,3.77813 37 | 1988:4,1.1,107,3.88857 38 | 1989:1,2,107.5,3.90916 39 | 1989:2,-0.1,108.6,4.36084 40 | 1989:3,0.3,109.3,5.18326 41 | 1989:4,2.2,109.9,6.03537 42 | 1990:1,0.5,110.6,6.51626 43 | 1990:2,2.2,111.3,7.10017 44 | 1990:3,3.2,111.6,7.44121 45 | 1990:4,2.2,113,7.90952 46 | 1991:1,2.5,113.7,8.08054 47 | 1991:2,2.6,114.6,8.03167 48 | 1991:3,1.8,115.2,7.26074 49 | 1991:4,1.9,116.2,6.45488 50 | 1992:1,1.4,116.2,5.54334 51 | 1992:2,0.8,117.2,4.6803 52 | 1992:3,0.7,117,4.20153 53 | 1992:4,-0.5,117.1,3.90545 54 | 1993:1,-0.4,117.5,3.38997 55 | 1993:2,-1.7,117.2,3.13418 56 | 1993:3,-2.6,117.6,3.02026 57 | 1993:4,-2.7,117.9,2.41815 58 | 1994:1,-2,117.7,2.1956 59 | 1994:2,-2.9,118.2,2.04627 60 | 1994:3,-2.2,117.7,2.06986 61 | 1994:4,-2.9,117.9,2.20298 62 | 1995:1,-2.2,117.3,2.15471 63 | 1995:2,-1.6,117.1,1.3201 64 | 1995:3,-0.8,117.2,0.74667 65 | 1995:4,-0.9,117.3,0.40333 66 | 1996:1,-0.4,116.7,0.40333 67 | 1996:2,0.4,116.8,0.41333 68 | 1996:3,0.1,116.7,0.40667 69 | 1996:4,1,116.5,0.42333 70 | 1997:1,1,116.4,0.43667 71 | 1997:2,0.1,117.6,0.43667 72 | 1997:3,0,117.4,0.43667 73 | 1997:4,-0.2,117.6,0.42333 74 | 1998:1,-1.6,117.5,0.43333 75 | 1998:2,-2.2,117.3,0.41667 76 | 1998:3,-2.2,116.9,0.36333 77 | 1998:4,-1.7,117.1,0.21667 78 | 1999:1,-3.2,116.4,0.12 79 | -------------------------------------------------------------------------------- /ch8_dynare/FqReport8.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhasumi/dynamicmodels/6f4698e0d39f6495827b5fe1448991e6a3c0921b/ch8_dynare/FqReport8.xlsx -------------------------------------------------------------------------------- /ch8_dynare/NK_Linear_EST.mod: -------------------------------------------------------------------------------- 1 | //=========================================== 2 | // Chapter 8, Model definition and estimation 3 | // modified on 2019/10/19 4 | //=========================================== 5 | 6 | // 1. 内生変数、外生変数の宣言 7 | var x ppi a ii v; 8 | varexo epsilon z e; 9 | 10 | // 2. パラメータの宣言 11 | parameters beta gamma varrho phi_pi phi_y rho_A rho_v; 12 | 13 | // パラメータ値の代入 14 | beta = 0.99; 15 | gamma = 5; 16 | varrho = 0.9; 17 | phi_pi = 0.5; 18 | phi_y = 0.5; 19 | rho_A = 0.9; 20 | rho_v = 0.7; 21 | 22 | // 3. 方程式の定義 23 | model(linear); 24 | # kappa = (1-varrho)*(1-varrho*beta)*(gamma+1)/varrho; 25 | x = x(+1)-(ii-ppi(+1))+(rho_A-1)*a; 26 | ppi = beta*ppi(+1) + kappa*x + e; 27 | ii = (1+phi_pi)*ppi + phi_y*x + v; 28 | v = rho_v*v(-1) + z; 29 | a = rho_A*a(-1) + epsilon; 30 | end; 31 | 32 | shocks; 33 | var epsilon; stderr 0.5; 34 | var z; stderr 0.5; 35 | var e; stderr 0.5; 36 | end; 37 | 38 | // 全てゼロになることを念のためチェック 39 | steady; 40 | 41 | // モデルのチェック 42 | check; 43 | 44 | estimated_params; 45 | gamma, gamma_pdf, 5, 2; 46 | varrho, beta_pdf, 0.9, 0.05; 47 | phi_pi, gamma_pdf, 0.5, 0.25; 48 | phi_y, gamma_pdf, 0.5, 0.25; 49 | rho_A, beta_pdf, 0.9, 0.05; 50 | rho_v, beta_pdf, 0.7, 0.1; 51 | stderr epsilon, inv_gamma_pdf, 5, 1; 52 | stderr z, inv_gamma_pdf, 2, 1; 53 | stderr e, inv_gamma_pdf, 1, 0.5; 54 | end; 55 | 56 | varobs x ppi ii; 57 | 58 | estimation(datafile='dset.mat', mh_replic=125000, mh_drop = 0.2, mh_nblocks=2, mh_jscale=0.6, mode_compute = 4, mode_check); 59 | 60 | chain1 = load(strcat('./NK_Linear_EST/metropolis/NK_Linear_EST_mh1_blck1.mat')); 61 | chain2 = load(strcat('./NK_Linear_EST/metropolis/NK_Linear_EST_mh1_blck2.mat')); 62 | csvwrite('chain1.csv',chain1.x2, 1, 0); 63 | csvwrite('chain2.csv',chain2.x2, 1, 0); 64 | 65 | -------------------------------------------------------------------------------- /ch8_dynare/coda.R: -------------------------------------------------------------------------------- 1 | #======================================= 2 | # Chapter 8, Post-processing 3 | # modified on 2019/10/19 4 | #======================================= 5 | 6 | library(coda) 7 | library(xtable) 8 | 9 | chain1 <- read.csv("chain1.csv") 10 | chain2 <- read.csv("chain2.csv") 11 | 12 | colnames(chain1) <- c("epsilon", "z", "e", "gamma", "varrho", "phi_pi", "phi_y", "rho_A", "rho_v") 13 | colnames(chain2) <- c("epsilon", "z", "e", "gamma", "varrho", "phi_pi", "phi_y", "rho_A", "rho_v") 14 | 15 | vorder <- c(7, 8, 9, 1, 2, 3, 4, 5) 16 | varnames <- c("$gamma$", "$varrho$", "$phi_pi$", "$phi_y$", "$rho_A$", "$rho_v$", "$sigma_varepsilon$", "$sigma_z$","$sigma_e$") 17 | 18 | rslt <- mcmc.list(mcmc(chain1[25001:125000, ]), mcmc(chain2[25001:125000, ])) 19 | sum <- summary(rslt) 20 | gew <- geweke.diag(rslt) 21 | 22 | ans0 <- as.matrix(sum$statistics[,1:2]) 23 | ans0 <- cbind(ans0, gew[[1]]$z, gew[[2]]$z) 24 | ans <- ans0[c(4:9, 1:3), ] 25 | 26 | rownames(ans) <- varnames 27 | colnames(ans) <- c("Mean","SD","Z(1)", "Z(2)") 28 | 29 | print(ans) 30 | 31 | cbind(1-rejectionRate(rslt[[1]][,1]), 1-rejectionRate(rslt[[2]][,1])) 32 | 33 | xtable(ans,digits = 3) 34 | -------------------------------------------------------------------------------- /ch8_dynare/main.m: -------------------------------------------------------------------------------- 1 | %======================================= 2 | % Chapter 8, Estimation 3 | % modified on 2020/01/02 4 | %======================================= 5 | 6 | % パスのセット 7 | cd 'C:\Users\USERNAME\ch8_dynare_test' 8 | 9 | % データセットの作成 10 | script_dataset 11 | 12 | % Dynareのパスのセット 13 | addpath C:\programs\dynare\4.5.7\matlab 14 | 15 | % パラメータ推定、出力 16 | dynare NK_Linear_EST 17 | 18 | -------------------------------------------------------------------------------- /ch8_dynare/script_dataset.m: -------------------------------------------------------------------------------- 1 | %======================================= 2 | % Chapter 8, Preparing data 3 | % modified on 2019/10/19 4 | %======================================= 5 | 6 | FqReport8 = csvread('FqReport8.csv', 1, 1); 7 | 8 | GAP0 = FqReport8(:,1); 9 | PGDP0 = FqReport8(:,2); 10 | IRS0 = FqReport8(:,3); 11 | 12 | PC_PGDP0 = [NaN; (PGDP0(2:end)./PGDP0(1:end-1)-1)*100]; 13 | 14 | tt = 2:77; 15 | MGAP = mean(GAP0(tt)); 16 | MPC_PGDP = mean(PC_PGDP0(tt)); 17 | MIRS = mean(IRS0(tt)); 18 | 19 | GAP = GAP0(tt)-MGAP; 20 | PC_PGDP = PC_PGDP0(tt)-MPC_PGDP; 21 | IRS4 = (IRS0(tt)-MIRS)*0.25; 22 | 23 | x = GAP; 24 | ppi = PC_PGDP; 25 | ii = IRS4; 26 | 27 | save dset.mat x ppi ii; 28 | 29 | out2 = [GAP0(tt) PC_PGDP0(tt) IRS0(tt)]; 30 | lab2 = {'GAP', 'PC_PGDP', 'IRS'}; 31 | util_csvwrite('dset_fig.csv', out2, lab2); 32 | -------------------------------------------------------------------------------- /ch8_dynare/util_csvwrite.m: -------------------------------------------------------------------------------- 1 | function [] = util_csvwrite(filename, x, str) 2 | 3 | fid = fopen(filename,'wt'); % 書き込み用にファイルオープン 4 | [rows,cols] = size(x); 5 | if cols > 1 6 | fprintf(fid, '%s,', str{1,1:end-1}); % 文字列の書き出し 7 | fprintf(fid, '%s\n', str{1,end}); % 行末の文字列は、改行を含めて出力 8 | for i = 1:rows 9 | fprintf(fid, '%f,', x(i,1:end-1)); 10 | fprintf(fid, '%f\n', x(i, end)); 11 | end 12 | else 13 | fprintf(fid, '%s\n', str{1}); 14 | for i = 1:rows 15 | fprintf(fid, '%f\n', x(i)); 16 | end 17 | end 18 | fclose('all'); 19 | % ファイルクローズ 20 | -------------------------------------------------------------------------------- /dynare/NK_det.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 5, New Keynesian model, 3 | // deterministic solution 4 | // modified on 2020/01/02 5 | //======================================= 6 | 7 | // 1. 内生変数、外生変数の宣言 8 | var C phi ppi ppitil F D A ii v; 9 | varexo e z; 10 | 11 | // 2. パラメータの宣言 12 | parameters beta mu gamma varrho eta phi_pi phi_y rho_A rho_v istar Cstar; 13 | 14 | // パラメータ値の代入 15 | beta = 0.99; 16 | mu = 1.0; 17 | gamma = 5; 18 | eta = 10; 19 | varrho = 0.9; 20 | phi_pi = 1.5; 21 | phi_y = 0.5; 22 | rho_A = 0.9; 23 | rho_v = 0.7; 24 | 25 | // 3. 方程式の定義 26 | model; 27 | (1+ppi(+1))*C(+1)/C = beta*(1+ii); 28 | (1+ppitil)/(1+ppi) = eta/(eta-1)*F/D; 29 | F = phi + varrho*beta*(1+ppi(+1))^eta*F(+1); 30 | D = 1 + varrho*beta*(1+ppi(+1))^(eta-1)*D(+1); 31 | (1+ppi)^(1-eta) = (1-varrho)*(1+ppitil)^(1-eta)+varrho; 32 | ii = istar + phi_pi*ppi + phi_y*log(C/Cstar/A) + v; 33 | log(A) = rho_A*log(A(-1)) + e; 34 | v = rho_v*v(-1) + z; 35 | phi - mu*(C/A)^(gamma+1)*(gamma+1) = 0; 36 | end; 37 | 38 | // 4. 定常状態の計算 39 | pistar = 0; 40 | pitilstar = 0; 41 | vstar = 0; 42 | istar = (1-beta)/beta; 43 | Dstar = 1/(1-varrho*beta); 44 | Fstar = (eta-1)/eta/(1-varrho*beta); 45 | phistar = (eta-1)/eta; 46 | Astar = 1; 47 | Cstar = ((eta-1)/eta/mu/(gamma+1))^(1/(gamma+1)); 48 | 49 | initval; 50 | C = Cstar; 51 | phi = phistar; 52 | ppi = pistar; 53 | ppitil = pitilstar; 54 | F = Fstar; 55 | D = Dstar; 56 | A = Astar; 57 | ii = istar; 58 | v = vstar; 59 | end; 60 | 61 | steady; 62 | 63 | // モデルのチェック 64 | check; 65 | 66 | // 5. シミュレーション(deterministic) 67 | // シナリオの設定 68 | shocks; 69 | var e; periods 1; values 0.01; 70 | end; 71 | 72 | // シミュレーションの実行 73 | //simul(periods=150); 74 | perfect_foresight_setup(periods=150); 75 | perfect_foresight_solver; 76 | 77 | // グラフ描写など 78 | C1 = (C./Cstar-1)*100; 79 | i1 = (ii-istar)*100; 80 | pi1 = (ppi-pistar)*100; 81 | A1 = (A./Astar-1)*100; 82 | phi1 = (phi./phistar-1)*100; 83 | v1 = (v-vstar)*100; 84 | 85 | figure(1) 86 | subplot(3,2,1) 87 | plot(0:50, C1(1:51)); title('C') 88 | subplot(3,2,2) 89 | plot(0:50, i1(1:51)); title('i') 90 | subplot(3,2,3) 91 | plot(0:50, pi1(1:51)); title('pi') 92 | subplot(3,2,4) 93 | plot(0:50, phi1(1:51)); title('phi') 94 | subplot(3,2,5) 95 | plot(0:50, A1(1:51)); title('A') 96 | subplot(3,2,6) 97 | plot(0:50, v1(1:51)); title('v') 98 | 99 | shocks; 100 | var e; periods 1; values 0; 101 | var z; periods 1; values 0.01; 102 | end; 103 | 104 | //simul(periods=150); 105 | perfect_foresight_setup(periods=150); 106 | perfect_foresight_solver; 107 | 108 | C2 = (C./Cstar-1)*100; 109 | i2 = (ii-istar)*100; 110 | pi2 = (ppi-pistar)*100; 111 | A2 = (A./Astar-1)*100; 112 | phi2 = (phi./phistar-1)*100; 113 | v2 = (v-vstar)*100; 114 | 115 | figure(2) 116 | subplot(3,2,1) 117 | plot(0:50, C2(1:51)); title('C') 118 | subplot(3,2,2) 119 | plot(0:50, i2(1:51)); title('i') 120 | subplot(3,2,3) 121 | plot(0:50, pi2(1:51)); title('pi') 122 | subplot(3,2,4) 123 | plot(0:50, phi2(1:51)); title('phi') 124 | subplot(3,2,5) 125 | plot(0:50, A2(1:51)); title('A') 126 | subplot(3,2,6) 127 | plot(0:50, v2(1:51)); title('v') 128 | -------------------------------------------------------------------------------- /dynare/NK_linear_det.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 5, New Keynesian model, 3 | // linearized, deterministic solution 4 | // modified on 2020/01/02 5 | //======================================= 6 | 7 | // 1. 内生変数、外生変数の宣言 8 | var x ppi a ii v; 9 | varexo e z; 10 | 11 | // 2. パラメータの宣言 12 | parameters beta kappa phi_pi phi_y rho_A rho_v; 13 | 14 | // パラメータ値の代入 15 | beta = 0.99; 16 | gamma = 5; 17 | varrho = 0.9; 18 | kappa = (1-varrho)*(1-varrho*beta)*(gamma+1)/varrho; 19 | phi_pi = 1.5; 20 | phi_y = 0.5; 21 | rho_A = 0.9; 22 | rho_v = 0.7; 23 | 24 | // 3. 方程式の定義 25 | model(linear); 26 | ppi = beta*ppi(+1)+kappa*x; 27 | x = x(+1)-(ii-ppi(+1))+(rho_A-1)*a; 28 | ii = phi_pi*ppi + phi_y*x + v; 29 | a = rho_A*a(-1) + e; 30 | v = rho_v*v(-1) + z; 31 | end; 32 | 33 | // 全てゼロになることを念のためチェック 34 | steady; 35 | 36 | // モデルのチェック 37 | check; 38 | 39 | // 5. シミュレーション(deterministic) 40 | shocks; 41 | var e; periods 1; values 0.01; 42 | end; 43 | 44 | //simul(periods=150); 45 | perfect_foresight_setup(periods=150); 46 | perfect_foresight_solver; 47 | 48 | figure(1) 49 | subplot(3,2,1) 50 | plot(0:50, x(1:51)*100); title('x') 51 | subplot(3,2,2) 52 | plot(0:50, ii(1:51)*100); title('i') 53 | subplot(3,2,3) 54 | plot(0:50, ppi(1:51)*100); title('pi') 55 | subplot(3,2,5) 56 | plot(0:50, a(1:51)*100); title('a') 57 | subplot(3,2,6) 58 | plot(0:50, v(1:51)*100); title('v') 59 | 60 | shocks; 61 | var e; periods 1; values 0; 62 | var z; periods 1; values 0.01; 63 | end; 64 | 65 | //simul(periods=150); 66 | perfect_foresight_setup(periods=150); 67 | perfect_foresight_solver; 68 | 69 | figure(2) 70 | subplot(3,2,1) 71 | plot(0:50, x(1:51)*100); title('x') 72 | subplot(3,2,2) 73 | plot(0:50, ii(1:51)*100); title('i') 74 | subplot(3,2,3) 75 | plot(0:50, ppi(1:51)*100); title('pi') 76 | subplot(3,2,5) 77 | plot(0:50, a(1:51)*100); title('a') 78 | subplot(3,2,6) 79 | plot(0:50, v(1:51)*100); title('v') 80 | -------------------------------------------------------------------------------- /dynare/NK_linear_stoch.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 5, New Keynesian model, 3 | // linearized, stochastic solution 4 | // modified on 2020/01/02 5 | //======================================= 6 | 7 | // 1. 内生変数、外生変数の宣言 8 | var x ppi a ii v; 9 | varexo e z; 10 | 11 | // 2. パラメータの宣言 12 | parameters beta kappa phi_pi phi_y rho_A rho_v; 13 | 14 | // パラメータ値の代入 15 | beta = 0.99; 16 | gamma = 5; 17 | varrho = 0.9; 18 | kappa = (1-varrho)*(1-varrho*beta)*(gamma+1)/varrho; 19 | phi_pi = 1.5; 20 | phi_y = 0.5; 21 | rho_A = 0.9; 22 | rho_v = 0.7; 23 | 24 | // 3. 方程式の定義 25 | model(linear); 26 | ppi = beta*ppi(+1)+kappa*x; 27 | x = x(+1)-(ii-ppi(+1))+(rho_A-1)*a; 28 | ii = phi_pi*ppi + phi_y*x + v; 29 | a = rho_A*a(-1) + e; 30 | v = rho_v*v(-1) + z; 31 | end; 32 | 33 | // 全てゼロになることを念のためチェック 34 | steady; 35 | 36 | // モデルのチェック 37 | check; 38 | 39 | // 5. シミュレーション(stochastic) 40 | shocks; 41 | var e = 1; 42 | end; 43 | 44 | stoch_simul(order=1, irf = 100) x ii ppi a v; 45 | 46 | shocks; 47 | var e = 0; 48 | var z = 1; 49 | end; 50 | 51 | stoch_simul(order=1, irf = 100) x ii ppi a v; 52 | -------------------------------------------------------------------------------- /dynare/RBC_det.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 4, RBC model, deterministic solution 3 | // modified on 2020/01/02 4 | //======================================= 5 | 6 | // 1. 内生変数、外生変数の宣言 7 | var C L K Y w r A; 8 | varexo e; 9 | 10 | // 2. パラメータの宣言 11 | parameters alpha beta delta mu gamma rho; 12 | 13 | // パラメータ値の代入 14 | alpha = 0.3; 15 | beta = 0.99; 16 | delta = 0.025; 17 | mu = 1.0; 18 | gamma = 1.0; 19 | rho = 0.9; 20 | 21 | // 3. 方程式の定義 22 | model; 23 | w/C = (gamma+1)*mu*L^gamma; 24 | C(+1)/C = beta*(r(+1)-delta+1); 25 | Y = A*K^alpha*L^(1-alpha); 26 | w = (1-alpha)*A*K^alpha*L^(-alpha); 27 | r = alpha*A*K^(alpha-1)*L^(1-alpha); 28 | K = Y(-1)+(1-delta)*K(-1)-C(-1); 29 | log(A) = rho*log(A(-1)) + e; 30 | end; 31 | 32 | // 4. 定常状態の計算 33 | Astar = 1; 34 | rstar = 1/beta + delta - 1; 35 | K_L = (rstar/alpha/Astar)^(1/(alpha-1)); 36 | Y_L = Astar*K_L^alpha; 37 | C_L = Y_L-delta*K_L; 38 | wstar = (1-alpha)*Astar*K_L^alpha; 39 | Lstar = (wstar/(gamma+1)/mu)^(1/(gamma+1))*C_L^(-1/(gamma+1)); 40 | Kstar = K_L*Lstar; 41 | Ystar = Y_L*Lstar; 42 | Cstar = C_L*Lstar; 43 | 44 | // Dynareに定常状態を計算させる際の初期値 45 | initval; 46 | C = Cstar; 47 | L = Lstar; 48 | K = Kstar; 49 | Y = Ystar; 50 | w = wstar; 51 | r = rstar; 52 | A = Astar; 53 | end; 54 | 55 | // Dynareに定常状態を計算させる 56 | steady; 57 | 58 | // 初期値と結果が変わらないことをチェック 59 | [Cstar; Lstar; Kstar; Ystar; wstar; rstar; Astar] 60 | 61 | // モデルのチェック 62 | check; 63 | 64 | // 5. シミュレーション 65 | // シナリオの設定 66 | shocks; 67 | var e; 68 | periods 1; 69 | values 0.01; 70 | end; 71 | 72 | // シミュレーションの実行 73 | //simul(periods=150); 74 | perfect_foresight_setup(periods=150); 75 | perfect_foresight_solver; 76 | 77 | // 定常状態からの乖離率の計算 78 | C1 = (C./Cstar-1)*100; 79 | L1 = (L./Lstar-1)*100; 80 | K1 = (K./Kstar-1)*100; 81 | Y1 = (Y./Ystar-1)*100; 82 | w1 = (w./wstar-1)*100; 83 | r1 = (r-rstar)*100; 84 | A1 = (A./Astar-1)*100; 85 | I1 = ((Y-C)./(Ystar-Cstar)-1)*100; 86 | 87 | // グラフ描写 88 | figure(1) 89 | subplot(2,2,1) 90 | plot(0:50, A1(1:51)); title('A') 91 | subplot(2,2,2) 92 | plot(0:50, Y1(1:51)); title('Y') 93 | subplot(2,2,3) 94 | plot(0:50, C1(1:51)); title('C') 95 | subplot(2,2,4) 96 | plot(0:50, K1(1:51)); title('K') 97 | 98 | figure(2) 99 | subplot(2,2,1) 100 | plot(0:50, L1(1:51)); title('L') 101 | subplot(2,2,2) 102 | plot(0:50, I1(1:51)); title('I') 103 | subplot(2,2,3) 104 | plot(0:50, w1(1:51)); title('w') 105 | subplot(2,2,4) 106 | plot(0:50, r1(1:51)); title('r') 107 | -------------------------------------------------------------------------------- /dynare/RBC_linear_det.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 4, RBC model, 3 | // linearized, deterministic solution 4 | // modified on 2021/03/03 5 | //======================================= 6 | 7 | // 1. 内生変数、外生変数の宣言 8 | var C L K Y w R A; 9 | varexo e; 10 | 11 | // 2. パラメータの宣言 12 | parameters alpha beta delta mu gamma rho Rstar Kstar Ystar Cstar; 13 | 14 | // パラメータ値の代入 15 | alpha = 0.3; 16 | beta = 0.99; 17 | delta = 0.025; 18 | mu = 1.0; 19 | gamma = 1.0; 20 | rho = 0.9; 21 | 22 | model; 23 | w-C = gamma*L; 24 | C(+1)-C = beta*Rstar*R(+1); 25 | Y = A + alpha*K + (1-alpha)*L; 26 | w = A + alpha*K - alpha*L; 27 | Rstar/(Rstar-1)*R = A + (alpha-1)*K + (1-alpha)*L; 28 | Kstar*K = Ystar*Y(-1)+(1-delta)*Kstar*K(-1)-Cstar*C(-1); 29 | A = rho*A(-1) + e; 30 | end; 31 | 32 | // 4. 定常状態の計算 33 | Astar = 1; 34 | rstar = 1/beta+delta-1; 35 | K_L = (rstar/alpha/Astar)^(1/(alpha-1)); 36 | Y_L = Astar*K_L^alpha; 37 | C_L = Y_L-delta*K_L; 38 | wstar = (1-alpha)*Astar*K_L^alpha; 39 | Lstar = (wstar/(gamma+1)/mu)^(1/(gamma+1))*C_L^(-1/(gamma+1)); 40 | Kstar = K_L*Lstar; 41 | Ystar = Y_L*Lstar; 42 | Cstar = C_L*Lstar; 43 | Rstar = rstar+1; 44 | 45 | // 全てゼロになることを念のためチェック 46 | steady; 47 | 48 | // モデルのチェック 49 | check; 50 | 51 | // 5. シミュレーション 52 | // シナリオの設定 53 | shocks; 54 | var e; 55 | periods 1; 56 | values 0.01; 57 | end; 58 | 59 | // シミュレーションの実行 60 | //simul(periods=150); 61 | perfect_foresight_setup(periods=150); 62 | perfect_foresight_solver; 63 | 64 | I = (Y*Ystar-C*Cstar)./(Ystar-Cstar); 65 | 66 | // グラフ描写 67 | figure(3) 68 | subplot(2,2,1) 69 | plot(0:50, A(1:51)*100); title('A') 70 | subplot(2,2,2) 71 | plot(0:50, Y(1:51)*100); title('Y') 72 | subplot(2,2,3) 73 | plot(0:50, C(1:51)*100); title('C') 74 | subplot(2,2,4) 75 | plot(0:50, K(1:51)*100); title('K') 76 | 77 | figure(4) 78 | subplot(2,2,1) 79 | plot(0:50, L(1:51)*100); title('L') 80 | subplot(2,2,2) 81 | plot(0:50, I(1:51)*100); title('I') 82 | subplot(2,2,3) 83 | plot(0:50, w(1:51)*100); title('w') 84 | subplot(2,2,4) 85 | plot(0:50, R(1:51)*100); title('r') 86 | -------------------------------------------------------------------------------- /dynare/RBC_linear_stoch.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 4, RBC model, 3 | // linearized, stochastic solution 4 | // modified on 2020/01/02 5 | //======================================= 6 | 7 | // 1. 内生変数、外生変数の宣言 8 | var c l k y w R a; 9 | varexo e; 10 | 11 | // 2. パラメータの宣言 12 | parameters alpha beta delta mu gamma rho Rstar Kstar Ystar Cstar; 13 | 14 | // パラメータ値の代入 15 | alpha = 0.3; 16 | beta = 0.99; 17 | delta = 0.025; 18 | mu = 1.0; 19 | gamma = 1.0; 20 | rho = 0.9; 21 | 22 | model; 23 | w-c = gamma*l; 24 | c(+1)-c = beta*Rstar*R(+1); 25 | y = a + alpha*k + (1-alpha)*l; 26 | w = a + alpha*k - alpha*l; 27 | Rstar/(Rstar-1)*R = a + (alpha-1)*k + (1-alpha)*l; 28 | Kstar*k = Ystar*y(-1)+(1-delta)*Kstar*k(-1)-Cstar*c(-1); 29 | a = rho*a(-1) + e; 30 | end; 31 | 32 | // 4. 定常状態の計算 33 | Astar = 1; 34 | rstar = 1/beta+delta-1; 35 | K_L = (rstar/alpha/Astar)^(1/(alpha-1)); 36 | Y_L = Astar*K_L^alpha; 37 | C_L = Y_L-delta*K_L; 38 | wstar = (1-alpha)*Astar*K_L^alpha; 39 | Lstar = (wstar/(gamma+1)/mu)^(1/(gamma+1))*C_L^(-1/(gamma+1)); 40 | Kstar = K_L*Lstar; 41 | Ystar = Y_L*Lstar; 42 | Cstar = C_L*Lstar; 43 | Rstar = rstar+1; 44 | 45 | // 全てゼロになることを念のためチェック 46 | steady; 47 | 48 | // モデルのチェック 49 | check; 50 | 51 | // 5. シミュレーション(stochastic) 52 | // シナリオの設定 53 | shocks; 54 | var e = 1; 55 | end; 56 | 57 | // シミュレーションの実行 58 | stoch_simul(order=1, irf = 100) c l k y w R a; 59 | -------------------------------------------------------------------------------- /dynare/RBC_stoch.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 4, RBC model, stochastic solution 3 | // modified on 2020/01/02 4 | //======================================= 5 | 6 | // 1. 内生変数、外生変数の宣言 7 | var C L K Y w R A; 8 | varexo e; 9 | 10 | // 2. パラメータの宣言 11 | parameters alpha beta delta mu gamma rho; 12 | 13 | // パラメータ値の代入 14 | alpha = 0.3; 15 | beta = 0.99; 16 | delta = 0.025; 17 | mu = 1.0; 18 | gamma = 1.0; 19 | rho = 0.9; 20 | 21 | // 3. 方程式の定義 22 | model; 23 | exp(w)/exp(C) = (gamma+1)*mu*exp(L)^gamma; 24 | exp(C(+1))/exp(C) = beta*(exp(R(+1))-delta); 25 | exp(Y) = exp(A)*exp(K)^alpha*exp(L)^(1-alpha); 26 | exp(w) = (1-alpha)*exp(A)*exp(K)^alpha*exp(L)^(-alpha); 27 | exp(R)-1 = alpha*exp(A)*exp(K)^(alpha-1)*exp(L)^(1-alpha); 28 | exp(K) = exp(Y(-1))+(1-delta)*exp(K(-1))-exp(C(-1)); 29 | A = rho*A(-1) + e; 30 | end; 31 | 32 | // 4. 定常状態の計算 33 | Astar = 1; 34 | rstar = 1/beta + delta - 1; 35 | K_L = (rstar/alpha/Astar)^(1/(alpha-1)); 36 | Y_L = Astar*K_L^alpha; 37 | C_L = Y_L-delta*K_L; 38 | wstar = (1-alpha)*Astar*K_L^alpha; 39 | Lstar = (wstar/(gamma+1)/mu)^(1/(gamma+1))*C_L^(-1/(gamma+1)); 40 | Kstar = K_L*Lstar; 41 | Ystar = Y_L*Lstar; 42 | Cstar = C_L*Lstar; 43 | 44 | // Dynareに定常状態を計算させる際の初期値 45 | initval; 46 | C = log(Cstar); 47 | L = log(Lstar); 48 | K = log(Kstar); 49 | Y = log(Ystar); 50 | w = log(wstar); 51 | R = log(1+rstar); 52 | A = log(Astar); 53 | end; 54 | 55 | // Dynareに定常状態を計算させる 56 | steady; 57 | 58 | // 初期値と結果が変わらないことをチェック 59 | [log(Cstar); log(Lstar); log(Kstar); log(Ystar); log(wstar); log(rstar+1); log(Astar)] 60 | 61 | // モデルのチェック 62 | check; 63 | 64 | // 5. シミュレーション(stochastic) 65 | // シナリオの設定 66 | shocks; 67 | var e = 1; 68 | end; 69 | 70 | // シミュレーションの実行 71 | stoch_simul(order=1, irf = 100) C L K Y w R A; 72 | -------------------------------------------------------------------------------- /dynare/Ramsey_tax1.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 3, Ramsey model with tax 1 3 | // modified on 2020/01/02 4 | //======================================= 5 | 6 | // 1. 内生変数、外生変数の宣言 7 | var C K; 8 | varexo tauc tauk g; 9 | 10 | // 2. パラメータの宣言 11 | parameters alpha beta delta At; 12 | 13 | // パラメータ値の代入 14 | alpha = 0.3; 15 | beta = 0.99; 16 | delta = 0.25; 17 | At = 1.0; 18 | 19 | // 3. 方程式の定義 20 | model; 21 | (1+tauc(+1))*C(+1)/(1+tauc)/C-beta*((1-tauk(+1))*alpha*At*K^(alpha-1)-delta+1) = 0; 22 | K-At*K(-1)^alpha-(1-delta)*K(-1)+C+g = 0; 23 | end; 24 | 25 | // 4. 初期値の定義 26 | initval; 27 | C = 1; 28 | K = 1; 29 | tauc = 0; 30 | tauk = 0; 31 | g = 0.1; 32 | end; 33 | 34 | steady; 35 | 36 | // 5. 定常状態の計算と終端値の定義 37 | endval; 38 | C = 1; 39 | K = 1; 40 | tauc = 0.1; 41 | tauk = 0; 42 | g = 0.1; 43 | end; 44 | 45 | steady; 46 | 47 | // 6. モデルのチェック 48 | check; 49 | 50 | // 7. シミュレーションの実行 51 | shocks; 52 | var tauc; periods 1:9; values 0; 53 | end; 54 | 55 | //simul(periods=31); 56 | perfect_foresight_setup(periods=31); 57 | perfect_foresight_solver; 58 | 59 | // グラフ描写 60 | figure(1) 61 | subplot(2,1,1) 62 | plot(0:30, C(1:31)) 63 | subplot(2,1,2) 64 | plot(0:30, K(1:31)) 65 | 66 | -------------------------------------------------------------------------------- /dynare/Ramsey_tax2.mod: -------------------------------------------------------------------------------- 1 | //======================================= 2 | // Chapter 3, Ramsey model with tax 2 3 | // modified on 2020/01/02 4 | //======================================= 5 | 6 | // 1. 内生変数、外生変数の宣言 7 | var C K; 8 | varexo tauc tauk g; 9 | 10 | // 2. パラメータの宣言 11 | parameters alpha beta delta At; 12 | 13 | // パラメータ値の代入 14 | alpha = 0.3; 15 | beta = 0.99; 16 | delta = 0.25; 17 | At = 1.0; 18 | 19 | // 3. 方程式の定義 20 | model; 21 | (1+tauc(+1))*C(+1)/(1+tauc)/C-beta*((1-tauk(+1))*alpha*At*K^(alpha-1)-delta+1) = 0; 22 | K-At*K(-1)^alpha-(1-delta)*K(-1)+C+g = 0; 23 | end; 24 | 25 | // 4. 初期値の定義 26 | initval; 27 | C = 1; 28 | K = 1; 29 | tauc = 0; 30 | tauk = 0; 31 | g = 0.1; 32 | end; 33 | 34 | steady; 35 | 36 | // 5. 終端値(定常状態)の定義 37 | endval; 38 | C = 1; 39 | K = 1; 40 | tauc = 0; 41 | tauk = 0.1; 42 | g = 0.1; 43 | end; 44 | 45 | steady; 46 | 47 | // 6. モデルのチェック 48 | check; 49 | 50 | // 7. シミュレーションの実行 51 | shocks; 52 | var tauk; periods 1:9; values 0; 53 | end; 54 | 55 | //simul(periods=31); 56 | perfect_foresight_setup(periods=31); 57 | perfect_foresight_solver; 58 | 59 | // グラフ描写 60 | figure(2) 61 | subplot(2,1,1) 62 | plot(0:30, C(1:31)) 63 | subplot(2,1,2) 64 | plot(0:30, K(1:31)) 65 | -------------------------------------------------------------------------------- /use_dynare.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhasumi/dynamicmodels/6f4698e0d39f6495827b5fe1448991e6a3c0921b/use_dynare.pdf --------------------------------------------------------------------------------