add density plots
This commit is contained in:
177
scripts/plot_densities.R
Normal file
177
scripts/plot_densities.R
Normal file
@@ -0,0 +1,177 @@
|
||||
# 1. Load functions and Libraries ----------------------------------------------
|
||||
source("./R/graphon_distribution.R")
|
||||
|
||||
# 2. Set constants -------------------------------------------------------------
|
||||
withr::with_seed(42) # set seed in a local environment
|
||||
|
||||
a0 <- c(0, 0)
|
||||
a1 <- c(1.0)
|
||||
a2 <- c(0.5, -0.3)
|
||||
|
||||
N <- 400 # number of samples for X
|
||||
|
||||
X1 = matrix(rnorm(N))
|
||||
X2 = matrix(rnorm(2 * N), ncol = 2)
|
||||
|
||||
|
||||
# 3. Normally distributed v's --------------------------------------------------
|
||||
## 3.1 Plot a = 0 ==============================================================
|
||||
# In this section we plot the conditional density p(u | x) for v ~ N(0,1) and
|
||||
# a = (0, 0)
|
||||
p1 <- create_cond_density(a0, dnorm, pnorm, X2)
|
||||
givenX <- c(0, 0)
|
||||
p1_plot <- \(x) p1(x, givenX)
|
||||
plot.function(p1_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% N(0, 1)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a0, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
## 3.2 Plot a != 0, X != 0 =====================================================
|
||||
p2 <- create_cond_density(a2, dnorm, pnorm, X2)
|
||||
givenX <- c(-0.5, 0.5)
|
||||
p2_plot <- \(x) p2(x, givenX)
|
||||
plot.function(p2_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% N(0, 1)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a2, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
## 3.3 Plot one dimensional X_i ================================================
|
||||
p3 <- create_cond_density(a1, dnorm, pnorm, X1)
|
||||
givenX <- c(-0.5)
|
||||
p3_plot <- \(x) p3(x, givenX)
|
||||
plot.function(p3_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% N(0, 1)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a1, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
## 3.4 Plot v ~ N(0, 2) ========================================================
|
||||
dens_func <-\(x) dnorm(x, sd=sqrt(2))
|
||||
cdf <- \(x) pnorm(x, sd=sqrt(2))
|
||||
p4 <- create_cond_density(a1, dens_func, cdf, X1)
|
||||
givenX <- c(-0.5)
|
||||
p4_plot <- \(x) p4(x, givenX)
|
||||
plot.function(p4_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% N(0, 2)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a1, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
# 4. Expontial distribution for v's --------------------------------------------
|
||||
## 4.1 One dimensional X_i =====================================================
|
||||
# This example has a jump in [0.14, 0.15].
|
||||
# The zero can not be explained and it's not a probability as:
|
||||
# integrate(p5_plot, 0.15, 1, subdivisions = 500)
|
||||
# => 0.952492 with absolute error < 0.00011
|
||||
lambda <- 1.0
|
||||
p5 <- create_cond_density(a1, dexp, pexp, X1)
|
||||
givenX <- c(-0.5)
|
||||
p5_plot <- \(x) p5(x, givenX)
|
||||
plot.function(p5_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% Exp(1)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a1, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
## 4.2 Two dimensional X_i =====================================================
|
||||
lambda <- 1.0
|
||||
p6 <- create_cond_density(a2, dexp, pexp, X2)
|
||||
givenX <- c(-0.5)
|
||||
p6_plot <- \(x) p6(x, givenX)
|
||||
plot.function(p6_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% Exp(1)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a2, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
## 4.3 Higher Rate of exponential distribtion ==================================
|
||||
lambda <- 2.0
|
||||
dens_func <- \(x) dexp(x, rate=lambda)
|
||||
cdf <- \(x) pexp(x, rate=lambda)
|
||||
p7 <- create_cond_density(a2, dens_func, cdf, X2)
|
||||
givenX <- c(-0.5, 0.5)
|
||||
p7_plot <- \(x) p7(x, givenX)
|
||||
plot.function(p7_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% Exp(2.0)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a2, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
# 5. Uniform Distribution ------------------------------------------------------
|
||||
|
||||
## Two dimensional X_i =========================================================
|
||||
p8 <- create_cond_density(a2, dunif, punif, X2)
|
||||
givenX <- c(-0.5, 0.5)
|
||||
p8_plot <- \(x) p8(x, givenX)
|
||||
plot.function(p8_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% U(0,1)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a2, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
## 5.2 One dimensional X_i =====================================================
|
||||
p9 <- create_cond_density(a1, dunif, punif, X1)
|
||||
givenX <- c(-0.5)
|
||||
p9_plot <- \(x) p9(x, givenX)
|
||||
plot.function(p9_plot, xlab="u", ylab="p(u |x) ")
|
||||
title(main=expression("Conditional density for" ~ v %~% U(0,1)), line=2)
|
||||
title(
|
||||
main = bquote(
|
||||
a == (.(paste(a1, collapse = ", "))) ~ "," ~
|
||||
N == .(N) ~ "," ~
|
||||
x == (.(paste(givenX, collapse = ", ")))
|
||||
),
|
||||
line = 1,
|
||||
cex = 0.65
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user