Distribuciones Discretas

Bernoulli

p <- runif(3, 0, 1)
X <- 0:1
data_bernoulli <- lapply(p, function(prob) data.frame(X, Prob = dbinom(X, 1, prob)))
FDA_bernoulli <- lapply(p, function(prob) data.frame(X, CDF = pbinom(X, 1, prob)))

par(mfrow=c(1,2))
for (i in 1:3) {
  barplot(data_bernoulli[[i]]$Prob, names.arg=X, main=paste("Bernoulli p=", round(p[i],2)), ylab="P(X)")
  plot(FDA_bernoulli[[i]], type='s', main=paste("FDA Bernoulli p=", round(p[i],2)), ylab="F(X)")
}

Valor Esperado: \(E[X] = p\)

Binomial

n <- sample(5:20, 3)
p <- runif(3, 0, 1)
k <- 0:max(n)
data_binom <- lapply(1:3, function(i) data.frame(X = k, Prob = dbinom(k, n[i], p[i])))
FDA_binom <- lapply(1:3, function(i) data.frame(X = k, CDF = pbinom(k, n[i], p[i])))

par(mfrow=c(1,2))
for (i in 1:3) {
  barplot(data_binom[[i]]$Prob, names.arg=k, main=paste("Binomial (n=", n[i], ", p=", round(p[i],2), ")"), ylab="P(X)")
  plot(FDA_binom[[i]], type='s', main=paste("FDA Binomial n=", n[i], "p=", round(p[i],2)), ylab="F(X)")
}

Valor Esperado: \(E[X] = np\)

Geométrica

p <- runif(3, 0.1, 0.9)
X <- 0:10
data_geom <- lapply(p, function(prob) data.frame(X, Prob = dgeom(X, prob)))
FDA_geom <- lapply(p, function(prob) data.frame(X, CDF = pgeom(X, prob)))

par(mfrow=c(1,2))
for (i in 1:3) {
  barplot(data_geom[[i]]$Prob, names.arg=X, main=paste("Geométrica p=", round(p[i],2)), ylab="P(X)")
  plot(FDA_geom[[i]], type='s', main=paste("FDA Geométrica p=", round(p[i],2)), ylab="F(X)")
}

Valor Esperado: \(E[X] = \frac{1}{p}\)

Poisson

lambda <- runif(3, 1, 10)
X <- 0:20
data_poisson <- lapply(lambda, function(l) data.frame(X, Prob = dpois(X, l)))
FDA_poisson <- lapply(lambda, function(l) data.frame(X, CDF = ppois(X, l)))

par(mfrow=c(1,2))
for (i in 1:3) {
  barplot(data_poisson[[i]]$Prob, names.arg=X, main=paste("Poisson lambda=", round(lambda[i],2)), ylab="P(X)")
  plot(FDA_poisson[[i]], type='s', main=paste("FDA Poisson lambda=", round(lambda[i],2)), ylab="F(X)")
}

Valor Esperado: \(E[X] = \lambda\)

Distribuciones Continuas

Uniforme

a <- runif(3, 0, 5)
b <- a + runif(3, 1, 5)
X <- seq(0, max(b), length.out=100)
data_unif <- lapply(1:3, function(i) data.frame(X, Dens = dunif(X, a[i], b[i])))
FDA_unif <- lapply(1:3, function(i) data.frame(X, CDF = punif(X, a[i], b[i])))

par(mfrow=c(1,2))
for (i in 1:3) {
  plot(data_unif[[i]], type='l', main=paste("Uniforme a=", round(a[i],2), "b=", round(b[i],2)), ylab="f(X)")
  plot(FDA_unif[[i]], type='l', main=paste("FDA Uniforme a=", round(a[i],2), "b=", round(b[i],2)), ylab="F(X)")
}

Valor Esperado: \(E[X] = \frac{a+b}{2}\)

Exponencial

lambda <- runif(3, 0.5, 2)
X <- seq(0, 10, length.out=100)
data_exp <- lapply(lambda, function(l) data.frame(X, Dens = dexp(X, l)))
FDA_exp <- lapply(lambda, function(l) data.frame(X, CDF = pexp(X, l)))

par(mfrow=c(1,2))
for (i in 1:3) {
  plot(data_exp[[i]], type='l', main=paste("Exponencial lambda=", round(lambda[i],2)), ylab="f(X)")
  plot(FDA_exp[[i]], type='l', main=paste("FDA Exponencial lambda=", round(lambda[i],2)), ylab="F(X)")
}

Valor Esperado: \(E[X] = \frac{1}{\lambda}\)

Normal

mu <- runif(3, 0, 10)
sigma <- runif(3, 1, 5)
X <- seq(-5, 15, length.out=100)
data_norm <- lapply(1:3, function(i) data.frame(X, Dens = dnorm(X, mu[i], sigma[i])))
FDA_norm <- lapply(1:3, function(i) data.frame(X, CDF = pnorm(X, mu[i], sigma[i])))

par(mfrow=c(1,2))
for (i in 1:3) {
  plot(data_norm[[i]], type='l', main=paste("Normal mu=", round(mu[i],2), "sigma=", round(sigma[i],2)), ylab="f(X)")
  plot(FDA_norm[[i]], type='l', main=paste("FDA Normal mu=", round(mu[i],2), "sigma=", round(sigma[i],2)), ylab="F(X)")
}

Valor Esperado: \(E[X] = \mu\)