Cvičenie 2.1
Zadanie: Zmena parametrov rozdelení: Vykreslite do mriežky hustoty a distribučné funkcie binomického a normálneho rozdelenia pre rôzne parametre daných rozdelení.
Binomicke rodelenie:
# charakteristiky
binom_mean <- c(0,0)
binom_var <- c(0,0)
for (i in 1:n){
binom_mean[i] <- binom_n[i] * binom_p[i]
binom_var[i] <- binom_n[i] * binom_p[i] * (1 - binom_p[i])
}
cat("Binomial Distribution:\n")## Binomial Distribution:
## Mean 1 : 5
## Mean 2 : 14
## Variance 1 : 2.5
##
## Variance 2 : 4.2
# --- grafy - hustota a distribucna funkcia ---
x_binom1 <- 0:binom_n[1]
pmf_binom1 <- dbinom(x_binom1, size=binom_n[1], prob=binom_p[1])
cdf_binom1 <- pbinom(x_binom1, size=binom_n[1], prob=binom_p[1])
x_binom2 <- 0:binom_n[2]
pmf_binom2 <- dbinom(x_binom2, size=binom_n[2], prob=binom_p[2])
cdf_binom2 <- pbinom(x_binom2, size=binom_n[2], prob=binom_p[2])
binom_df1 <- data.frame(x_binom1, pmf_binom1, cdf_binom1)
binom_df2 <- data.frame(x_binom2, pmf_binom2, cdf_binom2)
plot_binom_pmf1 <- ggplot(binom_df1, aes(x=x_binom1)) +
geom_bar(aes(y=pmf_binom1), stat="identity", fill="blue") +
labs(title="Binomial Distribution - PMF", y="Probability", x="x")
plot_binom_cdf1 <- ggplot(binom_df1, aes(x=x_binom1)) +
geom_line(aes(y=cdf_binom1), color="red") +
labs(title="Binomial Distribution - CDF", y="Cumulative Probability", x="x")
plot_binom_pmf2 <- ggplot(binom_df2, aes(x=x_binom2)) +
geom_bar(aes(y=pmf_binom2), stat="identity", fill="blue") +
labs(title="Binomial Distribution - PMF", y="Probability", x="x")
plot_binom_cdf2 <- ggplot(binom_df2, aes(x=x_binom2)) +
geom_line(aes(y=cdf_binom2), color="red") +
labs(title="Binomial Distribution - CDF", y="Cumulative Probability", x="x")
grid.arrange(plot_binom_pmf1, plot_binom_cdf1, plot_binom_pmf2, plot_binom_cdf2, ncol=2)Normalne rozdelenie
## Normal Distribution:
## Mean: 0
## Mean: 2
## Variance: 1
##
## Variance: 0.36
# --- grafy - hustota a distribucna funkcia ---
x_normal <- seq(-4, 4, length=1000)
pdf_normal1 <- dnorm(x_normal, mean=normal_mean[1], sd=normal_sd[1])
cdf_normal1 <- pnorm(x_normal, mean=normal_mean[1], sd=normal_sd[1])
pdf_normal2 <- dnorm(x_normal, mean=normal_mean[2], sd=normal_sd[2])
cdf_normal2 <- pnorm(x_normal, mean=normal_mean[2], sd=normal_sd[2])
normal_df1 <- data.frame(x_normal, pdf_normal1, cdf_normal1)
normal_df2 <- data.frame(x_normal, pdf_normal2, cdf_normal2)
plot_normal_pdf1 <- ggplot(normal_df1, aes(x=x_normal)) +
geom_line(aes(y=pdf_normal1), color="blue") +
labs(title="Normal Distribution - PDF", y="Density", x="x")
plot_normal_cdf1 <- ggplot(normal_df1, aes(x=x_normal)) +
geom_line(aes(y=cdf_normal1), color="red") +
labs(title="Normal Distribution - CDF", y="Cumulative Probability", x="x")
plot_normal_pdf2 <- ggplot(normal_df2, aes(x=x_normal)) +
geom_line(aes(y=pdf_normal2), color="blue") +
labs(title="Normal Distribution - PDF", y="Density", x="x")
plot_normal_cdf2 <- ggplot(normal_df2, aes(x=x_normal)) +
geom_line(aes(y=cdf_normal2), color="red") +
labs(title="Normal Distribution - CDF", y="Cumulative Probability", x="x")
grid.arrange(plot_normal_pdf1, plot_normal_cdf1, plot_normal_pdf2, plot_normal_cdf2, ncol=2)Záver:
— Binomicke rodelenie: Parameter binom_p je zodpovedný
za najvyššiu pravdepodobnosť výskytu udalosti a zodpovedá najvyššiemu
stĺpcu. Parameter binom_n je zodpovedný za počet
možných výsledkov udalosti, čím väčší je parameter, tým širší je
graf
— Normalne rozdelenie: Parameter normal_mean je
zodpovedný za najvyššiu pravdepodobnosť výskytu udalosti a zodpovedá
najvyššiemu bodu paraboly. Parameter normal_sd je
zodpovedný za rýchlosť, ktorou parabola klesá (za odchýlku od
najpravdepodobnejšieho výsledku), čím menší je parameter, tým menšia je
odchýlka a tým rýchlejšie parabola klesá
Cvičenie 2.2
Zadanie: Vykreslite v mriežke hustotu a distribučnú funkciu vami zvoleného spojitého a diskrétneho rozdelenia.
Pre spojité rozdelenie volíme rovnomerné rozdelenie, pre diskretné — poissonove rozdelenie.
Rovnomerné rozdelenie:
(Nakreslime pravdepodobnosť získania čísel od 0 do 30 pri hádzaní
20-stennou kockou)
# hustota
cisla <- 0:30
pravd <- c(rep(0,31))
for (i in cisla) {
if (i>=1 && i<= 20) {
pravd[i+1] <- 1/(20-0)
}
else {
pravd[i+1] <- 0
}
}
pravd1 <- append(pravd,0,after=1)
pravd1 <- append(pravd1,0,after=22)
cisla1 <- append(cisla,1,after=1)
cisla1 <- append(cisla1,20,after=22)
rovn_pdf <- data.frame(cisla1, pravd1)
plot_rovn_pdf <- ggplot(data = rovn_pdf, aes(x = cisla1, y = pravd1)) +
geom_line(color="blue") +
labs(title="Rovnomerné rozdelenie - PDF", y="Pravdepodobnost", x="Cislo na kocke")
# distribucna funkcia
sum <- 0
cumul_pravd <- c(rep(0,30))
for (i in cisla){
sum <- sum + pravd[i+1]
cumul_pravd[i+1] <- sum
}
rovn_cdf <- data.frame(cisla, cumul_pravd)
plot_rovn_cdf <- ggplot(data = rovn_cdf, aes(x = cisla, y = cumul_pravd)) +
geom_line(color="red") +
labs(title="Rovnomerné rozdelenie - CDF", y="Cumulativna pravdepodobnost", x="Cislo na kocke")
grid.arrange(plot_rovn_pdf, plot_rovn_cdf, ncol=2)Poissonove rozdelenie:
(Nastavme parameter \(\lambda\) rovný 4)
# hustota
lam <- 4
k <- 0:20
pravd <- c(rep(0,length(k)))
for (i in k) {
pravd[i+1] <- ((lam)^(i+1)*exp(-lam))/factorial(i+1)
}
poiss_pdf <- data.frame(k, pravd)
plot_poiss_pdf <- ggplot(data = poiss_pdf, aes(x = k, y = pravd)) +
geom_line(color="blue") +
labs(title="Poissonove rozdelenie - PDF λ=4", y="Pravdepodobnost", x="x = k")
# distribucna funkcia
sum <- 0
cumul_pravd <- c(rep(0,length(k)))
for (i in k){
sum <- sum + pravd[i+1]
cumul_pravd[i+1] <- sum
}
poiss_cdf <- data.frame(k, cumul_pravd)
plot_poiss_cdf <- ggplot(data = poiss_cdf, aes(x = k, y = cumul_pravd)) +
geom_line(color="red") +
labs(title="Poissonove rozdelenie - CDF λ=4", y="Cumulativna pravdepodobnost", x="x = k")
grid.arrange(plot_poiss_pdf, plot_poiss_cdf, ncol=2)