Skip to content

Instantly share code, notes, and snippets.

@alexchinco
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save alexchinco/2cc03ccdfafdc41890ae to your computer and use it in GitHub Desktop.
Save alexchinco/2cc03ccdfafdc41890ae to your computer and use it in GitHub Desktop.
Simulate equilibrium parameters for 2 period Kyle (1985)-type model
## Prep workspace
rm(list=ls())
library(foreign)
library(grid)
library(plyr)
library(ggplot2)
library(tikzDevice)
print(options('tikzLatexPackages'))
options(tikzLatexPackages =
c("\\usepackage{tikz}\n",
"\\usepackage[active,tightpage,psfixbb]{preview}\n",
"\\PreviewEnvironment{pgfpicture}\n",
"\\setlength\\PreviewBorder{0pt}\n",
"\\usepackage{amsmath}\n",
"\\usepackage{xfrac}\n"
)
)
setTikzDefaults(overwrite = FALSE)
print(options('tikzLatexPackages'))
library(reshape)
library(vars)
library(scales)
library(zoo)
library(optimx)
scl.str.DAT_DIR <- "~/Dropbox/research/absolutely_small/data/"
scl.str.FIG_DIR <- "~/Dropbox/research/absolutely_small/figures/"
## Define global parameters
scl.flt.SIG_V <- 1
## Define equilibrium parameter functions
fun.LAM_0_HAT <- function(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP) {
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.A <- scl.flt.BET_0 * scl.flt.SIG_V^2
scl.flt.B <- scl.flt.SIG_NZ^2 + scl.flt.BET_0^2 * scl.flt.SIG_S^2
scl.flt.OUT <- scl.flt.A/scl.flt.B
return(scl.flt.OUT)
}
fun.SIG_V_COND_HAT <- function(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP) {
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.A <- scl.flt.BET_0^2 * scl.flt.SIG_EP^2 + scl.flt.SIG_NZ^2
scl.flt.B <- scl.flt.BET_0^2 * scl.flt.SIG_S^2 + scl.flt.SIG_NZ^2
scl.flt.OUT <- sqrt((scl.flt.A/scl.flt.B) * scl.flt.SIG_V^2)
return(scl.flt.OUT)
}
fun.SIG_S_COND_HAT <- function(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP) {
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.A <- scl.flt.SIG_NZ^2
scl.flt.B <- scl.flt.BET_0^2 * scl.flt.SIG_S^2 + scl.flt.SIG_NZ^2
scl.flt.OUT <- sqrt((scl.flt.A/scl.flt.B) * scl.flt.SIG_S^2)
return(scl.flt.OUT)
}
fun.LAM_1_HAT <- function(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP) {
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.TET <- scl.flt.SIG_V^2/scl.flt.SIG_S^2
scl.flt.SIG_V_COND_HAT <- fun.SIG_V_COND_HAT(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.SIG_S_COND_HAT <- fun.SIG_S_COND_HAT(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.A <- sqrt((scl.flt.TET/2) * (scl.flt.SIG_V_COND_HAT^2 - (scl.flt.TET/2) * scl.flt.SIG_S_COND_HAT^2))
scl.flt.OUT <- (1/scl.flt.SIG_NZ) * scl.flt.A
return(scl.flt.OUT)
}
## Define beta1 solver
fun.BET_0_SLN <- function(scl.flt.BET_0, vec.flt.PAR) {
scl.flt.SIG_NZ <- vec.flt.PAR[1]
scl.flt.SIG_EP <- vec.flt.PAR[2]
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.TET <- scl.flt.SIG_V^2/scl.flt.SIG_S^2
scl.flt.LAM_0_HAT <- fun.LAM_0_HAT(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.LAM_1_HAT <- fun.LAM_1_HAT(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.OMG_1_HAT <- 1/(4 * scl.flt.LAM_1_HAT)
scl.flt.A <- scl.flt.TET/(2 * scl.flt.LAM_0_HAT)
scl.flt.B <- scl.flt.LAM_1_HAT - 2 * scl.flt.OMG_1_HAT * scl.flt.LAM_0_HAT
scl.flt.C <- scl.flt.LAM_1_HAT - scl.flt.OMG_1_HAT * scl.flt.LAM_0_HAT
scl.flt.ERR <- (scl.flt.A * scl.flt.B/scl.flt.C - scl.flt.BET_0)^2
return(scl.flt.ERR)
}
## Try out solver to make sure that it works
scl.flt.SIG_NZ <- 1
scl.flt.SIG_EP <- 1
obj.opt.RESULTS <- optimize(fun.BET_0_SLN, vec.flt.PAR = c(scl.flt.SIG_NZ, scl.flt.SIG_EP), lower = 0, upper = 2, tol = 0.001)
print(obj.opt.RESULTS)
## Define simulation parameters
vec.flt.SIG_NZ <- c(0.50, 1, 1.50, 2)
scl.int.SIG_NZ_LEN <- length(vec.flt.SIG_NZ)
vec.flt.SIG_EP <- seq(0.01,3,by=0.01)
scl.int.SIG_EP_LEN <- length(vec.flt.SIG_EP)
mat.df.PARAM <- data.frame(sigEP = rep(vec.flt.SIG_EP, scl.int.SIG_NZ_LEN),
sigNZ = sort(rep(vec.flt.SIG_NZ, scl.int.SIG_EP_LEN)),
bet0 = NA,
bet1 = NA,
lam0 = NA,
lam1 = NA
)
## Compute model parameters
scl.flt.TOL <- 0.0001
for (s in 1:scl.int.SIG_NZ_LEN) {
for (e in 1:scl.int.SIG_EP_LEN) {
scl.flt.UB <- min(1/2 * (1/vec.flt.SIG_EP[e]), 1/2)
obj.opt.RESULTS <- optimize(f = fun.BET_0_SLN, interval = c(0,scl.flt.UB), tol = scl.flt.TOL, vec.flt.PAR = c(vec.flt.SIG_NZ[s], vec.flt.SIG_EP[e]))
scl.flt.TET <- scl.flt.SIG_V^2/(scl.flt.SIG_V^2 + vec.flt.SIG_EP[e]^2)
if (obj.opt.RESULTS$objective <= scl.flt.TOL) {
vec.int.ROWS <- which((mat.df.PARAM$sigNZ == vec.flt.SIG_NZ[s]) & (mat.df.PARAM$sigEP == vec.flt.SIG_EP[e]))
mat.df.PARAM[vec.int.ROWS, ]$bet0 <- obj.opt.RESULTS$minimum
mat.df.PARAM[vec.int.ROWS, ]$lam0 <- fun.LAM_0_HAT(obj.opt.RESULTS$minimum, vec.flt.SIG_NZ[s], vec.flt.SIG_EP[e])
mat.df.PARAM[vec.int.ROWS, ]$lam1 <- fun.LAM_1_HAT(obj.opt.RESULTS$minimum, vec.flt.SIG_NZ[s], vec.flt.SIG_EP[e])
mat.df.PARAM[vec.int.ROWS, ]$bet1 <- scl.flt.TET/(2 * mat.df.PARAM[vec.int.ROWS, ]$lam1)
}
}
}
## Create realized dividend plot
theme_set(theme_bw())
mat.df.PLOT <- mat.df.PARAM[, c("sigNZ", "sigEP", "bet0", "bet1", "lam0", "lam1")]
mat.df.PLOT <- melt(mat.df.PLOT, c("sigNZ", "sigEP"))
mat.df.PLOT$time <- "$t=0$"
mat.df.PLOT[mat.df.PLOT$variable %in% c("bet1", "lam1"), ]$time <- "$t=1$"
mat.df.PLOT$coef <- "$\\beta_t$"
mat.df.PLOT[mat.df.PLOT$variable %in% c("lam0", "lam1"), ]$coef <- "$\\lambda_t$"
mat.df.PLOT$sigNZ <- factor(mat.df.PLOT$sigNZ,
levels = c("0.5", "1", "1.5", "2"),
labels = c("$\\sigma_{\\text{nz}} = \\sfrac{1}{2}$", "$\\sigma_{\\text{nz}} = 1$", "$\\sigma_{\\text{nz}} = \\sfrac{3}{2}$", "$\\sigma_{\\text{nz}} = 2$")
)
scl.str.RAW_FILE <- 'plot--2-period-kyle-model-solution--11aug2014'
scl.str.TEX_FILE <- paste(scl.str.RAW_FILE,'.tex',sep='')
scl.str.PDF_FILE <- paste(scl.str.RAW_FILE,'.pdf',sep='')
scl.str.PNG_FILE <- paste(scl.str.RAW_FILE,'.png',sep='')
scl.str.AUX_FILE <- paste(scl.str.RAW_FILE,'.aux',sep='')
scl.str.LOG_FILE <- paste(scl.str.RAW_FILE,'.log',sep='')
tikz(file = scl.str.TEX_FILE, height = 3, width = 7, standAlone=TRUE)
obj.gg2.PLOT <- ggplot()
obj.gg2.PLOT <- obj.gg2.PLOT + scale_colour_brewer(palette="Set1")
obj.gg2.PLOT <- obj.gg2.PLOT + geom_path(data = mat.df.PLOT,
aes(x = sigEP,
y = value,
group = time,
colour = time
),
size = 0.75
)
obj.gg2.PLOT <- obj.gg2.PLOT + scale_x_continuous(limits = c(0,3), breaks = c(0.50, 1.00, 1.5, 2, 2.5), labels = c("$\\sfrac{1}{2}$", "$1$", "$\\sfrac{3}{2}$", "$2$", "$\\sfrac{5}{2}$"))
obj.gg2.PLOT <- obj.gg2.PLOT + xlab("$\\sigma_{\\epsilon}$")
obj.gg2.PLOT <- obj.gg2.PLOT + ylab("")
obj.gg2.PLOT <- obj.gg2.PLOT + labs(group = "", colour = "")
obj.gg2.PLOT <- obj.gg2.PLOT + facet_grid(coef ~ sigNZ, scales = "free_y")
obj.gg2.PLOT <- obj.gg2.PLOT + theme(plot.margin = unit(c(1,0.15,0.15,-1.00), "lines"),
plot.title = element_text(vjust = 1.75),
legend.position = c(0.05, 0.90),
legend.background = element_blank(),
axis.text = element_text(size = 6),
axis.title = element_text(size = 10),
panel.grid.minor = element_blank()
)
obj.gg2.PLOT <- obj.gg2.PLOT + ggtitle("Kyle (1985) Model Solution with $\\sigma_v = \\mathdollar 1$")
print(obj.gg2.PLOT)
dev.off()
system(paste('lualatex', file.path(scl.str.TEX_FILE)), ignore.stdout = TRUE)
system(paste('convert -density 600', file.path(scl.str.PDF_FILE), ' ', file.path(scl.str.PNG_FILE)))
system(paste('mv ', scl.str.PNG_FILE, ' ', scl.str.FIG_DIR, sep = ''))
system(paste('rm ', scl.str.TEX_FILE, sep = ''))
system(paste('mv ', scl.str.PDF_FILE, ' ', scl.str.FIG_DIR, sep = ''))
system(paste('rm ', scl.str.AUX_FILE, sep = ''))
system(paste('rm ', scl.str.LOG_FILE, sep = ''))
## Prep workspace
rm(list=ls())
library(foreign)
library(grid)
library(plyr)
library(ggplot2)
library(tikzDevice)
print(options('tikzLatexPackages'))
options(tikzLatexPackages =
c("\\usepackage{tikz}\n",
"\\usepackage[active,tightpage,psfixbb]{preview}\n",
"\\PreviewEnvironment{pgfpicture}\n",
"\\setlength\\PreviewBorder{0pt}\n",
"\\usepackage{amsmath}\n",
"\\usepackage{xfrac}\n"
)
)
setTikzDefaults(overwrite = FALSE)
print(options('tikzLatexPackages'))
library(reshape)
library(vars)
library(scales)
library(zoo)
scl.str.DAT_DIR <- "~/Dropbox/research/absolutely_small/data/"
scl.str.FIG_DIR <- "~/Dropbox/research/absolutely_small/figures/"
## Define global parameters
scl.flt.SIG_V <- sqrt(1)
scl.flt.SIG_NZ <- sqrt(1)
scl.flt.SIG_EP <- sqrt(1)
scl.flt.TOL <- 0.00001
scl.int.ITER <- 10000
## Define equilibrium parameter functions
fun.LAM_0_HAT <- function(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP) {
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.A <- scl.flt.BET_0 * scl.flt.SIG_V^2
scl.flt.B <- scl.flt.SIG_NZ^2 + scl.flt.BET_0^2 * scl.flt.SIG_S^2
scl.flt.OUT <- scl.flt.A/scl.flt.B
return(scl.flt.OUT)
}
fun.SIG_V_COND_HAT <- function(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP) {
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.A <- scl.flt.BET_0^2 * scl.flt.SIG_EP^2 + scl.flt.SIG_NZ^2
scl.flt.B <- scl.flt.BET_0^2 * scl.flt.SIG_S^2 + scl.flt.SIG_NZ^2
scl.flt.OUT <- sqrt((scl.flt.A/scl.flt.B) * scl.flt.SIG_V^2)
return(scl.flt.OUT)
}
fun.SIG_S_COND_HAT <- function(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP) {
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.A <- scl.flt.SIG_NZ^2
scl.flt.B <- scl.flt.BET_0^2 * scl.flt.SIG_S^2 + scl.flt.SIG_NZ^2
scl.flt.OUT <- sqrt((scl.flt.A/scl.flt.B) * scl.flt.SIG_S^2)
return(scl.flt.OUT)
}
fun.LAM_1_HAT <- function(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP) {
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.TET <- scl.flt.SIG_V^2/scl.flt.SIG_S^2
scl.flt.SIG_V_COND_HAT <- fun.SIG_V_COND_HAT(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.SIG_S_COND_HAT <- fun.SIG_S_COND_HAT(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.A <- sqrt((scl.flt.TET/2) * (scl.flt.SIG_V_COND_HAT^2 - (scl.flt.TET/2) * scl.flt.SIG_S_COND_HAT^2))
scl.flt.OUT <- (1/scl.flt.SIG_NZ) * scl.flt.A
return(scl.flt.OUT)
}
## Define beta1 solver
fun.BET_0_SLN <- function(scl.flt.BET_0, vec.flt.PAR) {
scl.flt.SIG_NZ <- vec.flt.PAR[1]
scl.flt.SIG_EP <- vec.flt.PAR[2]
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.TET <- scl.flt.SIG_V^2/scl.flt.SIG_S^2
scl.flt.LAM_0_HAT <- fun.LAM_0_HAT(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.LAM_1_HAT <- fun.LAM_1_HAT(scl.flt.BET_0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.OMG_1_HAT <- 1/(4 * scl.flt.LAM_1_HAT)
scl.flt.A <- scl.flt.TET/(2 * scl.flt.LAM_0_HAT)
scl.flt.B <- scl.flt.LAM_1_HAT - 2 * scl.flt.OMG_1_HAT * scl.flt.LAM_0_HAT
scl.flt.C <- scl.flt.LAM_1_HAT - scl.flt.OMG_1_HAT * scl.flt.LAM_0_HAT
scl.flt.ERR <- (scl.flt.A * scl.flt.B/scl.flt.C - scl.flt.BET_0)^2
return(scl.flt.ERR)
}
## Compute equilibrium parameters
scl.flt.UB <- min(1/2 * (1/scl.flt.SIG_EP), 1/2)
obj.opt.RESULTS <- optimize(f = fun.BET_0_SLN, interval = c(0,scl.flt.UB), tol = scl.flt.TOL, vec.flt.PAR = c(scl.flt.SIG_NZ, scl.flt.SIG_EP))
scl.flt.BET0 <- obj.opt.RESULTS$minimum
scl.flt.LAM0 <- fun.LAM_0_HAT(scl.flt.BET0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.LAM1 <- fun.LAM_1_HAT(scl.flt.BET0, scl.flt.SIG_NZ, scl.flt.SIG_EP)
scl.flt.SIG_S <- sqrt(scl.flt.SIG_V^2 + scl.flt.SIG_EP^2)
scl.flt.TET <- scl.flt.SIG_V^2/scl.flt.SIG_S^2
scl.flt.BET1 <- scl.flt.TET/(2 * scl.flt.LAM1)
## Simulate asset value, signal, and prices
mat.df.SIM <- data.frame(i = seq(1, scl.int.ITER),
v = NA,
s = NA,
sCond = NA,
nz1 = NA,
nz2 = NA,
p1 = NA,
p2 = NA
)
for (i in 1:scl.int.ITER) {
mat.df.SIM[i, ]$v <- scl.flt.V <- rnorm(1, 0, scl.flt.SIG_V)
mat.df.SIM[i, ]$s <- scl.flt.S <- scl.flt.V + rnorm(1, 0, scl.flt.SIG_EP)
mat.df.SIM[i, ]$nz1 <- scl.flt.NZ1 <- rnorm(1, 0, scl.flt.SIG_NZ)
mat.df.SIM[i, ]$nz2 <- scl.flt.NZ2 <- rnorm(1, 0, scl.flt.SIG_NZ)
mat.df.SIM[i, ]$p1 <- scl.flt.P1 <- scl.flt.LAM0 * (scl.flt.BET0 * scl.flt.S + scl.flt.NZ1)
mat.df.SIM[i, ]$sCond <- ((scl.flt.BET0^2 * scl.flt.SIG_S^2)/(scl.flt.BET0^2 * scl.flt.SIG_S^2 + scl.flt.SIG_NZ^2)) * (scl.flt.BET0 * scl.flt.S + scl.flt.NZ1)
mat.df.SIM[i, ]$p2 <- scl.flt.P2 <- scl.flt.P1/2 + scl.flt.LAM1 * (scl.flt.BET1 * scl.flt.S + scl.flt.NZ2)
## mat.df.SIM[i, ]$p2 <- scl.flt.P2 <- scl.flt.LAM1 * (scl.flt.BET1 * scl.flt.S + scl.flt.NZ2)
}
## Plot price vs value
theme_set(theme_bw())
mat.df.SIM$sDiff <- mat.df.SIM$s - mat.df.SIM$sCond
mat.df.SIM$sDiff2 <- mat.df.SIM$sDiff^2
obj.lm.RESULT0A <- summary(lm(sDiff ~ 1, data = mat.df.SIM))
obj.lm.RESULT0B <- summary(lm(sDiff2 ~ 1, data = mat.df.SIM))
obj.lm.RESULT0C <- summary(lm(s ~ sCond, data = mat.df.SIM))
mat.df.PLOT <- mat.df.SIM[, c("i", "s", "sCond")]
scl.str.RAW_FILE <- 'plot--2-period-kyle-model--signal-updating--11aug2014'
scl.str.TEX_FILE <- paste(scl.str.RAW_FILE,'.tex',sep='')
scl.str.PDF_FILE <- paste(scl.str.RAW_FILE,'.pdf',sep='')
scl.str.PNG_FILE <- paste(scl.str.RAW_FILE,'.png',sep='')
scl.str.AUX_FILE <- paste(scl.str.RAW_FILE,'.aux',sep='')
scl.str.LOG_FILE <- paste(scl.str.RAW_FILE,'.log',sep='')
tikz(file = scl.str.TEX_FILE, height = 2, width = 7, standAlone=TRUE)
obj.gg2.PLOT <- ggplot(data = mat.df.PLOT,
aes(x = sCond,
y = s
)
)
obj.gg2.PLOT <- obj.gg2.PLOT + scale_colour_brewer(palette="Set1")
obj.gg2.PLOT <- obj.gg2.PLOT + stat_smooth(method = "lm", se = FALSE, colour = "blue", size = 1)
obj.gg2.PLOT <- obj.gg2.PLOT + geom_point(size = 0.50, alpha = 0.50)
## obj.gg2.PLOT <- obj.gg2.PLOT + scale_x_continuous(limits = c(0,3), breaks = c(0.50, 1.00, 1.5, 2, 2.5), labels = c("$\\sfrac{1}{2}$", "$1$", "$\\sfrac{3}{2}$", "$2$", "$\\sfrac{5}{2}$"))
obj.gg2.PLOT <- obj.gg2.PLOT + ylab("$s_n$")
obj.gg2.PLOT <- obj.gg2.PLOT + xlab("$\\mathrm{E}[s_n|\\Delta x_{n,1}]$")
## obj.gg2.PLOT <- obj.gg2.PLOT + labs(group = "", colour = "")
obj.gg2.PLOT <- obj.gg2.PLOT + theme(plot.margin = unit(c(1,0.15,0.15,0.15), "lines"),
plot.title = element_text(vjust = 1.75),
legend.position = c(0.05, 0.90),
legend.background = element_blank(),
axis.text = element_text(size = 6),
axis.title = element_text(size = 10),
panel.grid.minor = element_blank()
)
obj.gg2.PLOT <- obj.gg2.PLOT + ggtitle("Kyle (1985) Model Solution: Signal Updating")
print(obj.gg2.PLOT)
dev.off()
system(paste('lualatex', file.path(scl.str.TEX_FILE)), ignore.stdout = TRUE)
system(paste('convert -density 600', file.path(scl.str.PDF_FILE), ' ', file.path(scl.str.PNG_FILE)))
system(paste('mv ', scl.str.PNG_FILE, ' ', scl.str.FIG_DIR, sep = ''))
system(paste('rm ', scl.str.TEX_FILE, sep = ''))
system(paste('mv ', scl.str.PDF_FILE, ' ', scl.str.FIG_DIR, sep = ''))
system(paste('rm ', scl.str.AUX_FILE, sep = ''))
system(paste('rm ', scl.str.LOG_FILE, sep = ''))
## Plot price vs value
theme_set(theme_bw())
mat.df.SIM$p1Diff <- mat.df.SIM$v - mat.df.SIM$p1
mat.df.SIM$p1Diff2 <- mat.df.SIM$p1Diff^2
obj.lm.RESULT1A <- summary(lm(p1Diff ~ 1, data = mat.df.SIM))
obj.lm.RESULT1B <- summary(lm(p1Diff2 ~ 1, data = mat.df.SIM))
obj.lm.RESULT1C <- summary(lm(v ~ p1, data = mat.df.SIM))
mat.df.SIM$p2Diff <- mat.df.SIM$v - mat.df.SIM$p2
mat.df.SIM$p2Diff2 <- mat.df.SIM$p2Diff^2
obj.lm.RESULT2A <- summary(lm(p2Diff ~ 1, data = mat.df.SIM))
obj.lm.RESULT2B <- summary(lm(p2Diff2 ~ 1, data = mat.df.SIM))
obj.lm.RESULT2C <- summary(lm(v ~ p2, data = mat.df.SIM))
mat.df.SIM$dp2 <- (mat.df.SIM$p2 - mat.df.SIM$p1)
mat.df.SIM$dp1 <- mat.df.SIM$p1
mat.df.SIM$dpDiff <- mat.df.SIM$dp2 - mat.df.SIM$dp1
mat.df.SIM$dpDiff2 <- mat.df.SIM$dpDiff^2
obj.lm.RESULT3A <- summary(lm(dpDiff ~ 1, data = mat.df.SIM))
obj.lm.RESULT3B <- summary(lm(dpDiff2 ~ 1, data = mat.df.SIM))
obj.lm.RESULT3C <- summary(lm(dp2 ~ dp1, data = mat.df.SIM))
obj.lm.RESULT3D <- summary(lm(dpDiff ~ dp1, data = mat.df.SIM))
obj.lm.RESULT3E <- summary(lm(dpDiff2 ~ dp1, data = mat.df.SIM))
obj.lm.RESULT3F <- summary(lm(dp2 ~ p1, data = mat.df.SIM))
mat.df.PLOT <- mat.df.SIM[, c("i", "v", "p1", "p2")]
mat.df.PLOT <- melt(mat.df.PLOT, c("i", "v"))
mat.df.PLOT$time <- "$t=1$"
mat.df.PLOT[mat.df.PLOT$variable == "p2", ]$time <- "$t=2$"
scl.str.RAW_FILE <- 'plot--2-period-kyle-model--price-vs-value--11aug2014'
scl.str.TEX_FILE <- paste(scl.str.RAW_FILE,'.tex',sep='')
scl.str.PDF_FILE <- paste(scl.str.RAW_FILE,'.pdf',sep='')
scl.str.PNG_FILE <- paste(scl.str.RAW_FILE,'.png',sep='')
scl.str.AUX_FILE <- paste(scl.str.RAW_FILE,'.aux',sep='')
scl.str.LOG_FILE <- paste(scl.str.RAW_FILE,'.log',sep='')
tikz(file = scl.str.TEX_FILE, height = 2, width = 7, standAlone=TRUE)
obj.gg2.PLOT <- ggplot(data = mat.df.PLOT,
aes(x = value,
y = v,
group = time
)
)
obj.gg2.PLOT <- obj.gg2.PLOT + scale_colour_brewer(palette="Set1")
obj.gg2.PLOT <- obj.gg2.PLOT + stat_smooth(method = "lm", se = FALSE, colour = "blue", size = 1)
obj.gg2.PLOT <- obj.gg2.PLOT + geom_point(size = 0.50, alpha = 0.50)
## obj.gg2.PLOT <- obj.gg2.PLOT + scale_x_continuous(limits = c(0,3), breaks = c(0.50, 1.00, 1.5, 2, 2.5), labels = c("$\\sfrac{1}{2}$", "$1$", "$\\sfrac{3}{2}$", "$2$", "$\\sfrac{5}{2}$"))
obj.gg2.PLOT <- obj.gg2.PLOT + ylab("$v_n$")
obj.gg2.PLOT <- obj.gg2.PLOT + xlab("$p_{n,t}$")
## obj.gg2.PLOT <- obj.gg2.PLOT + labs(group = "", colour = "")
obj.gg2.PLOT <- obj.gg2.PLOT + facet_wrap( ~ time, ncol = 2)
obj.gg2.PLOT <- obj.gg2.PLOT + theme(plot.margin = unit(c(1,0.15,0.15,0.15), "lines"),
plot.title = element_text(vjust = 1.75),
legend.position = c(0.05, 0.90),
legend.background = element_blank(),
axis.text = element_text(size = 6),
axis.title = element_text(size = 10),
panel.grid.minor = element_blank()
)
obj.gg2.PLOT <- obj.gg2.PLOT + ggtitle("Kyle (1985) Model Solution: Price vs. Value")
print(obj.gg2.PLOT)
dev.off()
system(paste('lualatex', file.path(scl.str.TEX_FILE)), ignore.stdout = TRUE)
system(paste('convert -density 600', file.path(scl.str.PDF_FILE), ' ', file.path(scl.str.PNG_FILE)))
system(paste('mv ', scl.str.PNG_FILE, ' ', scl.str.FIG_DIR, sep = ''))
system(paste('rm ', scl.str.TEX_FILE, sep = ''))
system(paste('mv ', scl.str.PDF_FILE, ' ', scl.str.FIG_DIR, sep = ''))
system(paste('rm ', scl.str.AUX_FILE, sep = ''))
system(paste('rm ', scl.str.LOG_FILE, sep = ''))
mat.df.PLOT <- mat.df.SIM[, c("i", "dp2", "p1")]
scl.str.RAW_FILE <- 'plot--2-period-kyle-model--price-change-predictability--11aug2014'
scl.str.TEX_FILE <- paste(scl.str.RAW_FILE,'.tex',sep='')
scl.str.PDF_FILE <- paste(scl.str.RAW_FILE,'.pdf',sep='')
scl.str.PNG_FILE <- paste(scl.str.RAW_FILE,'.png',sep='')
scl.str.AUX_FILE <- paste(scl.str.RAW_FILE,'.aux',sep='')
scl.str.LOG_FILE <- paste(scl.str.RAW_FILE,'.log',sep='')
tikz(file = scl.str.TEX_FILE, height = 2, width = 7, standAlone=TRUE)
obj.gg2.PLOT <- ggplot(data = mat.df.PLOT,
aes(x = p1,
y = dp2
)
)
obj.gg2.PLOT <- obj.gg2.PLOT + scale_colour_brewer(palette="Set1")
obj.gg2.PLOT <- obj.gg2.PLOT + stat_smooth(method = "lm", se = FALSE, colour = "blue", size = 1)
obj.gg2.PLOT <- obj.gg2.PLOT + geom_point(size = 0.50, alpha = 0.50)
## obj.gg2.PLOT <- obj.gg2.PLOT + scale_x_continuous(limits = c(0,3), breaks = c(0.50, 1.00, 1.5, 2, 2.5), labels = c("$\\sfrac{1}{2}$", "$1$", "$\\sfrac{3}{2}$", "$2$", "$\\sfrac{5}{2}$"))
obj.gg2.PLOT <- obj.gg2.PLOT + xlab("$p_{n,1}$")
obj.gg2.PLOT <- obj.gg2.PLOT + ylab("$\\Delta p_{n,2} = p_{n,2} - p_{n,1}$")
## obj.gg2.PLOT <- obj.gg2.PLOT + labs(group = "", colour = "")
obj.gg2.PLOT <- obj.gg2.PLOT + theme(plot.margin = unit(c(1,0.15,0.15,0.15), "lines"),
plot.title = element_text(vjust = 1.75),
legend.position = c(0.05, 0.90),
legend.background = element_blank(),
axis.text = element_text(size = 6),
axis.title = element_text(size = 10),
panel.grid.minor = element_blank()
)
obj.gg2.PLOT <- obj.gg2.PLOT + ggtitle("Kyle (1985) Model Solution: Price Change Predictability")
print(obj.gg2.PLOT)
dev.off()
system(paste('lualatex', file.path(scl.str.TEX_FILE)), ignore.stdout = TRUE)
system(paste('convert -density 600', file.path(scl.str.PDF_FILE), ' ', file.path(scl.str.PNG_FILE)))
system(paste('mv ', scl.str.PNG_FILE, ' ', scl.str.FIG_DIR, sep = ''))
system(paste('rm ', scl.str.TEX_FILE, sep = ''))
system(paste('mv ', scl.str.PDF_FILE, ' ', scl.str.FIG_DIR, sep = ''))
system(paste('rm ', scl.str.AUX_FILE, sep = ''))
system(paste('rm ', scl.str.LOG_FILE, sep = ''))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment