Files
GraphonSimulation/scripts/plot_sv_dependence_n.R
2026-03-02 15:28:24 +01:00

94 lines
2.6 KiB
R

# Load function ----------------------------------------------------------------
source(here::here("R", "singular_values.R"))
source(here::here("R", "graphon_distribution.R"))
source(here::here("R", "singular_value_plot.R"))
# https://stackoverflow.com/a/5790430
resetPar <- function() {
dev.new()
op <- par(no.readonly = TRUE)
dev.off()
op
}
# Compare of parameters of Normal distribution ----------------------------------
#
out_n400_sd05 <- smallest_sv_sequence(
a = c(0.5),
n = 400,
maxK = 20,
sampler_fn =function(n) matrix(rnorm(n), ncol = 1L),
guard=1e-12,
plot=TRUE,
log_plot = TRUE,
fv = function(x) {dnorm(x, mean=0, sd=0.5)},
Fv = function(x) {pnorm(x, mean=0, sd=0.5)},
main_title="Smallest SV of v~ N(0,0.5^2) distribution, n = 400"
)
out_n800_sd05 <- smallest_sv_sequence(
a = c(0.5),
n = 800,
maxK = 20,
sampler_fn =function(n) matrix(rnorm(n), ncol = 1L),
guard=1e-12,
plot=TRUE,
log_plot = TRUE,
fv = function(x) {dnorm(x, mean=0, sd=0.5)},
Fv = function(x) {pnorm(x, mean=0, sd=0.5)},
main_title="Smallest SV of v~ N(0,0.5^2) distribution, n=800"
)
out_n400_sd2 <- smallest_sv_sequence(
a = c(0.5),
n = 400,
maxK = 20,
sampler_fn =function(n) matrix(rnorm(n), ncol = 1L),
guard=1e-12,
plot=TRUE,
log_plot = TRUE,
fv = function(x) {dnorm(x, mean=0, sd=2)},
Fv = function(x) {pnorm(x, mean=0, sd=2)},
main_title="Smallest SV of v~ N(0,2^2) distribution, n=400"
)
out_n800_sd2 <- smallest_sv_sequence(
a = c(0.5),
n = 800,
maxK = 20,
sampler_fn =function(n) matrix(rnorm(n), ncol = 1L),
guard=1e-12,
plot=TRUE,
log_plot = TRUE,
fv = function(x) {dnorm(x, mean=0, sd=2)},
Fv = function(x) {pnorm(x, mean=0, sd=2)},
main_title="Smallest SV of v~ N(0,4^2) distribution,n = 800"
)
par(mar = c(5, 4, 4, 8))
plot(out_n400_sd05$K, out_n400_sd05$sv,
type = "b",
pch = 19,
col = "#D3BA68FF",
xlab = "K subdivisions",
ylab = "Smallest singular value of Q",
main="smallest SV for different variances of a normal distribution",
sub = "n = 400, a = 0.5",
log="y")
lines(out_n400_sd2$K, out_n400_sd2$sv,
type="b", pch=19, col="#D5695DFF", add=TRUE)
lines(out_n800_sd05$K, out_n800_sd05$sv,
type = "b", pch=19, col="#5D8CA8FF", add=TRUE)
lines(out_n800_sd2$K, out_n800_sd2$sv,
type = "b", pch=19, col="#65A479FF", add=TRUE)
par(xpd = TRUE)
legend("topright",
inset=c(-0.2,0),
legend=c("sd=0.5, n=400", "sd=0.5, n=800", "sd=2, n=400", "sd=2, n=800"),
col=c("#D3BA68FF", "#D5695DFF","#5D8CA8FF", "#65A479FF" ),
title="Legend",
pch = 16,
bty = "n")