library(ggplot2)
## Warning: пакет 'ggplot2' был собран под R версии 4.3.3
library(gridExtra)
## Warning: пакет 'gridExtra' был собран под R версии 4.3.3
Binomicke rodelenie
# parametre
binom_n <- c(10,13,11,9)
binom_p <- c(0.5,0.2,0.9,0.5)
plot_binomial_distribution <- function(binom_n, binom_p) {
binom_mean <- binom_n * binom_p
binom_var <- binom_n * binom_p * (1 - binom_p)
cat("Binomial Distribution:\n")
cat("Mean:", binom_mean, "\n")
cat("Variance:", binom_var, "\n\n")
x_binom <- 0:binom_n
pmf_binom <- dbinom(x_binom, size=binom_n, prob=binom_p)
cdf_binom <- pbinom(x_binom, size=binom_n, prob=binom_p)
binom_df <- data.frame(x_binom, pmf_binom, cdf_binom)
plot_binom_pmf <- ggplot(binom_df, aes(x=x_binom)) +
geom_bar(aes(y=pmf_binom), stat="identity", fill="blue") +
labs(title="Binomial Distribution - PMF", y="Probability", x="x")
plot_binom_cdf <- ggplot(binom_df, aes(x=x_binom)) +
geom_line(aes(y=cdf_binom), color="red") +
labs(title="Binomial Distribution - CDF", y="Cumulative Probability", x="x")
return(list(plot_binom_pmf, plot_binom_cdf))
}
# --- grafy - hustota a distribucna funkcia ---
grafy <- list()
if(length(binom_n) == length(binom_p)){
for (i in 1:length(binom_n)){
grafy<- append(grafy,plot_binomial_distribution(binom_n[i],binom_p[i]))
}
}
## Binomial Distribution:
## Mean: 5
## Variance: 2.5
##
## Binomial Distribution:
## Mean: 2.6
## Variance: 2.08
##
## Binomial Distribution:
## Mean: 9.9
## Variance: 0.99
##
## Binomial Distribution:
## Mean: 4.5
## Variance: 2.25
do.call(grid.arrange, c(grafy, ncol=2))
Normalne rozdelenie
# parametre
normal_mean = c(0,1,3,0.3)
normal_sd = c(1,0.1,2,0.5)
plot_normal_distribution <- function(normal_mean, normal_sd) {
cat("Normal Distribution:\n")
cat("Mean:", normal_mean, "\n")
cat("Variance:", normal_sd^2, "\n\n")
x_normal <- seq(-4, 4, length=1000)
pdf_normal <- dnorm(x_normal, mean=normal_mean, sd=normal_sd)
cdf_normal <- pnorm(x_normal, mean=normal_mean, sd=normal_sd)
normal_df <- data.frame(x_normal, pdf_normal, cdf_normal)
plot_normal_pdf <- ggplot(normal_df, aes(x=x_normal)) +
geom_line(aes(y=pdf_normal), color="blue") +
labs(title="Normal Distribution - PDF", y="Density", x="x")
plot_normal_cdf <- ggplot(normal_df, aes(x=x_normal)) +
geom_line(aes(y=cdf_normal), color="red") +
labs(title="Normal Distribution - CDF", y="Cumulative Probability", x="x")
return(list(plot_normal_pdf, plot_normal_cdf))
}
# --- grafy - hustota a distribucna funkcia ---
grafy <- list()
if(length(normal_sd) == length(normal_mean)){
for (i in 1:length(normal_sd)){
grafy<- append(grafy,plot_normal_distribution(normal_mean[i],normal_sd[i]))
}
}
## Normal Distribution:
## Mean: 0
## Variance: 1
##
## Normal Distribution:
## Mean: 1
## Variance: 0.01
##
## Normal Distribution:
## Mean: 3
## Variance: 4
##
## Normal Distribution:
## Mean: 0.3
## Variance: 0.25
do.call(grid.arrange, c(grafy, ncol=2))
# Exponenciálne rozdelenie
plot_exponential_distribution <- function(rate) {
cat("Exponenciálne rozdelenie:\n")
cat("Miera (rate):", rate, "\n")
cat("Stredná hodnota:", 1/rate, "\n")
cat("Rozptyl:", 1/(rate^2), "\n\n")
x_exp <- seq(0, 10, length=1000) # hodnoty pre x
pdf_exp <- dexp(x_exp, rate=rate) # hustota
cdf_exp <- pexp(x_exp, rate=rate) # distribučná funkcia
exp_df <- data.frame(x_exp, pdf_exp, cdf_exp)
plot_exp_pdf <- ggplot(exp_df, aes(x=x_exp)) +
geom_line(aes(y=pdf_exp), color="blue") +
labs(title="Exponenciálne rozdelenie - PDF", y="Hustota", x="x")
plot_exp_cdf <- ggplot(exp_df, aes(x=x_exp)) +
geom_line(aes(y=cdf_exp), color="red") +
labs(title="Exponenciálne rozdelenie - CDF", y="Kumulatívna pravdepodobnosť", x="x")
return(list(plot_exp_pdf, plot_exp_cdf))
}
# Parametre pre rozdelenia
rates <- c(0.5, 1, 2,5)
grafy <- list()
# Exponenciálne rozdelenie (spojité)
for (i in 1:length(rates)) {
grafy <- append(grafy, plot_exponential_distribution(rates[i]))
}
## Exponenciálne rozdelenie:
## Miera (rate): 0.5
## Stredná hodnota: 2
## Rozptyl: 4
##
## Exponenciálne rozdelenie:
## Miera (rate): 1
## Stredná hodnota: 1
## Rozptyl: 1
##
## Exponenciálne rozdelenie:
## Miera (rate): 2
## Stredná hodnota: 0.5
## Rozptyl: 0.25
##
## Exponenciálne rozdelenie:
## Miera (rate): 5
## Stredná hodnota: 0.2
## Rozptyl: 0.04
# Zobrazenie všetkých grafov v mriežke
do.call(grid.arrange, c(grafy, ncol=2))
# Poissonovo rozdelenie
plot_poisson_distribution <- function(lambda) {
cat("Poissonovo rozdelenie:\n")
cat("Lambda:", lambda, "\n")
cat("Stredná hodnota:", lambda, "\n")
cat("Rozptyl:", lambda, "\n\n")
x_pois <- 0:20 # hodnoty pre x
pmf_pois <- dpois(x_pois, lambda=lambda) # PMF
cdf_pois <- ppois(x_pois, lambda=lambda) # CDF
pois_df <- data.frame(x_pois, pmf_pois, cdf_pois)
plot_pois_pmf <- ggplot(pois_df, aes(x=x_pois)) +
geom_bar(aes(y=pmf_pois), stat="identity", fill="blue") +
labs(title="Poissonovo rozdelenie - PMF", y="Pravdepodobnosť", x="x")
plot_pois_cdf <- ggplot(pois_df, aes(x=x_pois)) +
geom_line(aes(y=cdf_pois), color="red") +
labs(title="Poissonovo rozdelenie - CDF", y="Kumulatívna pravdepodobnosť", x="x")
return(list(plot_pois_pmf, plot_pois_cdf))
}
# Parametre pre rozdelenia
lambdas <- c(0.7, 2, 4, 6)
grafy <- list()
# Poissonovo rozdelenie (diskrétne)
for (i in 1:length(lambdas)) {
grafy <- append(grafy, plot_poisson_distribution(lambdas[i]))
}
## Poissonovo rozdelenie:
## Lambda: 0.7
## Stredná hodnota: 0.7
## Rozptyl: 0.7
##
## Poissonovo rozdelenie:
## Lambda: 2
## Stredná hodnota: 2
## Rozptyl: 2
##
## Poissonovo rozdelenie:
## Lambda: 4
## Stredná hodnota: 4
## Rozptyl: 4
##
## Poissonovo rozdelenie:
## Lambda: 6
## Stredná hodnota: 6
## Rozptyl: 6
# Zobrazenie všetkých grafov v mriežke
do.call(grid.arrange, c(grafy, ncol=2))