require(graphics)
### EXAMPLE 1
x <- seq(-5, 5, by = 0.1) ; x
pkiener1(x, m=0, g=1, k=4)
dkiener1(x, m=0, g=1, k=4)
lkiener1(x, k=4)
plot( x, pkiener1(x, m=0, g=1, k=4), las=1)
lines(x, pkiener1(x, m=0, g=1, k=9999))
plot( x, lkiener1(x, m=0, g=1, k=4), las=1)
lines(x, lkiener1(x, m=0, g=1, k=9999))
p <- c(ppoints(11, a = 1), NA, NaN) ; p
qkiener1(p, k = 4)
dpkiener1(p, k = 4)
dqkiener1(p, k=4)
varkiener1(p=0.01, k=4)
ltmkiener1(p=0.01, k=4)
eskiener1(p=0.01, k=4) # VaR and ES should be positive
### END EXAMPLE 1
### PREPARE THE GRAPHICS FOR EXAMPLES 2 AND 3
xx <- c(-4,-2, 0, 2, 4)
lty <- c( 1, 2, 3, 4, 5, 1)
lwd <- c( 2, 1, 1, 1, 1, 1)
col <- c("black","green3","cyan3","dodgerblue2","purple2","brown3")
lat <- c(-6.9, -4.6, -2.9, 0, 2.9, 4.6, 6.9)
lgt <- c("logit(0.999) = 6.9", "logit(0.99) = 4.6", "logit(0.95) = 2.9",
"logit(0.50) = 0", "logit(0.05) = -2.9", "logit(0.01) = -4.6",
"logit(0.001) = -6.9 ")
funleg <- function(xy, k) legend(xy, title = expression(kappa), legend = names(k),
lty = lty, col = col, lwd = lwd, inset = 0.02, cex = 0.8)
funlgt <- function(xy) legend(xy, title = "logit(p)", legend = lgt,
inset = 0.02, cex = 0.6)
### EXAMPLE 2
### PROBA, DENSITY, LOGIT-PROBA, LOG-DENSITY FROM x
x <- seq(-5, 5, by = 0.1) ; head(x, 10)
k <- c(9999, 9, 5, 3, 2, 1) ; names(k) <- k
mat11 <- outer(x, k, \(x,k) pkiener1(x, k=k)) ; head(mat11, 10)
mat12 <- outer(x, k, \(x,k) dkiener1(x, k=k)) ; mat12
mat13 <- outer(x, k, \(x,k) lkiener1(x, k=k)) ; mat13
mat14 <- outer(x, k, \(x,k) dkiener1(x, k=k, log=TRUE)) ; mat14
op <- par(mfcol = c(2,2), mar = c(2.5,3,1.5,1), las=1)
matplot(x, mat11, type="l", lwd=lwd, lty=lty, col=col,
main="pkiener1(x, m=0, g=1, k=k)", xlab="", ylab="")
funleg("topleft", k)
matplot(x, mat12, type="l", lwd=lwd, lty=lty, col=col,
main="dkiener1", xlab="", ylab="")
funleg("topleft", k)
matplot(x, mat13, type="l", lwd=lwd, lty=lty, col=col, yaxt="n",
main="lkiener1", xlab="", ylab="")
axis(2, at=lat, las=1)
funleg("bottomright", k)
funlgt("topleft")
matplot(x, mat14, type="l", lwd=lwd, lty=lty, col=col,
main="log(dkiener1)", xlab="", ylab="")
funleg("bottom", k)
par(op)
### END EXAMPLE 2
### EXAMPLE 3
### QUANTILE, DIFF-QUANTILE, DENSITY, LOG-DENSITY FROM p
p <- ppoints(1999, a=0) ; head(p, n=10)
k <- c(9999, 9, 5, 3, 2, 1) ; names(k) <- k
mat15 <- outer(p, k, \(p,k) qkiener1(p, k=k)) ; head(mat15, 10)
mat16 <- outer(p, k, \(p,k) dqkiener1(p, k=k)) ; head(mat16, 10)
mat17 <- outer(p, k, \(p,k) dpkiener1(p, k=k)) ; head(mat17, 10)
op <- par(mfcol = c(2,2), mar = c(2.5,3,1.5,1), las=1)
matplot(p, mat15, type="l", xlim=c(0,1), ylim=c(-5,5),
lwd=lwd, lty=lty, col=col, las=1,
main="qkiener1(p, m=0, g=1, k=k)", xlab="", ylab="")
funleg("topleft", k)
matplot(p, mat16, type="l", xlim=c(0,1), ylim=c(0,40),
lwd=lwd, lty=lty, col=col, las=1,
main="dqkiener1", xlab="", ylab="")
funleg("top", k)
plot(NA, NA, xlim=c(-5, 5), ylim=c(0, 0.5), las=1,
main="qkiener1, dpkiener1", xlab="", ylab="")
mapply(matlines, x=as.data.frame(mat15), y=as.data.frame(mat17),
lwd=lwd, lty=1, col=col)
funleg("topright", k)
plot(NA, NA, xlim=c(-5, 5), ylim=c(-7, -0.5), las=1,
main="qkiener1, log(dpkiener1)", xlab="", ylab="")
mapply(matlines, x=as.data.frame(mat15), y=as.data.frame(log(mat17)),
lwd=lwd, lty=lty, col=col)
funleg("bottom", k)
par(op)
### END EXAMPLE 3
### EXAMPLE 4: PROCESSUS: which processus look credible?
### PARAMETER k VARIES
### RUN SEED ii <- 1 THEN THE cairo_pdf CODE WITH THE 6 SEEDS
# cairo_pdf("K1-6x6-stocks-k.pdf")
# for (ii in c(1,2016,2018,2022,2023,2024)) {
ii <- 1
set.seed(ii)
p <- sample(ppoints(299, a=0), 299)
k <- c(9999, 6, 4, 3, 2, 1) ; names(k) <- k
mat18 <- outer(p, k, \(p,k) qkiener1(p=p, g=0.85, k=k))
mat19 <- apply(mat18, 2, cumsum)
title <- paste0(
"stock_", ii,
": k_left = c(", paste(k[1:3], collapse = ", "), ")",
", k_right = c(", paste(k[4:6], collapse = ", "), ")")
plot.ts(mat19, ann=FALSE, las=1,
mar.multi=c(0,3,0,1), oma.multi=c(3,0,3,0.5))
mtext(title, outer = TRUE, line=-1.5, font=2)
plot.ts(mat18, ann=FALSE, las=1,
mar.multi=c(0,3,0,1), oma.multi=c(3,0,3,0.5))
mtext(title, outer=TRUE, line=-1.5, font=2)
# }
# dev.off()
### END EXAMPLE 4
Run the code above in your browser using DataLab